{ "info": { "author": "Jonas Grimfelt", "author_email": "grimen@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries" ], "description": "\n# `attributedict` [![PyPI version](https://badge.fury.io/py/attributedict.svg)](https://badge.fury.io/py/attributedict) [![Build Status](https://travis-ci.com/grimen/python-attributedict.svg?branch=master)](https://travis-ci.com/grimen/python-attributedict) [![Coverage Status](https://codecov.io/gh/grimen/python-attributedict/branch/master/graph/badge.svg)](https://codecov.io/gh/grimen/python-attributedict)\n\n*A dictionary object with attributes support.*\n\n\n## Install\n\nInstall using **pip**:\n\n```sh\n$ pip install attributedict\n```\n\n\n## Use\n\nExample:\n\n```python\nfrom attributedict.collections import AttributeDict\n\ndata = AttributeDict({'foo': {'bar': [1, 2, 3]}})\n\ndata.foo # => `{'bar': [1, 2, 3]}}`\ndata.foo.bar # => `[1, 2, 3]`\n\ndata.foo = {'baz': True}\ndata.foo = # => `{'baz': True}`\n\ndel data.foo.baz\n\n# and/or...\n\ndata = AttributeDict({'foo': {'bar': [1, 2, 3]}})\n\ndata['foo'] # => `{'bar': [1, 2, 3]}}`\ndata['foo']['bar'] # => `[1, 2, 3]`\n\ndata['foo'] = {'baz': True}\ndata['foo'] = # => `{'baz': True}`\n\ndel data['foo']['baz']\n\n# instance of `dict`...\n\nisinstance(data, dict) # => True\nisinstance(data, attributedict.collections.AttributeDict) # => True\n\nisinstance(data.__dict__, dict) # => True\nisinstance(data.__dict__, attributedict.collections.AttributeDict) # => False\n\n# no need for custom encoders...\n\ndata = AttributeDict({'foo': {'bar': [1, 2, 3]}})\n\njson.dumps(data) # => `{\"foo\": {\"bar\": [1, 2, 3]}}`\njson.dumps(data.__dict__) # => `{\"foo\": {\"bar\": [1, 2, 3]}}`\n\n# etc.\n\n```\n\n\n## Test\n\nClone down source code and run:\n\n```sh\n$ make install\n$ make test\n```\n\n\n## License\n\nReleased under the MIT license.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/grimen/python-attributedict", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/grimen/python-attributedict", "keywords": "object,dict,dictionary,collection,attributes,attribute,attr,properties,property,props,openstruct,struct,hashmap", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "attributedict", "package_url": "https://pypi.org/project/attributedict/", "platform": "", "project_url": "https://pypi.org/project/attributedict/", "project_urls": { "Download": "https://github.com/grimen/python-attributedict", "Homepage": "https://github.com/grimen/python-attributedict", "bugs": "https://github.com/grimen/python-attributedict/issues", "repository": "https://github.com/grimen/python-attributedict" }, "release_url": "https://pypi.org/project/attributedict/0.3.0/", "requires_dist": [ "rootpath (>=0.1.0)", "inspecta (>=0.1.0)", "colour-runner (>=0.0.5)", "deepdiff (>=3.3.0)", "tox (>=3.0.0)", "coverage (>=4.5.2)", "codecov (>=2.0.15)" ], "requires_python": "", "summary": "A dictionary object with attributes support.", "version": "0.3.0" }, "last_serial": 4921026, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e1190030fe02a50d8dd1d1ebcf07610b", "sha256": "619c13d446c6552bac9d1002f01f15ef1bc62dc7834c8456417756ec9f2abcbc" }, "downloads": -1, "filename": "attributedict-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e1190030fe02a50d8dd1d1ebcf07610b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2070, "upload_time": "2018-06-24T07:35:46", "url": "https://files.pythonhosted.org/packages/de/bd/5a9eb76be0021348fbcf2abf6eba8f3ac8822224047afa33006c9b7e1631/attributedict-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7fee41ff76831155cde9a541b8e1cf2", "sha256": "cc828c3b7309b94af0b38196e60349f39b86186055f168bc51b87cd2c1b348ba" }, "downloads": -1, "filename": "attributedict-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a7fee41ff76831155cde9a541b8e1cf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2002, "upload_time": "2018-06-24T07:35:47", "url": "https://files.pythonhosted.org/packages/48/7f/43747b8cc7ea834a68f9913f9be62b31092b05c486280bc328c1ec7cfe6d/attributedict-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9bf88cceb3a283d9cef5969336faafd6", "sha256": "94fd77a3c014dab6db038e7256a8ba6149b1f4640b72c32b6d731fbfa6c268a0" }, "downloads": -1, "filename": "attributedict-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9bf88cceb3a283d9cef5969336faafd6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2099, "upload_time": "2018-06-24T08:04:25", "url": "https://files.pythonhosted.org/packages/a7/e3/7eaec3a4c9b3ebe389ce504004acfd57f95667036eac7754f0d6086b00f0/attributedict-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d26520b74464385c80a93454a57574aa", "sha256": "0b0f947f9e79ab18ff96cc2ec04f410024a7373da2655c3b3259dea242f05888" }, "downloads": -1, "filename": "attributedict-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d26520b74464385c80a93454a57574aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2024, "upload_time": "2018-06-24T08:04:26", "url": "https://files.pythonhosted.org/packages/24/8c/8c227f0fa0a12017be0b575c1af4bf38978eb0c1bbe2bff8870002a94b67/attributedict-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0470ce5e90b3cfea2bf746cfd299fcdc", "sha256": "6034a649317bc40962d943628c463dee3947e6e3e7497ccedb32e7abf2bd5cef" }, "downloads": -1, "filename": "attributedict-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "0470ce5e90b3cfea2bf746cfd299fcdc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2100, "upload_time": "2018-06-24T08:58:02", "url": "https://files.pythonhosted.org/packages/ea/6c/818c983c01c778b17030c27bc749c7014233341bfb037ca5c9b72eb5a8eb/attributedict-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14e55cf4fbeab207e1cca475246a6f2d", "sha256": "d10b2bfa28a7415f144f086ef9289102c8d26f54c3d1e60112a3f45839ecc4c0" }, "downloads": -1, "filename": "attributedict-0.1.2.tar.gz", "has_sig": false, "md5_digest": "14e55cf4fbeab207e1cca475246a6f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2070, "upload_time": "2018-06-24T08:58:03", "url": "https://files.pythonhosted.org/packages/e7/52/9008fb6aaf7fb4810d39ac8f23443152ced68437d4945ca3b35c60e349ce/attributedict-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "1dd174dc296e6dafea6de1544d1dd643", "sha256": "fa9cd6f09829850cc581f2df8dc103dfe6e43b7d6912171e8864e874062fd3b8" }, "downloads": -1, "filename": "attributedict-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "1dd174dc296e6dafea6de1544d1dd643", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2098, "upload_time": "2018-06-24T09:06:11", "url": "https://files.pythonhosted.org/packages/3b/4f/71ac8638c9fce0bfa6f0a940c9366a0e73a12c352904d0f33d7573e1b849/attributedict-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "426ae0236a13a1b03299d15e2dfcad25", "sha256": "f953057098dddf21065b2044f11469188bea61c0022377c50b5b0e2fc8691136" }, "downloads": -1, "filename": "attributedict-0.1.3.tar.gz", "has_sig": false, "md5_digest": "426ae0236a13a1b03299d15e2dfcad25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2072, "upload_time": "2018-06-24T09:06:12", "url": "https://files.pythonhosted.org/packages/20/d5/f0a437624be8f1b3e117519b047e6e69ac8368610f9516b66e7d02f0cd01/attributedict-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "53de9ca53470f03d759dca94fa99f119", "sha256": "252b604723fbf2c66cfc4269920491eaa9e07067259ab5971be8ac36a82a218b" }, "downloads": -1, "filename": "attributedict-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "53de9ca53470f03d759dca94fa99f119", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9162, "upload_time": "2018-06-24T18:12:40", "url": "https://files.pythonhosted.org/packages/de/ab/a322bf988cc24981501490b29e8f2a085c7f0dc72d578205e213a9d10850/attributedict-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e757c3f451142688c26886acf237f66", "sha256": "2f8cb63a37c2543a85f7c9b9b0e2ea7b7646b371ef7ee38b91bd0ad8f70b5bbc" }, "downloads": -1, "filename": "attributedict-0.1.4.tar.gz", "has_sig": false, "md5_digest": "2e757c3f451142688c26886acf237f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7690, "upload_time": "2018-06-24T18:12:41", "url": "https://files.pythonhosted.org/packages/00/e6/793a47a3cadcfcdb908fdad8d4889f1120898bf87838e1e0e365f28ccb64/attributedict-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b1aa9fbb4ed1ed79d7b0724c84b91f19", "sha256": "eb9599c4fd91f8d529c17c8f69bc2f9321bdb5f8cbf1c7a88984cab5ed816c6e" }, "downloads": -1, "filename": "attributedict-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "b1aa9fbb4ed1ed79d7b0724c84b91f19", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9527, "upload_time": "2018-06-26T19:08:12", "url": "https://files.pythonhosted.org/packages/50/f8/4e959fefff3234f8668fd79f8f9d90d677d92af7b93701650331d82f702d/attributedict-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "358ab27547278186191e68ce0e1314de", "sha256": "8861b52139424ac34e43cbc4d8f4ff875b324e94f2dad48f5a7fd7a0e5f58f8e" }, "downloads": -1, "filename": "attributedict-0.1.5.tar.gz", "has_sig": false, "md5_digest": "358ab27547278186191e68ce0e1314de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8031, "upload_time": "2018-06-26T19:08:13", "url": "https://files.pythonhosted.org/packages/3a/5f/19e28d015c3867ee2ad9745e48e17794b9e434e79784c8b0266897e43dd8/attributedict-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "f481a4aeb03c28e147c1fa4eab4073f5", "sha256": "1da74b2a4a49ea72cf67190ab24d90e372890146a3f0311737b913d73c4d098b" }, "downloads": -1, "filename": "attributedict-0.1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "f481a4aeb03c28e147c1fa4eab4073f5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9835, "upload_time": "2018-06-28T08:07:32", "url": "https://files.pythonhosted.org/packages/88/7e/dc749c10927ba615df82e1ea21096edc01a5d0b2e6c7c37a4ba224ecfd6f/attributedict-0.1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c43b96ed05724cbbbbdb853913c3743", "sha256": "e2d1df574a10d146d4f66df3b1d9f9a71340b51c1ec9391e72de0bce560c21f1" }, "downloads": -1, "filename": "attributedict-0.1.6.tar.gz", "has_sig": false, "md5_digest": "9c43b96ed05724cbbbbdb853913c3743", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8386, "upload_time": "2018-06-28T08:07:33", "url": "https://files.pythonhosted.org/packages/96/e8/86eb1fa92496af9556f730df8443fbd20e260a402b46c47fa8799d8ebc4e/attributedict-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "16c80c614bdf95ece5a8b16146ddcb27", "sha256": "fd4fa09c99589926181f78f7e488bb753a6f0b55c6a8451d8e90dc4ddde7189d" }, "downloads": -1, "filename": "attributedict-0.1.7-py2-none-any.whl", "has_sig": false, "md5_digest": "16c80c614bdf95ece5a8b16146ddcb27", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10033, "upload_time": "2018-06-29T03:09:57", "url": "https://files.pythonhosted.org/packages/eb/fc/aed7e807850af88de11ab8d9d6bd0a07f28f5e9d0a9bb4e14d0166cb272b/attributedict-0.1.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b53e8b1e043b968445cd4fffba8cd368", "sha256": "dc9bb1ffafeb5643070d3777f7acca541de226191e94a36100178ffba6f76f36" }, "downloads": -1, "filename": "attributedict-0.1.7.tar.gz", "has_sig": false, "md5_digest": "b53e8b1e043b968445cd4fffba8cd368", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11262, "upload_time": "2018-06-29T03:09:59", "url": "https://files.pythonhosted.org/packages/b5/4a/17f54acecae2f166829fd8f900da3c0ceaf319b0f1276a3f9fc7c75b0412/attributedict-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "27a5a2a329288fc7988783291300f610", "sha256": "8478db66605e27da7789517e64269f2831c5f7d6642fa27ff137c07faa0377b6" }, "downloads": -1, "filename": "attributedict-0.1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "27a5a2a329288fc7988783291300f610", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10114, "upload_time": "2018-08-03T02:41:01", "url": "https://files.pythonhosted.org/packages/77/e9/d069e53d85d77a7b2a036b02a89ad15c734b4870028235e938c621ffbd8d/attributedict-0.1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d70286ad4a619e761d9e41cf9b3a0b7a", "sha256": "7ac3e1df3ef42db3213e8c0f4bd68fc65f3417bbab1f675233e733302c58187a" }, "downloads": -1, "filename": "attributedict-0.1.8.tar.gz", "has_sig": false, "md5_digest": "d70286ad4a619e761d9e41cf9b3a0b7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11559, "upload_time": "2018-08-03T02:41:02", "url": "https://files.pythonhosted.org/packages/f8/74/3b48e2749e1e96ba05fde101618de8f72dcb94cad78247677ee412fb8312/attributedict-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d76221c4009685434ce021872f3cbfac", "sha256": "74fb647a0eb2c59f4b89120634680db721ef833c9115e1f0e7452730fd803e83" }, "downloads": -1, "filename": "attributedict-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d76221c4009685434ce021872f3cbfac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10030, "upload_time": "2019-01-17T04:27:44", "url": "https://files.pythonhosted.org/packages/eb/96/36080f3a06db6eb85542b6f92944fafc5d95360fd338db7695968f82343e/attributedict-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a98a045496d4c70ca9bfe06ffb66539d", "sha256": "7df8d8f894cf48f7ab121ff63c888a0c08cc79553a5f44d45a16886fd92753a4" }, "downloads": -1, "filename": "attributedict-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a98a045496d4c70ca9bfe06ffb66539d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11466, "upload_time": "2019-01-17T04:27:45", "url": "https://files.pythonhosted.org/packages/fa/be/6aed1ff30a9aeda6de51b3b603df5f8110fb6433927cf23f81a9599a71f1/attributedict-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "eb24d2454554691bd50e74d78575d6cd", "sha256": "501f09c6f4c5d8b6d2d12972e8b777bc4b26db3afdf54cc4ef7e31376809a955" }, "downloads": -1, "filename": "attributedict-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eb24d2454554691bd50e74d78575d6cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14341, "upload_time": "2019-03-10T11:04:28", "url": "https://files.pythonhosted.org/packages/de/db/337b36e8d85a07293f5a792644fa972b53a52b13587f484c627009206697/attributedict-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f05b71b5bd3846ca8974b1ad44a08b12", "sha256": "983c3ab52ca1817785a3cd22f7d975ead4b1cbe7bc466c5ec1d4728eae791c7a" }, "downloads": -1, "filename": "attributedict-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f05b71b5bd3846ca8974b1ad44a08b12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12236, "upload_time": "2019-03-10T11:04:29", "url": "https://files.pythonhosted.org/packages/1f/d4/a7cd4dfa9eb0e9dfa2d59c29851b6c9067e149a45a17270301d46b0daec5/attributedict-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eb24d2454554691bd50e74d78575d6cd", "sha256": "501f09c6f4c5d8b6d2d12972e8b777bc4b26db3afdf54cc4ef7e31376809a955" }, "downloads": -1, "filename": "attributedict-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eb24d2454554691bd50e74d78575d6cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14341, "upload_time": "2019-03-10T11:04:28", "url": "https://files.pythonhosted.org/packages/de/db/337b36e8d85a07293f5a792644fa972b53a52b13587f484c627009206697/attributedict-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f05b71b5bd3846ca8974b1ad44a08b12", "sha256": "983c3ab52ca1817785a3cd22f7d975ead4b1cbe7bc466c5ec1d4728eae791c7a" }, "downloads": -1, "filename": "attributedict-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f05b71b5bd3846ca8974b1ad44a08b12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12236, "upload_time": "2019-03-10T11:04:29", "url": "https://files.pythonhosted.org/packages/1f/d4/a7cd4dfa9eb0e9dfa2d59c29851b6c9067e149a45a17270301d46b0daec5/attributedict-0.3.0.tar.gz" } ] }