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 ignoredL
orl
orI
ori
- is treated as1
O
oro
- 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
Hashes for open_xpd_uuid-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a01603916cec513a797c8989caf6a55d2fa12bdcd3ba6e6900d6d9bf676e9b9c |
|
MD5 | 6fee85b6a439bcca34429d73cb5edd9c |
|
BLAKE2b-256 | 8e9ac4f65df618909acab9f1db3ce27be3c2b3b94f4876505e7797816049c10e |