Skip to main content

Human Readable Unique Identifiers for Python

Project description

HRUID
Human Readable Unique Identifier for Python

Usage

Install

???

Use

import hruid

generator = hruid.Generator()
phrase = generator.random()
print(phrase)

Overview

This Python package implements human readable ID generation based on the Asanablog post by Greg Slovacek.

In it, he describes how a unique phrase can be generated in lieu of a confusing and complex alphanumeric ID.

Imagine representing 32 bits of information (numbers up to 4 billion) as a sentence instead of a jumble of digits. Each sentence can have the same predictable structure, and the number will be used to choose words from a dictionary to fill in that structure—like Mad Libs.

One possible sentence structure can be: count + adjective + plural noun + verb + adverb, e.g. “6 sad squid snuggle softly.” We can divide the bit-space of the number like so:

  • 5 bits for the count (2-33, so it is always plural)
  • 7 bits for the adjective (one of 128 possibilities)
  • 7 bits for the plural noun (one of 128 possibilities, which we made all animals just for fun)
  • 7 bits for the verb (one of 128 possibilities)
  • 6 bits for the adverb (one of 64 possibilities)

Now, given a dictionary containing words categorized in this way, we can generate 4 billion unique (and sometimes very memorable) sentences. In Asana, the ID used to generate the error phrase is random, so the same sentence is unlikely to occur twice.

Develop

Install dependencies

poetry install

Run example.py which does some basic things with the package

poetry run python example.py

Run the package in CLI mode

poetry run python -m hruid

To run tests

poetry run tests

License

GNU GPLv3

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

hruid-0.0.3.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hruid-0.0.3-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file hruid-0.0.3.tar.gz.

File metadata

  • Download URL: hruid-0.0.3.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

File hashes

Hashes for hruid-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0091431c60ae5969077f48d4549b3001d5a3dd6853c32f1e864823a673e89dc8
MD5 8f2e11e3c5ab6fd5b157c7c395d15861
BLAKE2b-256 38824255b1d2e6182198a1063932928993b61becde7a000f48ffc75b8e7400d5

See more details on using hashes here.

File details

Details for the file hruid-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: hruid-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

File hashes

Hashes for hruid-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 46bb5190897834f4612102789a12e6720d4fbc9d4c2d7ce33189c443f4815d0f
MD5 1c050bf038a8679388ea1fbf7d243054
BLAKE2b-256 b8eb432231a8c8f6aed0a550d5d53597ebc0d9c6cabf22321194e6e082ddfe72

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page