{ "info": { "author": "Takao Magoori", "author_email": "takaomag@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "chatora.mmid\n============\n\nPython helper libraries for MMID which is similar to UUIDv1 but sortable.\n\n\n## Usage\n```python\nimport datetime\nimport random\nimport uuid\nfrom chatora.mmid.api import BaseMMID1\n\n\nBASE_DT = datetime.datetime(2011, 1, 1, tzinfo=datetime.timezone.utc)\n\n\nclass MMID1v0(BaseMMID1):\n __slots__ = ('int',)\n UUID_VERSION = 4\n MMID_VERSION = 0\n TS_BIT_LENGTH = 55\n EPOCH_DT = datetime.datetime(2010, 1, 1, tzinfo=datetime.timezone.utc)\n\n\n# Construct\nassert MMID1v0().version == 4\nassert MMID1v0(dt=BASE_DT).dt == MMID1v0(ts=BASE_DT.timestamp()).dt == BASE_DT\n\n\n# Sortable, which is useful for RDB column index (PostgreSQL UUID/BYTEA, MySQL BINARY).\nassert MMID1v0(dt=BASE_DT) < MMID1v0(dt=BASE_DT + datetime.timedelta(days=1))\n\nclock_seq = random.getrandbits(14)\nassert MMID1v0(dt=BASE_DT, clock_seq=clock_seq) == MMID1v0(dt=BASE_DT, clock_seq=clock_seq)\n\n# create_min_instance_from_time()/create_max_instance_from_time() may be useful in case of range query on RDB.\nassert MMID1v0.create_min_instance_from_time(\n dt=BASE_DT,\n) == MMID1v0(hex_='811ed178-c6c0-4000-0000-000000000000')\n\nassert MMID1v0.create_max_instance_from_time(\n dt=BASE_DT,\n) == MMID1v0(hex_='811ed178-c6c0-4000-ffff-ffffffffffff')\n\n\n\n# Compatible with UUID1\nuuid1 = uuid.uuid1()\nmmid1v0 = MMID1v0(src_uuid1=uuid1)\n\nassert uuid1 == mmid1v0\nassert mmid1v0.uuid1 == uuid1\n```\n\n\nChangelog\n=========\n\n0.1 (2019-01-16)\n----------------\n- Birth!\n\n0.1.1 (2019-01-16)\n------------------\n- Remove unused requirements.\n\n0.1.2 (2019-01-17)\n------------------\n- Fix timestamp/datetime precision.\n- Accept decimal.Decimal() timestamp values.\n\n0.1.3 (2019-01-17)\n------------------\n- Fix timestamp/datetime precision.\n\n0.1.4 (2019-05-14)\n------------------\n- Remove `structlog` dependency.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/takaomag/chatora.mmid/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/takaomag/chatora.mmid", "keywords": "MMID,UUID", "license": "MIT", "maintainer": "Takao Magoori", "maintainer_email": "takaomag@users.noreply.github.com", "name": "chatora.mmid", "package_url": "https://pypi.org/project/chatora.mmid/", "platform": "", "project_url": "https://pypi.org/project/chatora.mmid/", "project_urls": { "Download": "https://github.com/takaomag/chatora.mmid/releases", "Homepage": "https://github.com/takaomag/chatora.mmid", "documentation": "https://github.com/takaomag/chatora.mmid/blob/master/README.md", "issues": "https://github.com/takaomag/chatora.mmid/issues", "source code": "https://github.com/takaomag/chatora.mmid" }, "release_url": "https://pypi.org/project/chatora.mmid/0.1.4/", "requires_dist": [ "setuptools (>=41.0.1)", "pip (>=19.1.1)", "wheel (>=0.33.1)", "packaging (>=19.0)", "chatora.util (>=0.2.3)", "bumpversion (>=0.5.3) ; extra == 'dev'", "check-manifest (>=0.38) ; extra == 'dev'", "colorama (>=0.4.1) ; extra == 'dev'", "click-completion (>=0.5.1) ; extra == 'shell'", "click-help-colors (>=0.5) ; extra == 'shell'" ], "requires_python": ">=3.7", "summary": "Python helper libraries for MMID.", "version": "0.1.4" }, "last_serial": 5265324, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "cd3e7f3ecaf8fc081ca3e19a439b94cc", "sha256": "19fb82b877be1549c92b9fcd04b47a63f8215f2fcf80eed59f54cc48c1729648" }, "downloads": -1, "filename": "chatora.mmid-0.1-py37-none-any.whl", "has_sig": false, "md5_digest": "cd3e7f3ecaf8fc081ca3e19a439b94cc", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 9990, "upload_time": "2019-01-16T09:29:07", "url": "https://files.pythonhosted.org/packages/74/15/37688c471e279683ad1479d47a1bce0c494f9b2c5f3486e24884f5391b2e/chatora.mmid-0.1-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e2140b2400bed6b92197cc01438e9a3", "sha256": "6150fb47ccb4f76fe748026a39c8c7d5e9f3ca69eac8cfcfd6779fd4113aa50a" }, "downloads": -1, "filename": "chatora.mmid-0.1.tar.gz", "has_sig": false, "md5_digest": "0e2140b2400bed6b92197cc01438e9a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9913, "upload_time": "2019-01-16T09:29:09", "url": "https://files.pythonhosted.org/packages/eb/99/ec2cdb9a6ffc9a0756effd8843f885e953f4ca619510ed2ac94dbf4f6e18/chatora.mmid-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4117f869728d5f0338027a4eba352cc3", "sha256": "57b0d364d7782b219b93499a1ff23e26ee535e3b46ad86efb7767514d90798ad" }, "downloads": -1, "filename": "chatora.mmid-0.1.1-py37-none-any.whl", "has_sig": false, "md5_digest": "4117f869728d5f0338027a4eba352cc3", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 9964, "upload_time": "2019-01-16T09:48:26", "url": "https://files.pythonhosted.org/packages/8c/92/62f8c58c25edc0313275becf63c4c31dd1981a00694807849c86528a770f/chatora.mmid-0.1.1-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "394ed30c8923ebe949ab547bcb9df65a", "sha256": "9f8c33ed7bc96b467aa381bcd04d2eb72dc3249ccd950279c911ae230c24e863" }, "downloads": -1, "filename": "chatora.mmid-0.1.1.tar.gz", "has_sig": false, "md5_digest": "394ed30c8923ebe949ab547bcb9df65a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9816, "upload_time": "2019-01-16T09:48:27", "url": "https://files.pythonhosted.org/packages/13/25/8be988611839ee1bcabfa0ef94a03ee6a94c06124b9c1bc5ca75a190fb5c/chatora.mmid-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5c96bd98cda61ccdcc2975111e85cdbb", "sha256": "7cceadbbe321055b1dcd0eed49d0b936c064391ca7530b07962134a7515cc6c5" }, "downloads": -1, "filename": "chatora.mmid-0.1.2-py37-none-any.whl", "has_sig": false, "md5_digest": "5c96bd98cda61ccdcc2975111e85cdbb", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 9995, "upload_time": "2019-01-17T04:48:21", "url": "https://files.pythonhosted.org/packages/37/a6/7a330429660a08d83e92acff4826ff75efe5ff7f73aca0fc2736f07ae226/chatora.mmid-0.1.2-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3edeca12506372be0df9f1c51d3826d8", "sha256": "69fc9a87246071b9c39ad1394ca0a191de8b01de6bfa4ad850479d0895bcc1cb" }, "downloads": -1, "filename": "chatora.mmid-0.1.2.tar.gz", "has_sig": false, "md5_digest": "3edeca12506372be0df9f1c51d3826d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9925, "upload_time": "2019-01-17T04:48:23", "url": "https://files.pythonhosted.org/packages/e3/28/a8e17ef26b639210fda0f93b2c9ea25347a41edc2b80b6a99a20629fcbab/chatora.mmid-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "dcbe8a876d94985cb114a42192f927cb", "sha256": "f2062c148e58bd755f36ad190cc7fb87b74126b7ed4f6141586b1f092453160d" }, "downloads": -1, "filename": "chatora.mmid-0.1.3-py37-none-any.whl", "has_sig": false, "md5_digest": "dcbe8a876d94985cb114a42192f927cb", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 10010, "upload_time": "2019-01-17T06:10:11", "url": "https://files.pythonhosted.org/packages/c7/45/5a0deedc3b708e327a2e76a3e5e58187b4f7e721ca048cd360c3eaea9f37/chatora.mmid-0.1.3-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ece8254cf10172d8d71bf9163f40b4e", "sha256": "79d1e0e0d2f6c1e58fc1fceda14d5239552afeab0ac12e952cac18cf4c008254" }, "downloads": -1, "filename": "chatora.mmid-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2ece8254cf10172d8d71bf9163f40b4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 9940, "upload_time": "2019-01-17T06:10:12", "url": "https://files.pythonhosted.org/packages/86/83/b5b911b46f3c656bef8bb9e8e2e39810243efd520c8952ca26680906f9c2/chatora.mmid-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ce7922ce411615d2be986a3ae8335f6f", "sha256": "15446df28732d6159486d724587713394c48d6e95f5b8fe2535b3f291bf8f847" }, "downloads": -1, "filename": "chatora.mmid-0.1.4-py37-none-any.whl", "has_sig": false, "md5_digest": "ce7922ce411615d2be986a3ae8335f6f", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 10111, "upload_time": "2019-05-14T03:19:00", "url": "https://files.pythonhosted.org/packages/2c/05/18f00cc8a4aa798d6ab202b94dd8795c00602049dde8205625f802f33aa0/chatora.mmid-0.1.4-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80089484cf9546b85baf0866defbe389", "sha256": "294c100c06cc66bdc30c51904bf6752b716fe61dca53fe1753bdfb433deac9da" }, "downloads": -1, "filename": "chatora.mmid-0.1.4.tar.gz", "has_sig": false, "md5_digest": "80089484cf9546b85baf0866defbe389", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 10099, "upload_time": "2019-05-14T03:19:02", "url": "https://files.pythonhosted.org/packages/96/27/544b9025815edcdb89c7a4580553c3965ed6b40b5fddfbd36b2841461262/chatora.mmid-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ce7922ce411615d2be986a3ae8335f6f", "sha256": "15446df28732d6159486d724587713394c48d6e95f5b8fe2535b3f291bf8f847" }, "downloads": -1, "filename": "chatora.mmid-0.1.4-py37-none-any.whl", "has_sig": false, "md5_digest": "ce7922ce411615d2be986a3ae8335f6f", "packagetype": "bdist_wheel", "python_version": "py37", "requires_python": ">=3.7", "size": 10111, "upload_time": "2019-05-14T03:19:00", "url": "https://files.pythonhosted.org/packages/2c/05/18f00cc8a4aa798d6ab202b94dd8795c00602049dde8205625f802f33aa0/chatora.mmid-0.1.4-py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80089484cf9546b85baf0866defbe389", "sha256": "294c100c06cc66bdc30c51904bf6752b716fe61dca53fe1753bdfb433deac9da" }, "downloads": -1, "filename": "chatora.mmid-0.1.4.tar.gz", "has_sig": false, "md5_digest": "80089484cf9546b85baf0866defbe389", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 10099, "upload_time": "2019-05-14T03:19:02", "url": "https://files.pythonhosted.org/packages/96/27/544b9025815edcdb89c7a4580553c3965ed6b40b5fddfbd36b2841461262/chatora.mmid-0.1.4.tar.gz" } ] }