{ "info": { "author": "Diogo Magalhaes Martins", "author_email": "magalhaesmartins@icloud.com", "bugtrack_url": null, "classifiers": [], "description": "PathDict\n========\n\n|Build Status| |codecov|\n\nExtended dict with the capability of accessing and manipulating nested\nitens using a path notation.\n\nInstallation\n------------\n\n::\n\n pip install pathdict\n\nExamples\n--------\n\nYou can change your chained multiple access operator with a dotted path\nnotation:\n\n.. code:: python\n\n from pathdict import PathDict\n\n\n path_dict = PathDict({\n 'dogs': {\n 'male': 'Xablau',\n 'female': 'Xena'\n },\n 'enterprises': ['B2W', 'Sieve'],\n 'author': '@diogommartins'\n })\n\n # Same as path_dict['dogs']['female']\n print(path_dict['dogs.female'])\n >>> 'Xena'\n\nLists are also accessible by the path notation:\n\n.. code:: python\n\n from pathdict import PathDict\n\n\n path_dict = PathDict({\n 'mammalia': {\n 'ferae': {\n 'carnivora': [\n 'carnidae',\n 'felidae',\n 'mustelidae',\n 'ursidae',\n 'viverridae'\n ] \n },\n 'something': {\n 'wiki': 'pedia'\n }\n }\n })\n\n # Same as path_dict['mammalia']['ferae']['carnivora'][3]\n print(path_dict['mammalia.ferae.carnivora.3'])\n >>> 'ursidae'\n\nEverything you do with a normal python ``dict`` will work.\n\nCustomization\n-------------\n\nThe default ``separator`` is ``.`` but you can change it using the\n``separator`` kwarg.\n\n.. code:: python\n\n from pathdict import PathDict\n\n\n path_dict = PathDict({\n 'mammalia': {\n 'ferae': {\n 'carnivora': [\n 'carnidae',\n 'felidae',\n 'mustelidae',\n 'ursidae',\n 'viverridae'\n ]\n },\n 'something': {\n 'wiki': 'pedia'\n }\n }\n }, separator='/')\n\n\n print(path_dict['mammalia/ferae/carnivora/3'])\n >>> 'ursidae'\n\nIt is possible to let ``PathDict`` generate the steps to a given path:\n\n.. code:: python\n\n from pathdict import PathDict\n\n\n path_dict = PathDict(create_if_not_exists=True)\n path_dict['the.answer.to.all.problems'] = 42\n\n print(path_dict)\n >>> {'the': {'answer': {'to': {'all': {'problems': 42}}}}}\n\nWhich also works for nested list fields:\n\n.. code:: python\n\n\n from pathdict import PathDict\n\n\n path_dict = PathDict(create_if_not_exists=True)\n path_dict['some.letters'] = ['a', 'b']\n\n path_dict['some.letters.2'] = 'c'\n\n print(path_dict)\n >>> {'some': {'letters': ['a', 'b', 'c']}}\n\nBy default, list values inside a ``PathDict`` are type casted to a\n``pathdict.collection.StringIndexableList``. You can change that\nbehavior with the ``list_class`` keyword argument. Beware that if the\n``list_class`` class doesn't implement the StringIndexableList Protocol,\npathdict's lists path will fail.\n\n.. code:: python\n\n from pathdict import PathDict\n\n\n path_dict = PathDict()\n\n path_dict[\"list\"] = [1, 2, 3]\n type(path_dict[\"list\"])\n >>> pathdict.collection.StringIndexableList\n\n path_dict[\"list.1\"]\n >>> 2\n\n custom_path_dict = PathDict(list_class=list)\n type(custom_path_dict[\"list\"])\n >>> list\n\n custom_path_dict[\"list.1\"]\n >>> TypeError: list indices must be integers or slices, not str\n\n.. |Build Status| image:: https://travis-ci.org/diogommartins/simple_json_logger.svg?branch=master\n :target: https://travis-ci.org/diogommartins/pathdict\n.. |codecov| image:: https://codecov.io/gh/diogommartins/simple_json_logger/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/diogommartins/pathdict\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/diogommartins/pathdict", "keywords": "collection dictionary dict path dotted mongodb", "license": "", "maintainer": "", "maintainer_email": "", "name": "pathdict", "package_url": "https://pypi.org/project/pathdict/", "platform": "", "project_url": "https://pypi.org/project/pathdict/", "project_urls": { "Homepage": "https://github.com/diogommartins/pathdict" }, "release_url": "https://pypi.org/project/pathdict/0.0.9/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.0.9" }, "last_serial": 3956252, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b9a7192a8b827977bb6003a27a78437c", "sha256": "eab5533f47030be09cc76dd8b1228ca7ec24be8c9e51c4ff371233324a65bc36" }, "downloads": -1, "filename": "pathdict-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b9a7192a8b827977bb6003a27a78437c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1303, "upload_time": "2017-09-17T02:03:40", "url": "https://files.pythonhosted.org/packages/85/4a/0dd113a5b5c5fffcb1db14e2f2704b9107034892b476ed3fd294c5f70b6b/pathdict-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e13def08769350382ac53a4226e1a804", "sha256": "c7f29e6892515fa2cd5a07f6088484c1bcee99703b33f37655bc94b525fd03e9" }, "downloads": -1, "filename": "pathdict-0.0.2.tar.gz", "has_sig": false, "md5_digest": "e13def08769350382ac53a4226e1a804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2000, "upload_time": "2017-09-17T02:06:01", "url": "https://files.pythonhosted.org/packages/ba/57/d9750a151a56fad1688ef35644af7dbfcb0ac7660c81497384023632c85a/pathdict-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4147fec10e092e9bbaf26df06fb40590", "sha256": "a9dd09e41d64ff04cde03c30a9259f00ba0d3f28bad1919492e7b1e2dc2570dd" }, "downloads": -1, "filename": "pathdict-0.0.3.tar.gz", "has_sig": false, "md5_digest": "4147fec10e092e9bbaf26df06fb40590", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2012, "upload_time": "2017-09-17T04:06:42", "url": "https://files.pythonhosted.org/packages/c1/ef/598cb922c36661789080cbf1fbcb2ea91137ba967888fc5c92d140cb13ec/pathdict-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "fb14e32ccf7df8e7313812e35e39069e", "sha256": "578f30f308fd8af8cfbf2829c87f7ac0e44594a1c8f53d43eef9f9aee0e1a802" }, "downloads": -1, "filename": "pathdict-0.0.4.tar.gz", "has_sig": false, "md5_digest": "fb14e32ccf7df8e7313812e35e39069e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2210, "upload_time": "2017-09-17T06:49:37", "url": "https://files.pythonhosted.org/packages/90/45/010e3d3c4bfb25bed181ec540a2e42d886b18d59cf6117371854a4b4dced/pathdict-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "3eaaf30fb830fcba71e64762bd33528d", "sha256": "9d97d8dac2eaef4f0082f8415e5125861f34835944e637225deee19cdde29482" }, "downloads": -1, "filename": "pathdict-0.0.5.tar.gz", "has_sig": false, "md5_digest": "3eaaf30fb830fcba71e64762bd33528d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1447, "upload_time": "2017-10-15T19:49:32", "url": "https://files.pythonhosted.org/packages/68/05/57a931a64368091066659dadcc1367dc9dbd59edfaf8c39cdb1c62fd5d88/pathdict-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "eb6f10d6b3a954a8a9804e2578494274", "sha256": "0248efe2b8fdbe4ffc8eca24b783301105fe9a7bc60e78459efa6eaab4f602fe" }, "downloads": -1, "filename": "pathdict-0.0.6.tar.gz", "has_sig": false, "md5_digest": "eb6f10d6b3a954a8a9804e2578494274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2271, "upload_time": "2017-10-15T20:00:05", "url": "https://files.pythonhosted.org/packages/8c/bb/50e8c4477419da1f2c41011ba7a568f9fad6154a9a4e2287db1fcd3a99d5/pathdict-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "2a84fba0adfee899f447f7f0aa31d45a", "sha256": "46b2d455da393c41da19732a6e3358e080d330f56e403a55d9cfc5a519a4da8d" }, "downloads": -1, "filename": "pathdict-0.0.7.tar.gz", "has_sig": false, "md5_digest": "2a84fba0adfee899f447f7f0aa31d45a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2645, "upload_time": "2017-10-15T20:03:57", "url": "https://files.pythonhosted.org/packages/a8/9d/12a0b41116c3cfba2dc3f05276a74cac9c34b2f57701bb40516017c7251b/pathdict-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "549fb469d4f4fa95f46c517729d6d3d6", "sha256": "690b4cce249293f39d0a48b8dececb37e3bae9c4d0edc80c6676b2a4e1590aab" }, "downloads": -1, "filename": "pathdict-0.0.8.tar.gz", "has_sig": false, "md5_digest": "549fb469d4f4fa95f46c517729d6d3d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2961, "upload_time": "2017-10-15T20:54:21", "url": "https://files.pythonhosted.org/packages/77/93/e5e07a4827d5e6f5659e01dff65e7f29d9083e20d1d55c719988a27c4b26/pathdict-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "76db6238ec009fc9ee032f99027cb32c", "sha256": "7fa8c111b5d0b47396841d4515a1a3c98823fb84fffc8172e08d157348621e8c" }, "downloads": -1, "filename": "pathdict-0.0.9.tar.gz", "has_sig": false, "md5_digest": "76db6238ec009fc9ee032f99027cb32c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3085, "upload_time": "2017-10-16T05:13:31", "url": "https://files.pythonhosted.org/packages/97/70/bcf4f65183c6f863d7e21332f93adf02c9935db41302c6fc7a960787ac50/pathdict-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "76db6238ec009fc9ee032f99027cb32c", "sha256": "7fa8c111b5d0b47396841d4515a1a3c98823fb84fffc8172e08d157348621e8c" }, "downloads": -1, "filename": "pathdict-0.0.9.tar.gz", "has_sig": false, "md5_digest": "76db6238ec009fc9ee032f99027cb32c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3085, "upload_time": "2017-10-16T05:13:31", "url": "https://files.pythonhosted.org/packages/97/70/bcf4f65183c6f863d7e21332f93adf02c9935db41302c6fc7a960787ac50/pathdict-0.0.9.tar.gz" } ] }