A library of common functions used when creating and managing open-xpd-uuid, a common, globally-unique name space (uuid) for Product Declarations, including HPDs and EPDs, to help users find all environmental and health information related to a single product.
Project description
open-xpd-uuid-lib
A library of common functions used when creating and managing open-xpd-uuid, a common, globally-unique name space (uuid) for Product Declarations, including HPDs and EPDs, to help users find all environmental and health information related to a single product.
Open xPD UUID (short readable GUIDs)
open-xpd-uuid is a string that consists of 8 or 10 (8+2) alpha-numeric characters and any number of dashes.
For example: 123ABCED, 123ABCEDAR, ASB21M01, avbDK93S, -AB-11-cc-Ll---.
GUIDs that consists of the following characters 1234567890ABCDEFGHJKMNPRQRSTUVWXYZ (L and O are not mentioned)
are called "canonical". For example: 12345678, ABCDEFG1, 123ABCEDAR.
GUIDs that consists of 10 characters represent 8-character guid with appended 2-character checksum.
Checksum allows to detect 1-character entry errors and character swaps, and most other errors.
Character treatment
-or dash - is ignoredLorlorIori- is treated as1Ooro- is treated as0(zero)
Install
pip install open-xpd-uuid-lib
Supported versions
The library supports python 3.6 and higher.
Usage
Generate short readable GUID
>>> from cqd import open_xpd_uuid
>>> open_xpd_uuid.generate()
'JKGEE5PN'
Sanitize short readable GUIDs
Use sanitize to replace ambiguous chars(0,o,O,1,L,l,I,i) with correct ones and remove dashes(-).
This function is useful to turn guid received from a user into a canonical one.
For example: as-b2-lm-oL -> ASB21M01
>>> from cqd import open_xpd_uuid
>>> open_xpd_uuid.sanitize('as-b2-lm-oL')
'ASB21M01'
Validate short readable GUID
Use validate to validate short readable GUID and get error description if the GUID is not valid.
validate accepts only "canonical" GUIDs: use sanitize function to make them "canonical".
>>> from cqd import open_xpd_uuid
>>> sanitized_guid = open_xpd_uuid.sanitize('as-b2-lm-oL')
>>> sanitized_guid
'ASB21M01'
>>> open_xpd_uuid.validate(sanitized_guid)
# no exception - the `sanitized_guid` is valid
>>> try:
... open_xpd_uuid.validate('as-b2-lm-oL')
... except open_xpd_uuid.GuidValidationError as e:
... print(e)
...
`guid` length must be 8 characters long
Generate and use checksum
>>> from cqd import open_xpd_uuid
>>> guid = open_xpd_uuid.generate()
'JKGEE5PN'
>>> checksum = open_xpd_uuid.checksum(guid)
'ME'
>>> guid_with_checksum = guid + checksum
'JKGEE5PNME'
>>> short_link = 'cqd.io/e/' + guid_with_checksum
'cqd.io/e/JKGEE5PNME'
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open-xpd-uuid-0.1.0.tar.gz.
File metadata
- Download URL: open-xpd-uuid-0.1.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab912e24451ee609f78212ba868fd70a8795d0367cbaf3095a848fa918caea83
|
|
| MD5 |
e1e25f95aaf10fcc597c3d9a62af5bab
|
|
| BLAKE2b-256 |
c76e4966535a7d04ea86e4c58ddb4b466276acc7a94b4cb0784823fc301ae410
|
File details
Details for the file open_xpd_uuid-0.1.0-py3-none-any.whl.
File metadata
- Download URL: open_xpd_uuid-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a01603916cec513a797c8989caf6a55d2fa12bdcd3ba6e6900d6d9bf676e9b9c
|
|
| MD5 |
6fee85b6a439bcca34429d73cb5edd9c
|
|
| BLAKE2b-256 |
8e9ac4f65df618909acab9f1db3ce27be3c2b3b94f4876505e7797816049c10e
|