{ "info": { "author": "Osmo Salomaa", "author_email": "otsaloma@iki.fi", "bugtrack_url": null, "classifiers": [], "description": "Attribute Dictionary\n====================\n\n[![Build Status](https://travis-ci.org/otsaloma/attd.svg)](https://travis-ci.org/otsaloma/attd)\n[![PyPI](https://img.shields.io/pypi/v/attd.svg)](https://pypi.org/project/attd/)\n\nattd is a Python package that provides a dictionary with attribute\naccess to keys. It is especially convenient when working with deeply\nnested data from JSON APIs.\n\n## Installation\n\n```bash\npip install attd\n```\n\n## Documentation\n\n```python\n>>> from attd import AttributeDict\n>>> data = AttributeDict({\"a\": {\"b\": {\"c\": 1}}})\n>>> data[\"a\"][\"b\"][\"c\"]\n1\n>>> data.a.b.c\n1\n>>> from attd import FallbackAttributeDict\n>>> data = FallbackAttributeDict({})\n>>> data[\"a\"][\"b\"][\"c\"]\nFallbackAttributeDict()\n>>> data.a.b.c\nFallbackAttributeDict()\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/otsaloma/attd", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "attd", "package_url": "https://pypi.org/project/attd/", "platform": "", "project_url": "https://pypi.org/project/attd/", "project_urls": { "Homepage": "https://github.com/otsaloma/attd" }, "release_url": "https://pypi.org/project/attd/0.4/", "requires_dist": null, "requires_python": ">=3.1.0", "summary": "Dictionary with attribute access to keys", "version": "0.4", "yanked": false, "yanked_reason": null }, "last_serial": 6068346, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "70a37a1330a4ef7ef49139024be0a74f", "sha256": "51491a3a659f12e36072864d057c605e5d4b30589e415bc272768621009ba7c2" }, "downloads": -1, "filename": "attd-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "70a37a1330a4ef7ef49139024be0a74f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4181, "upload_time": "2018-10-14T00:30:46", "upload_time_iso_8601": "2018-10-14T00:30:46.088006Z", "url": "https://files.pythonhosted.org/packages/59/bc/345172f687057fc5bb9516b93b089111bc0c679ce2c7780700ebdb301eb2/attd-0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "341cff95ee96dde92a5da2b2b31e874d", "sha256": "12224c517f054708038a9a2d7439a2179640bb5a5bd77e61e23b41c3f6d1ccc7" }, "downloads": -1, "filename": "attd-0.1.tar.gz", "has_sig": false, "md5_digest": "341cff95ee96dde92a5da2b2b31e874d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3370, "upload_time": "2018-10-14T00:30:47", "upload_time_iso_8601": "2018-10-14T00:30:47.257303Z", "url": "https://files.pythonhosted.org/packages/2a/40/bfbc578e5c35c2cc46b7617e86c9ba1e82696cb30c27a4f687770a51544e/attd-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a868ca01be49e71ca0d8b6e1dba98881", "sha256": "973bc0fe607591cd1b3725372ce23dfd85271eb49606067b5cc2aab9300dd2c0" }, "downloads": -1, "filename": "attd-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a868ca01be49e71ca0d8b6e1dba98881", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4232, "upload_time": "2018-10-14T00:35:57", "upload_time_iso_8601": "2018-10-14T00:35:57.954141Z", "url": "https://files.pythonhosted.org/packages/79/f9/cba05ec6d7085b93f3ce70172d1193c7821e9ad4eebe112e1ac04e03fc22/attd-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "479f9357406b80e0b3e275f748e504cd", "sha256": "a721ed91d594399e3e76a5ab43d422a47d4089b9133220b4fdb39a98446e9d23" }, "downloads": -1, "filename": "attd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "479f9357406b80e0b3e275f748e504cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3411, "upload_time": "2018-10-14T00:35:59", "upload_time_iso_8601": "2018-10-14T00:35:59.402449Z", "url": "https://files.pythonhosted.org/packages/e9/f7/6de358e13be5a543de3f83f4890b9b169b1e9f87af8043d431e8971699ec/attd-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6af7ae377923da3878d1e64064f5c3cf", "sha256": "d779e3b149d33d9afa659347ea118a769de538fa7aeabb1fa3a9c7450fc2135c" }, "downloads": -1, "filename": "attd-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6af7ae377923da3878d1e64064f5c3cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4099, "upload_time": "2018-10-15T20:12:50", "upload_time_iso_8601": "2018-10-15T20:12:50.919396Z", "url": "https://files.pythonhosted.org/packages/cb/6d/f95149f9bfa784dd489c780fd9c4456ebe7ba0e0b2c44bdf60a88f36b28d/attd-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e904abe82c4a9b3c1912db19a187c23c", "sha256": "54e5c2fc82d0e97eaac18a46083d97a21902bf0d2c58bf2ba4d8f2493293eb0c" }, "downloads": -1, "filename": "attd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e904abe82c4a9b3c1912db19a187c23c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3281, "upload_time": "2018-10-15T20:12:52", "upload_time_iso_8601": "2018-10-15T20:12:52.475990Z", "url": "https://files.pythonhosted.org/packages/21/3f/0fdb2e5cf9fa481a74fbe26bc172ac9c9cdad28cd7857f960d49113c7906/attd-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "957c2b683e9c48126dd9277b8868c77d", "sha256": "b9bebc00136cd889cc2ce39e96f628e9e86823b0a3c52b823b3a0fd53efdd509" }, "downloads": -1, "filename": "attd-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "957c2b683e9c48126dd9277b8868c77d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4068, "upload_time": "2019-01-17T19:36:46", "upload_time_iso_8601": "2019-01-17T19:36:46.662916Z", "url": "https://files.pythonhosted.org/packages/2e/aa/00af8afd7ca58706d7b701aa2c68be12cd8749eee0ee1f5148117187e881/attd-0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b08cf9dc276a67a975fd540566fab668", "sha256": "0742e1628b394fadea5352cdeb1b36828d08404ddbd7786822d1d64062c03489" }, "downloads": -1, "filename": "attd-0.2.tar.gz", "has_sig": false, "md5_digest": "b08cf9dc276a67a975fd540566fab668", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3299, "upload_time": "2019-01-17T19:36:48", "upload_time_iso_8601": "2019-01-17T19:36:48.474170Z", "url": "https://files.pythonhosted.org/packages/d8/ba/4fa3d8a2e27c6bb9d82724823256444b179d3740a925ad3e68db347e62d9/attd-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a01ef7bfc0c89319dcef286f64c386f4", "sha256": "b07f81aa3e170439e75f38064cb9f2ae776e8eaafcff32c559e6bf61731c251c" }, "downloads": -1, "filename": "attd-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a01ef7bfc0c89319dcef286f64c386f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4014, "upload_time": "2019-10-30T20:07:50", "upload_time_iso_8601": "2019-10-30T20:07:50.605921Z", "url": "https://files.pythonhosted.org/packages/35/9c/b624e05c20d12b2f3167bbf5651c05af100059daa0a3b9fb5d03ef6c36e5/attd-0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cdc5aa59980ddfc9ab3f0f31fb08b729", "sha256": "54207f21049e6853185db351e0b8076adb38be98ee4d87e73285ac43d117b702" }, "downloads": -1, "filename": "attd-0.3.tar.gz", "has_sig": false, "md5_digest": "cdc5aa59980ddfc9ab3f0f31fb08b729", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3232, "upload_time": "2019-10-30T20:07:52", "upload_time_iso_8601": "2019-10-30T20:07:52.105929Z", "url": "https://files.pythonhosted.org/packages/72/85/d6f4c88f9a1cb7d7615c3ce6f39f7cf8344bc856099a026c073de7a653ef/attd-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b94044627bda25e21002d899e25ec60f", "sha256": "0e45e48f4fd39ba98d611553754b27a3adcc5793299af301e28e6e77efad1542" }, "downloads": -1, "filename": "attd-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b94044627bda25e21002d899e25ec60f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4111, "upload_time": "2019-11-02T15:29:13", "upload_time_iso_8601": "2019-11-02T15:29:13.009095Z", "url": "https://files.pythonhosted.org/packages/05/a5/8f78bf655601efdcb1c02a8308cb1395fadb57f7b3d3748ceec73cfd955b/attd-0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8df147f30672273723a45be90d0e143b", "sha256": "0eb1ea701431348c5141b93f2ebaf7a477f7fa16bcaf9b74f0869cd5f836e619" }, "downloads": -1, "filename": "attd-0.4.tar.gz", "has_sig": false, "md5_digest": "8df147f30672273723a45be90d0e143b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3408, "upload_time": "2019-11-02T15:29:14", "upload_time_iso_8601": "2019-11-02T15:29:14.562808Z", "url": "https://files.pythonhosted.org/packages/29/cc/89c3d6586df8ea9f21d1a32b28701c1cdc61923b80ba96f10837b2fc7f6a/attd-0.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b94044627bda25e21002d899e25ec60f", "sha256": "0e45e48f4fd39ba98d611553754b27a3adcc5793299af301e28e6e77efad1542" }, "downloads": -1, "filename": "attd-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b94044627bda25e21002d899e25ec60f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.1.0", "size": 4111, "upload_time": "2019-11-02T15:29:13", "upload_time_iso_8601": "2019-11-02T15:29:13.009095Z", "url": "https://files.pythonhosted.org/packages/05/a5/8f78bf655601efdcb1c02a8308cb1395fadb57f7b3d3748ceec73cfd955b/attd-0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8df147f30672273723a45be90d0e143b", "sha256": "0eb1ea701431348c5141b93f2ebaf7a477f7fa16bcaf9b74f0869cd5f836e619" }, "downloads": -1, "filename": "attd-0.4.tar.gz", "has_sig": false, "md5_digest": "8df147f30672273723a45be90d0e143b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.1.0", "size": 3408, "upload_time": "2019-11-02T15:29:14", "upload_time_iso_8601": "2019-11-02T15:29:14.562808Z", "url": "https://files.pythonhosted.org/packages/29/cc/89c3d6586df8ea9f21d1a32b28701c1cdc61923b80ba96f10837b2fc7f6a/attd-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }