A library for creating self-aware ids
Project description
Nuggan
A library for creating informed ids. Nuggan ids aim to provide the following properties.
- The id knows the type of entity it is identifying.
- The authenticity of an id can be established just by looking at the id
value. That is to say that a
nuggan
user can determine whether an id given to them is one they previously generated. - The alphabetical ordering of a list of ids is relatively equivalent to their chronological ordering.
Usage
Use nuggan
to generate ids that encode information about the entity being
identified.
import nuggan
nuggan.create_id('user')
# user-005dd1c485-7367ea24-e668-4944-9de0-723112eb1089-e8d26af99684
When given an id it can be parsed to identify what it applies to.
my_id = 'user-005dd1c485-7367ea24-e668-4944-9de0-723112eb1089-e8d26af99684'
nuggan.parse_id(my_id)
# {
# 'prefix': 'user',
# 'hex_time': '005dd1c485',
# 'prefixed_id': 'user-005dd1c485-7367ea24-e668-4944-9de0-723112eb1089',
# 'base_id': '7367ea24-e668-4944-9de0-723112eb1089',
# 'checksum': 'e8d26af99684'
# }
Ids have checksums associated with them to allow corrupted ids to be identified.
bad_id = 'user-005dd1c485-44cc2faf-look-this-aint-rightdfd965a-4a6e8fc57d86'
nuggan.is_valid_id(bad_id)
# False
A salt can be configured to give some amount of confidence that a given id originated from a specific source.
maker = nuggan.IdMaker(salt='an-arbitrary-salt-value')
salted_id = maker.create_id('user')
# user-005dd1c5b4-e4d94f47-cae0-4f16-a0d8-a953c9bd7209-d93cd221c394
normal_id = nuggan.create_id('user')
# user-005dd1c5d8-fd007e41-833f-4c00-8aa9-a26314142845-895de953856b
maker.is_valid_id(salted_id)
# True
maker.is_valid_id(normal_id)
# False
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nuggan-0.2.0.tar.gz
(4.0 kB
view details)
Built Distribution
File details
Details for the file nuggan-0.2.0.tar.gz
.
File metadata
- Download URL: nuggan-0.2.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.17 CPython/3.7.2 Linux/4.15.0-70-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84fbef53a2037c3d7edd88d4ef38f82c5543e8a6d5fc81ef72ad5b7e77100e85 |
|
MD5 | ebfa09d2d900fedcc003daaad785ce36 |
|
BLAKE2b-256 | c2c7ee711e7245d766359f9491bab59ed5830d000c9d837e1336e8eea3d26461 |
File details
Details for the file nuggan-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: nuggan-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.17 CPython/3.7.2 Linux/4.15.0-70-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b2a96e679378f741e933603dbdb3ecc1ac7e6a8e0d4c66d24f803f3d8c2f339 |
|
MD5 | ef17b6f9cf83bd8425aba778be075fcf |
|
BLAKE2b-256 | 38120bdc3825e2b0ce800e65371b6c584841cbf5ec66651d7a908e59bb2d7db6 |