huuid


Namehuuid JSON
Version 0.9.0 PyPI version JSON
download
home_pagehttps://github.com/polarwinkel/huuid
Summarylibrary to convert uuids forth and back to a human-readable and pronounceable format
upload_time2025-01-27 22:08:20
maintainerNone
docs_urlNone
authorDirk Winkel
requires_python<4,>=3.7
licenseNone
keywords tex latex markdown html markdown2html latex2mathml
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.93082s