# huuid - human UUIDs
python3-library to convert uuids forth and back to a human-readable and pronounceable format
## What is `huuid`
`hhuid` does a bijective transformation from uuids to a format that can be read, pronounced and typed a lot better than the default formats.
No Information is lost in the mapping.
Here is an example-output of the `demo.py` in the `tests`-folder:
```
generated uuid: f3ad6cef-2732-4b18-97dd-137a459eb656
human-readable: tapratnaz-vorjonfif-Tezjozdin-sejgipneh
Afer back-translation: f3ad6cef-2732-4b18-97dd-137a459eb656
--- other usecases: ---
first 32bit human-readable: tapratnaz
generated 32bit-Password: Sunmuhnud
generated 64bit-Password: Vezvegdum-ladzibkal
```
## How to use `huuid`
Install it using pip:
`pip install huuid`
or just put the folder `huuid` in your project-root. (Jep, just that one file - that's all!)
Then in python import it in your code with
`import huuid`
and convert any uuid-object or uuid-string to a huuid-string with
`huuid.uuid2human(myUuidObject)`
Optionally you can limit the huuid-string to the 32, 64 or 96 bit:
`huuid.uuid2human(myUuidObject, 64)`
Convert it back to a uuid-string with
`huuid.human2uuid(myUuidObject)`
## Background
The hexadecimal representation of the UUID is translated to letters that have an unambiguous pronounciation. The 2nd, and then every third letter is a vowel, the other ones are consonants which makes up a well pronounced word that sounds like it is made up of syllables.
There are 5 vowels and 16 consonants (just unambiguous ones) being used, and (only) for the first letter capitals are allowed.
(And a capital-C additional to the 16 chosen unambiguous consonants to reach 32bit with 9 letters)
With this pattern there are a little more than 2^32 possibilities to generate a word with 9 letters.
4 "Words" hit the 128bit of UUIDs (>10^38).
## Dependencies
This only uses the python3-modules `uuid` and `math`.
## Credits
This is highly inspired by
https://arxiv.org/html/0901.4016
published by Daniel Shawcross Wilkerson
and its implementation:
https://github.com/dsw/proquint
Raw data
{
"_id": null,
"home_page": "https://github.com/polarwinkel/huuid",
"name": "huuid",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.7",
"maintainer_email": null,
"keywords": "TeX, LaTeX, Markdown, HTML markdown2html, latex2mathml",
"author": "Dirk Winkel",
"author_email": "it@polarwinkel.de",
"download_url": "https://files.pythonhosted.org/packages/86/e3/bde1d1960afa914bf2539654cf541eb448e384e27709aa12495fb69491d8/huuid-0.9.0.tar.gz",
"platform": null,
"description": "# huuid - human UUIDs\npython3-library to convert uuids forth and back to a human-readable and pronounceable format\n\n## What is `huuid`\n\n`hhuid` does a bijective transformation from uuids to a format that can be read, pronounced and typed a lot better than the default formats.\nNo Information is lost in the mapping.\n\nHere is an example-output of the `demo.py` in the `tests`-folder:\n\n```\ngenerated uuid: f3ad6cef-2732-4b18-97dd-137a459eb656\nhuman-readable: tapratnaz-vorjonfif-Tezjozdin-sejgipneh\nAfer back-translation: f3ad6cef-2732-4b18-97dd-137a459eb656\n--- other usecases: ---\nfirst 32bit human-readable: tapratnaz\ngenerated 32bit-Password: Sunmuhnud\ngenerated 64bit-Password: Vezvegdum-ladzibkal\n```\n\n## How to use `huuid`\n\nInstall it using pip:\n\n`pip install huuid`\n\nor just put the folder `huuid` in your project-root. (Jep, just that one file - that's all!)\n\nThen in python import it in your code with\n\n`import huuid`\n\nand convert any uuid-object or uuid-string to a huuid-string with\n\n`huuid.uuid2human(myUuidObject)`\n\nOptionally you can limit the huuid-string to the 32, 64 or 96 bit:\n\n`huuid.uuid2human(myUuidObject, 64)`\n\nConvert it back to a uuid-string with\n\n`huuid.human2uuid(myUuidObject)`\n\n## Background\n\nThe hexadecimal representation of the UUID is translated to letters that have an unambiguous pronounciation. The 2nd, and then every third letter is a vowel, the other ones are consonants which makes up a well pronounced word that sounds like it is made up of syllables.\n\nThere are 5 vowels and 16 consonants (just unambiguous ones) being used, and (only) for the first letter capitals are allowed.\n(And a capital-C additional to the 16 chosen unambiguous consonants to reach 32bit with 9 letters)\n\nWith this pattern there are a little more than 2^32 possibilities to generate a word with 9 letters.\n4 \"Words\" hit the 128bit of UUIDs (>10^38).\n\n## Dependencies\n\nThis only uses the python3-modules `uuid` and `math`.\n\n## Credits\n\nThis is highly inspired by\n\nhttps://arxiv.org/html/0901.4016\n\npublished by Daniel Shawcross Wilkerson\nand its implementation:\n\nhttps://github.com/dsw/proquint\n",
"bugtrack_url": null,
"license": null,
"summary": "library to convert uuids forth and back to a human-readable and pronounceable format",
"version": "0.9.0",
"project_urls": {
"Bug Reports": "https://github.com/polarwinkel/mdtex2html/issues",
"Homepage": "https://github.com/polarwinkel/huuid",
"Source": "https://github.com/polarwinkel/mdtex2html"
},
"split_keywords": [
"tex",
" latex",
" markdown",
" html markdown2html",
" latex2mathml"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "cb82e9f6ec386eb644edd99beee6db4a2e13d47eede2c653df1cf2ea42a7fb61",
"md5": "7424e06298053e0d1afb7d648fdc9a61",
"sha256": "f5af7eb8cb037efe542faace443d1584647ea58ccada1bde88b792f25635fdb0"
},
"downloads": -1,
"filename": "huuid-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7424e06298053e0d1afb7d648fdc9a61",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.7",
"size": 16293,
"upload_time": "2025-01-27T22:08:19",
"upload_time_iso_8601": "2025-01-27T22:08:19.011744Z",
"url": "https://files.pythonhosted.org/packages/cb/82/e9f6ec386eb644edd99beee6db4a2e13d47eede2c653df1cf2ea42a7fb61/huuid-0.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "86e3bde1d1960afa914bf2539654cf541eb448e384e27709aa12495fb69491d8",
"md5": "2d9ec1d36101d1b1676ee109c5218dc0",
"sha256": "d2fabd579da4ac2a731ce8e1eb05b66b1fa8ec2bdb2c598c5182bf93307a9b34"
},
"downloads": -1,
"filename": "huuid-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "2d9ec1d36101d1b1676ee109c5218dc0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.7",
"size": 16031,
"upload_time": "2025-01-27T22:08:20",
"upload_time_iso_8601": "2025-01-27T22:08:20.466414Z",
"url": "https://files.pythonhosted.org/packages/86/e3/bde1d1960afa914bf2539654cf541eb448e384e27709aa12495fb69491d8/huuid-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-27 22:08:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "polarwinkel",
"github_project": "huuid",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "huuid"
}