{ "info": { "author": "The Matrix.org Team", "author_email": "team@matrix.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "Canonical JSON\n==============\n\n.. image:: https://img.shields.io/pypi/v/canonicaljson.svg\n :target: https://pypi.python.org/pypi/canonicaljson/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/travis/matrix-org/python-canonicaljson.svg\n :target: https://travis-ci.org/matrix-org/python-canonicaljson\n\nFeatures\n--------\n\n* Encodes objects and arrays as `RFC 7159`_ JSON.\n* Sorts object keys so that you get the same result each time.\n* Has no insignificant whitespace to make the output as small as possible.\n* Escapes only the characters that must be escaped, U+0000 to U+0019 / U+0022 /\n U+0056, to keep the output as small as possible.\n* Uses the shortest escape sequence for each escaped character.\n* Encodes the JSON as UTF-8.\n* Can encode ``frozendict`` immutable dictionaries.\n\n.. _`RFC 7159`: https://tools.ietf.org/html/rfc7159\n\nInstalling\n----------\n\n.. code:: bash\n\n pip install canonicaljson\n\nUsing\n-----\n\n.. code:: python\n\n import canonicaljson\n assert canonicaljson.encode_canonical_json({}) == b'{}'\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/matrix-org/python-canonicaljson", "keywords": "json", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "canonicaljson", "package_url": "https://pypi.org/project/canonicaljson/", "platform": "", "project_url": "https://pypi.org/project/canonicaljson/", "project_urls": { "Homepage": "https://github.com/matrix-org/python-canonicaljson" }, "release_url": "https://pypi.org/project/canonicaljson/1.1.4/", "requires_dist": [ "frozendict (>=1.0)", "simplejson (>=3.6.5)", "six" ], "requires_python": "", "summary": "Canonical JSON", "version": "1.1.4" }, "last_serial": 3890513, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "3ebd2d00f2b1a15804a80256fbd83711", "sha256": "fe608e75fd0e9c57c43ef48e0628817868fa173f97127992bc7524d30ef487ee" }, "downloads": -1, "filename": "canonicaljson-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ebd2d00f2b1a15804a80256fbd83711", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3693, "upload_time": "2015-08-21T18:11:35", "url": "https://files.pythonhosted.org/packages/3e/17/b85ec00700a62a932395a0767d1fd90deb231fed5e7382ef5d10ce0ac512/canonicaljson-1.0.0-py2.py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4534c4d17da493c5e34ed63849443110", "sha256": "a2081504b620af90a340eacdc6b9ec15813aca43bea3716417b450e76fad3bde" }, "downloads": -1, "filename": "canonicaljson-1.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4534c4d17da493c5e34ed63849443110", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5611, "upload_time": "2018-04-06T14:50:27", "url": "https://files.pythonhosted.org/packages/5f/a5/9e6a9faaf138280a940df90f19028f0a038a1dafef90cd387a8353d7f3fc/canonicaljson-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e3afe5b0286caf0cfdd6a18b983c98b", "sha256": "ec37888a7beb70d533f24d8454e9f8d3f6a622ccd7831dff243282e728cbc241" }, "downloads": -1, "filename": "canonicaljson-1.1.0.tar.gz", "has_sig": true, "md5_digest": "1e3afe5b0286caf0cfdd6a18b983c98b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8628, "upload_time": "2018-04-06T14:50:28", "url": "https://files.pythonhosted.org/packages/b0/51/1cff36de5db81235396fc22e784ce0787506749d204f98efed626dff55fa/canonicaljson-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ce4a1354fc8f599bf135086f87c3a07c", "sha256": "e6c12c52959a581295c0a9bad1fee9c3ddaa3706ec7d9a410f3301ef0deb4d54" }, "downloads": -1, "filename": "canonicaljson-1.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ce4a1354fc8f599bf135086f87c3a07c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5684, "upload_time": "2018-04-11T17:09:49", "url": "https://files.pythonhosted.org/packages/cd/70/ce0af51670057ae87146def13985c0f02ffc6ddb22a7340e4b31f1e0760e/canonicaljson-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "601becfc5d83786090d32a46345f17a7", "sha256": "bb2b91c802eb61ec24e1ec409e74419fb64135317d77766f29781c11064731a1" }, "downloads": -1, "filename": "canonicaljson-1.1.1.tar.gz", "has_sig": false, "md5_digest": "601becfc5d83786090d32a46345f17a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9088, "upload_time": "2018-04-11T17:09:50", "url": "https://files.pythonhosted.org/packages/d4/6d/a608bcc25c0885eddcfa46ed989974347a55c082219b01c3f75c7353b40e/canonicaljson-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "86c648993a97d702a2983c7ee6464a91", "sha256": "73de4dc65fbd019ce216526f55407fffda1be146f6cc082e7842bd45edd292cb" }, "downloads": -1, "filename": "canonicaljson-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "86c648993a97d702a2983c7ee6464a91", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5680, "upload_time": "2018-04-12T15:01:48", "url": "https://files.pythonhosted.org/packages/63/42/4de6695ce9337debe013c5c3e7d019e39a0c98a991f47c63312a5d6d50df/canonicaljson-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62de111dffdafe6f6c651154f05498b3", "sha256": "8dd7ab1487c7890da50ddd34060ab705dc52ff34090f3bb092a69d97faf9a212" }, "downloads": -1, "filename": "canonicaljson-1.1.2.tar.gz", "has_sig": false, "md5_digest": "62de111dffdafe6f6c651154f05498b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9096, "upload_time": "2018-04-12T15:01:50", "url": "https://files.pythonhosted.org/packages/23/34/caf95735e46fcd7e917a99a25babcf2a271759b18dc680d69a647da23cab/canonicaljson-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "26a200e1a65963dfab011a3f5255c357", "sha256": "ab7f1291945be7473525f6df34ffde96212bd6a0d4f6481da3f0c2f896536c67" }, "downloads": -1, "filename": "canonicaljson-1.1.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "26a200e1a65963dfab011a3f5255c357", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5677, "upload_time": "2018-04-13T08:55:34", "url": "https://files.pythonhosted.org/packages/6c/1f/2d213b9553518c2b0c84192defdeccd33dfe855f1c5300ca714b5505211b/canonicaljson-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d5351325ea02d378b74fad99ebf26f7", "sha256": "06fe8676dbba4289d846f0699324297e1fd9bb7f2cb9964d69f364a0d2fca0e0" }, "downloads": -1, "filename": "canonicaljson-1.1.3.tar.gz", "has_sig": true, "md5_digest": "9d5351325ea02d378b74fad99ebf26f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9158, "upload_time": "2018-04-13T08:55:45", "url": "https://files.pythonhosted.org/packages/f3/22/1c7c11496b64252d5bf08b12d624a45cab5d804b8f39ad2f1d5390945c66/canonicaljson-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "ffa77288952f06a827a885223f0f7a2e", "sha256": "e7fe5b1d5a2b740c188ec2860fad0578aabff2cc59edcb41c02eb4d472b95ded" }, "downloads": -1, "filename": "canonicaljson-1.1.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ffa77288952f06a827a885223f0f7a2e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5853, "upload_time": "2018-05-23T08:29:28", "url": "https://files.pythonhosted.org/packages/59/8d/791b6b9a297a4ff982bb51e5d5248dbd4367215f1eeb5a97da51e70585c7/canonicaljson-1.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92724fe3df90ca57699b1faf09de7aab", "sha256": "45bce530ff5fd0ca93703f71bfb66de740a894a3b5dd6122398c6d8f18539725" }, "downloads": -1, "filename": "canonicaljson-1.1.4.tar.gz", "has_sig": true, "md5_digest": "92724fe3df90ca57699b1faf09de7aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9355, "upload_time": "2018-05-23T08:29:36", "url": "https://files.pythonhosted.org/packages/f5/80/c661e76d87551d67937f88ff8df5547681ad7a0d7e46d37fa28fbac7efa8/canonicaljson-1.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ffa77288952f06a827a885223f0f7a2e", "sha256": "e7fe5b1d5a2b740c188ec2860fad0578aabff2cc59edcb41c02eb4d472b95ded" }, "downloads": -1, "filename": "canonicaljson-1.1.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ffa77288952f06a827a885223f0f7a2e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5853, "upload_time": "2018-05-23T08:29:28", "url": "https://files.pythonhosted.org/packages/59/8d/791b6b9a297a4ff982bb51e5d5248dbd4367215f1eeb5a97da51e70585c7/canonicaljson-1.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92724fe3df90ca57699b1faf09de7aab", "sha256": "45bce530ff5fd0ca93703f71bfb66de740a894a3b5dd6122398c6d8f18539725" }, "downloads": -1, "filename": "canonicaljson-1.1.4.tar.gz", "has_sig": true, "md5_digest": "92724fe3df90ca57699b1faf09de7aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9355, "upload_time": "2018-05-23T08:29:36", "url": "https://files.pythonhosted.org/packages/f5/80/c661e76d87551d67937f88ff8df5547681ad7a0d7e46d37fa28fbac7efa8/canonicaljson-1.1.4.tar.gz" } ] }