{ "info": { "author": "Arrai Innovations", "author_email": "support@arrai.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "# transmogrifydict\n\nThe \"map a dict from one API into a dict for another\" python module.\n\n![That dict is so cool...](https://docs.arrai-dev.com/transmogrifydict/transmogrifydict.png)\n\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/master.python38.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/master.python38.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_master_python38/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/master.python37.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/master.python37.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_master_python37/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/master.python36.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/master.python36.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_master_python36/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/master.python35.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/master.python35.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_master_python35/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/master.python27.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/master.python27.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_master_python27/)\n\n![Flake8](https://docs.arrai-dev.com/transmogrifydict/master.flake8.svg)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/develop.python38.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/develop.python38.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_develop_python38/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/develop.python37.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/develop.python37.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_develop_python37/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/develop.python36.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/develop.python36.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_develop_python36/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/develop.python35.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/develop.python35.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_develop_python35/)\n\n![Tests](https://docs.arrai-dev.com/transmogrifydict/develop.python27.svg) [![Coverage](https://docs.arrai-dev.com/transmogrifydict/develop.python27.coverage.svg)](https://docs.arrai-dev.com/transmogrifydict/htmlcov_develop_python27/)\n\n![Flake8](https://docs.arrai-dev.com/transmogrifydict/develop.flake8.svg)\n\n\n## methods\n\n* `resolve_mapping_to_dict(mapping, source)` - move values from `source` into a returned dict, using `mapping` for paths and returned keys.\n\n ```python\n from transmogrifydict import resolve_mapping_to_dict\n\n mapping = {\n 'a': 'd',\n 'b': 'e',\n 'c': 'f'\n }\n\n source = {\n 'd': 1,\n 'e': 2,\n 'f': 3\n }\n\n resolve_mapping_to_dict(mapping, source)\n # {\n # 'a': 1,\n # 'b': 2,\n # 'c': 3,\n # }\n ```\n\n* `resolve_path_to_value(source, path)` - fetch a value out of `source` using `path` as the pointer to the desired value. see docstring for path string formats.\n\n ```python\n from transmogrifydict import resolve_path_to_value\n\n source = {\n 'd': 1,\n 'e': 2,\n 'f': 3\n }\n\n found, value = resolve_path_to_value(source, 'e')\n\n print((found, value))\n # (True, 2)\n ```\n\n## `path` or `mapping` value format\n```python\nfrom transmogrifydict import resolve_path_to_value\n\nsource = {\n 'some-key': {\n 'another-key': '123'\n }\n}\n\n# dot notation can be used to descend into dictionaries.\nresolve_path_to_value(source, 'some-key.another-key')\n# (True, '123')\n\nsource = {\n 'some-key': '{\"another-key\":\"123\"}'\n}\n\n# dot notation can also be used to descend into json strings that are dictionary like\nresolve_path_to_value(source, 'some-key.another-key')\n# (True, '123')\n\nsource = {\n 'some-key': {\n 'another-key': ['1', '2', '3']\n }\n}\n\n# square brackets can be used to get specific indexes from a list\nresolve_path_to_value(source, 'some-key.another-key[1]')\n# (True, '2')\n\nsource = {\n 'some-key': {\n 'another-key': [\n {\n 'filter-key': 'yeah',\n 'each-key': 'a',\n },\n {\n 'filter-key': 'yeah',\n 'each-key': 'b',\n },\n {\n 'filter-key': 'nah',\n 'each-key': 'c',\n }\n ]\n }\n}\n\n# dot notation can be used after square brackets if the list contains dict-like values\nresolve_path_to_value(source, 'some-key.another-key[1].each-key')\n# (True, ['b']) \n\n# square brackets can be used to iterate over arrays to descend into the items\nresolve_path_to_value(source, 'some-key.another-key[].each-key')\n# (True, ['a', 'b', 'c'])\n\n# when iterating over a list, a filter can be applied using [key=value]\nresolve_path_to_value(source, 'some-key.another-key[filter-key=yeah].each-key')\n# (True, ['a', 'b'])\n\nsource = {\n 'a-key': [\n {\n 'b-key': {\n 'c-key': 1,\n 'd-key': 2,\n }\n },\n {\n 'b-key': {\n 'c-key': 1,\n 'd-key': 3,\n }\n },\n {\n 'b-key': {\n 'c-key': 0,\n 'd-key': 4,\n }\n }\n ]\n}\n# tidle notation can be used to filter on sub keys of dict list items.\nresolve_path_to_value(source, 'a-key[b-key~c-key=1].b-key.d-key')\n# (True, [2, 3, 4])\n# \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/arrai-innovations/transmogrifydict", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "transmogrifydict", "package_url": "https://pypi.org/project/transmogrifydict/", "platform": "", "project_url": "https://pypi.org/project/transmogrifydict/", "project_urls": { "Homepage": "https://github.com/arrai-innovations/transmogrifydict" }, "release_url": "https://pypi.org/project/transmogrifydict/1.1.3/", "requires_dist": [ "six (<2.0.0,>=1.10.0)" ], "requires_python": "", "summary": "The \"turn a dict from one API into a dict for another\" python module.", "version": "1.1.3" }, "last_serial": 5626754, "releases": { "1.1.2": [ { "comment_text": "", "digests": { "md5": "0483fec30f192134b4b606baa4a1aedc", "sha256": "8432bf2e4cc9e267e08ed269a66332ad89cfac99c72f7d6a1f56d33b2fb713cd" }, "downloads": -1, "filename": "transmogrifydict-1.1.2.tar.gz", "has_sig": false, "md5_digest": "0483fec30f192134b4b606baa4a1aedc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10482, "upload_time": "2018-05-31T21:32:39", "url": "https://files.pythonhosted.org/packages/1e/e6/3bbcfdf0f99e99e3b8032c08b7fc269aae1509795749cd4ea1cda842fe00/transmogrifydict-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "dcac761f766d7e6a947cb695d17efa62", "sha256": "a6232dc1dec2ac52fc27cde22e68f21bd037f12bbdeca4b32d899e12308ca639" }, "downloads": -1, "filename": "transmogrifydict-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "dcac761f766d7e6a947cb695d17efa62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6629, "upload_time": "2019-08-02T23:14:52", "url": "https://files.pythonhosted.org/packages/ed/69/ce3cfa3ca6a34ad37729580b3784c15d73d7ae5811ac5c809e7d454f5145/transmogrifydict-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea5e9ebc54e6a922cabea9b3641e697d", "sha256": "56a48b274c413fc95f2a7523ccae275979bbc71f088c8070c1c897394edea243" }, "downloads": -1, "filename": "transmogrifydict-1.1.3.tar.gz", "has_sig": false, "md5_digest": "ea5e9ebc54e6a922cabea9b3641e697d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11754, "upload_time": "2019-08-02T23:14:54", "url": "https://files.pythonhosted.org/packages/5f/e2/0f215aff8dbeea78423ff7a21d10c78665685483b56dc9eca4d3f42d7281/transmogrifydict-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dcac761f766d7e6a947cb695d17efa62", "sha256": "a6232dc1dec2ac52fc27cde22e68f21bd037f12bbdeca4b32d899e12308ca639" }, "downloads": -1, "filename": "transmogrifydict-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "dcac761f766d7e6a947cb695d17efa62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6629, "upload_time": "2019-08-02T23:14:52", "url": "https://files.pythonhosted.org/packages/ed/69/ce3cfa3ca6a34ad37729580b3784c15d73d7ae5811ac5c809e7d454f5145/transmogrifydict-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea5e9ebc54e6a922cabea9b3641e697d", "sha256": "56a48b274c413fc95f2a7523ccae275979bbc71f088c8070c1c897394edea243" }, "downloads": -1, "filename": "transmogrifydict-1.1.3.tar.gz", "has_sig": false, "md5_digest": "ea5e9ebc54e6a922cabea9b3641e697d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11754, "upload_time": "2019-08-02T23:14:54", "url": "https://files.pythonhosted.org/packages/5f/e2/0f215aff8dbeea78423ff7a21d10c78665685483b56dc9eca4d3f42d7281/transmogrifydict-1.1.3.tar.gz" } ] }