{ "info": { "author": "Denis Ryzhkov", "author_email": "denisr@denisr.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "uqid::\n\n pip install uqid\n from uqid import uqid, digits\n\n print(uqid()) # e7ljCIs4grYZ9tOv6bpX3TQIA7FyA23umzGjDcIjHff2XwF2ziAw56B7S3EdOuCA\n print(uqid(4, digits)) # 4982\n\n* Returns unique id from random chars.\n* Default is 64 chars 0-9a-zA-Z aka base62.\n\ndtid::\n\n pip install uqid\n from uqid import dtid\n print(dtid())\n\n YYYYMMDDhhmmssmicrosrnd4\n 20161231235959123456uN1q\n\n* 24 bytes by default - as str(ObjectId()).\n* But human-friendly - unlike ObjectId.\n* Microsecond-precise UTC timestamp - unlike second-precise ObjectId().\n* May extract datetime_from_dtid().\n* May be used as a log timestamp as is.\n* Alphabetically ordered.\n* Safe chars 0-9a-zA-Z - unlike binary ObjectId() leading to \"ValueError: Invalid UTF-8 sequence length\" if added to JSON without str().\n* base62^4 is over 14M uniques per microsecond.\n* dtid(24) is 2x faster than uqid(24) but slower than str(ObjectId())\n\ntests::\n\n python2 uqid.py\n python3 uqid.py\n\n SAMPLES:\n str(uuid4()): 3bb25137-2422-4d06-bd12-5a9de2ea2bf6\n len(^): 36\n len(v): 24\n str(ObjectId()): 5acdcd1f9c591516ae800615\n uqid(24): UFRFQVCtYu6rtQq8LD33XjI3\n dtid(24): 20180411085351268116tHse\n Iterations: 1000000\n\n python2 SECONDS:\n str(uuid4()) seconds: 11.825964\n str(ObjectId()) seconds: 2.424702\n uqid(24) seconds: 9.701306\n dtid(24) seconds: 5.357983\n\n python3 SECONDS:\n str(uuid4()) seconds: 5.826098\n str(ObjectId()) seconds: 3.192565\n uqid(24) seconds: 17.769653\n dtid(24) seconds: 9.588677\n\n DUPLICATES:\n str(uuid4()) duplicates: 0\n str(ObjectId()) duplicates: 0\n uqid(24) duplicates: 0\n dtid(24) duplicates: 0\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/denis-ryzhkov/uqidpy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "uqid", "package_url": "https://pypi.org/project/uqid/", "platform": "", "project_url": "https://pypi.org/project/uqid/", "project_urls": { "Homepage": "https://github.com/denis-ryzhkov/uqidpy" }, "release_url": "https://pypi.org/project/uqid/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Unique id from random chars and optional date-time.", "version": "0.3.0" }, "last_serial": 3754834, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2e3201e6676443628cfe2fe2c7f679bc", "sha256": "36479565cd52e1601e19f2b130a830b53c1891ce42f379369a0eecbf02301ebb" }, "downloads": -1, "filename": "uqid-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2e3201e6676443628cfe2fe2c7f679bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1107, "upload_time": "2015-01-08T08:04:58", "url": "https://files.pythonhosted.org/packages/f3/ef/c5573cf20a8d98e02ba60373cb94471ca03c707f807a70892d5039467e78/uqid-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0705c3f74eb32197091aea4b0d128a68", "sha256": "efdb3cf3288ed9110310494fcec553b6c061fb8971d5fc918864bb049e03c8e9" }, "downloads": -1, "filename": "uqid-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0705c3f74eb32197091aea4b0d128a68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2193, "upload_time": "2016-09-23T09:37:25", "url": "https://files.pythonhosted.org/packages/1e/b6/b7ab6509333d63e8db6656e4f679c74a110d7a9c7d56d19d05507cc55260/uqid-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e00850687e71c223bf148d48d2ebe037", "sha256": "61cfa4ed07b6166ae81b76937cdc302c4ee396f2bc80f98d50604392b9ce0f5c" }, "downloads": -1, "filename": "uqid-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e00850687e71c223bf148d48d2ebe037", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4698, "upload_time": "2018-04-11T09:18:14", "url": "https://files.pythonhosted.org/packages/ec/fb/0500e1c4a7266d52585646cc51ed9fbdd96d9f646e34f7ae42bfb0b91be5/uqid-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59d3200bccd598a888fcde899c8eb3c5", "sha256": "bc3adebc79462e4cea107b7e93ba00c59702ff25c587ecdf97dd26906578038c" }, "downloads": -1, "filename": "uqid-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "59d3200bccd598a888fcde899c8eb3c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4661, "upload_time": "2018-04-11T09:18:16", "url": "https://files.pythonhosted.org/packages/5b/e5/eb5c81e2266280593d8969ca1fa60b33b6f41ce638329bd8de4061857276/uqid-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80208188bc460e2a4fa4cce8c6c7df4f", "sha256": "edee2fc48c5feed999d95bc88755a57b9e94dd8405d23bc4a4afb87c58b18d78" }, "downloads": -1, "filename": "uqid-0.3.0.tar.gz", "has_sig": false, "md5_digest": "80208188bc460e2a4fa4cce8c6c7df4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2896, "upload_time": "2018-04-11T09:18:18", "url": "https://files.pythonhosted.org/packages/31/b1/8692e13be884be7d6dd9ea6478421ae53a8d9c43d696d3fa0df81f0c7346/uqid-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e00850687e71c223bf148d48d2ebe037", "sha256": "61cfa4ed07b6166ae81b76937cdc302c4ee396f2bc80f98d50604392b9ce0f5c" }, "downloads": -1, "filename": "uqid-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e00850687e71c223bf148d48d2ebe037", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4698, "upload_time": "2018-04-11T09:18:14", "url": "https://files.pythonhosted.org/packages/ec/fb/0500e1c4a7266d52585646cc51ed9fbdd96d9f646e34f7ae42bfb0b91be5/uqid-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59d3200bccd598a888fcde899c8eb3c5", "sha256": "bc3adebc79462e4cea107b7e93ba00c59702ff25c587ecdf97dd26906578038c" }, "downloads": -1, "filename": "uqid-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "59d3200bccd598a888fcde899c8eb3c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4661, "upload_time": "2018-04-11T09:18:16", "url": "https://files.pythonhosted.org/packages/5b/e5/eb5c81e2266280593d8969ca1fa60b33b6f41ce638329bd8de4061857276/uqid-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80208188bc460e2a4fa4cce8c6c7df4f", "sha256": "edee2fc48c5feed999d95bc88755a57b9e94dd8405d23bc4a4afb87c58b18d78" }, "downloads": -1, "filename": "uqid-0.3.0.tar.gz", "has_sig": false, "md5_digest": "80208188bc460e2a4fa4cce8c6c7df4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2896, "upload_time": "2018-04-11T09:18:18", "url": "https://files.pythonhosted.org/packages/31/b1/8692e13be884be7d6dd9ea6478421ae53a8d9c43d696d3fa0df81f0c7346/uqid-0.3.0.tar.gz" } ] }