Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Human Readable Unique Identifiers for Python

Project description

Human Readable Unique Identifier for Python





import hruid

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


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.


Install dependencies

poetry install

Run which does some basic things with the package

poetry run python

Run the package in CLI mode

poetry run python -m hruid

To run tests

poetry run tests



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for hruid, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size hruid-0.0.3-py3-none-any.whl (18.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size hruid-0.0.3.tar.gz (17.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page