{ "info": { "author": "Jeff Dairiki", "author_email": "dairiki@dairiki.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==================================================\nunflatten - convert flat dict to nested dict/array\n==================================================\n\n|version| |pyversions| |build status|\n\n***********\nDescription\n***********\n\nThis package provides a function which can unpack a flat dictionary\ninto a structured ``dict`` with nested sub-dicts and/or sub-lists.\n\nDevelopment takes place on github_.\nThe package is installable from PyPI_\n\n.. _github: https://github.com/dairiki/unflatten/\n.. _pypi: https://pypi.python.org/pypi/unflatten/\n\n********\nSynopsis\n********\n\nNested dicts::\n\n >>> from unflatten import unflatten\n\n >>> unflatten({'foo.bar': 'val'})\n {'foo': {'bar': 'val'}}\n\nNested list::\n\n >>> unflatten({'foo[0]': 'x', 'foo[1]': 'y'})\n {'foo': ['x', 'y']}\n\nNested lists and dicts, intermixed::\n\n >>> unflatten({\n ... 'foo[0][0]': 'a',\n ... 'foo[0][1]': 'b',\n ... 'foo[1].x': 'c',\n ... })\n {'foo': [['a', 'b'], {'x': 'c'}]}\n\n\n*****\nNotes\n*****\n\n``Unflatten`` take a single argument which should either be a ``dict``\n(or an object with a dict-like ``.items()`` or ``.iteritems()``\nmethod) or a sequence of ``(key, value)`` pairs.\nAll keys in the dict or sequence must be strings.\n(Under python 2, keys must be instances of ``basestring``; under\npython 3, keys just be instances of ``str``.)\n\n\n``Unflatten`` always returns a ``dict``. By way of example::\n\n >>> unflatten([('[0]', 'x')])\n {'': ['x']}\n\nFor list-valued nodes, all indexes must be present in the input\n(flattened) mapping, otherwise a ``ValueError`` will be thrown::\n\n >>> unflatten({'a[0]': 'x', 'a[2]': 'y'})\n Traceback (most recent call last):\n ...\n ValueError: missing key 'a[1]'\n\n********\nSee Also\n********\n\nThe `morph`_ and `flattery`_ packages purport to implement similar functions.\n\n.. _morph: https://github.com/metagriffin/morph\n.. _flattery: https://github.com/acg/python-flattery\n\n*******\nAuthors\n*******\n\n`Jeff Dairiki`_\n\n.. _Jeff Dairiki: mailto:dairiki@dairiki.org\n\n.. |version| image::\n https://img.shields.io/pypi/v/unflatten.svg\n :target: https://pypi.python.org/pypi/unflatten/\n :alt: Latest Version\n\n.. |pyversions| image::\n https://img.shields.io/pypi/pyversions/unflatten.svg\n :target: https://pypi.python.org/pypi/unflatten/\n :alt: Python versions\n\n.. |build status| image::\n https://travis-ci.org/dairiki/unflatten.svg?branch=master\n :target: https://travis-ci.org/dairiki/unflatten\n\n\n*******\nHistory\n*******\n\nRelease 0.1 (2018-01-17)\n========================\n\nNo code changes.\n\nThis package is now deemed \"production ready\" (though your mileage may vary.)\n\nRelease 0.1b1 (2018-01-09)\n==========================\n\nInitial release.\n\n\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/dairiki/unflatten", "keywords": "unflatten nested-dict", "license": "", "maintainer": "", "maintainer_email": "", "name": "unflatten", "package_url": "https://pypi.org/project/unflatten/", "platform": "", "project_url": "https://pypi.org/project/unflatten/", "project_urls": { "Homepage": "https://github.com/dairiki/unflatten" }, "release_url": "https://pypi.org/project/unflatten/0.1/", "requires_dist": [ "pytest; extra == 'test'" ], "requires_python": "", "summary": "Unflatten dict to dict with nested dict/arrays", "version": "0.1" }, "last_serial": 3498811, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e4c4b13c77d168c6f73d01b1c265a0a9", "sha256": "5ace25f23d07dc6f56fdd4e0d033cdea56d97e0158781aef5f003969ed71aa1f" }, "downloads": -1, "filename": "unflatten-0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e4c4b13c77d168c6f73d01b1c265a0a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6072, "upload_time": "2018-01-17T22:25:11", "url": "https://files.pythonhosted.org/packages/d2/64/267a65ec55a292e37eadd30f67343511096a13aa9d27c5beb0f03ff1230d/unflatten-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eec19469bdee6740b5e2c93c126dd81", "sha256": "3a44a1baf20a299a2c75a9a1761fcdbff1b40d3b6145a71f3432188c7f05afa3" }, "downloads": -1, "filename": "unflatten-0.1.tar.gz", "has_sig": true, "md5_digest": "1eec19469bdee6740b5e2c93c126dd81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6237, "upload_time": "2018-01-17T22:25:13", "url": "https://files.pythonhosted.org/packages/0c/3a/4bb8bb8c46bff5b301903d84ebb3d92a4c542363de7c04dc09957137a0a6/unflatten-0.1.tar.gz" } ], "0.1b1": [ { "comment_text": "", "digests": { "md5": "f92aff2293806b09b3ab1b55b53e5fe2", "sha256": "d04508afc6c79d248de5538662811b3ebfd0228f6843d91f6fd2f11a6d6cab4d" }, "downloads": -1, "filename": "unflatten-0.1b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f92aff2293806b09b3ab1b55b53e5fe2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5831, "upload_time": "2018-01-09T21:22:33", "url": "https://files.pythonhosted.org/packages/0d/e5/96abd4b6af62e8b12563368d310c04131cfacabdd19e17214a261e60755c/unflatten-0.1b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac8eeb73ead3a0c4f80f8ec937b3f756", "sha256": "51e6f57cc5bc41c3202592d2e36aecbf155452440d4a1235186908d6181c7b0b" }, "downloads": -1, "filename": "unflatten-0.1b1.tar.gz", "has_sig": false, "md5_digest": "ac8eeb73ead3a0c4f80f8ec937b3f756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6034, "upload_time": "2018-01-09T21:22:41", "url": "https://files.pythonhosted.org/packages/61/43/7ef28b02f4ace42daa74285f3ee6eb3846c876af016b83cdb3cb4974fc2e/unflatten-0.1b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4c4b13c77d168c6f73d01b1c265a0a9", "sha256": "5ace25f23d07dc6f56fdd4e0d033cdea56d97e0158781aef5f003969ed71aa1f" }, "downloads": -1, "filename": "unflatten-0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e4c4b13c77d168c6f73d01b1c265a0a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6072, "upload_time": "2018-01-17T22:25:11", "url": "https://files.pythonhosted.org/packages/d2/64/267a65ec55a292e37eadd30f67343511096a13aa9d27c5beb0f03ff1230d/unflatten-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eec19469bdee6740b5e2c93c126dd81", "sha256": "3a44a1baf20a299a2c75a9a1761fcdbff1b40d3b6145a71f3432188c7f05afa3" }, "downloads": -1, "filename": "unflatten-0.1.tar.gz", "has_sig": true, "md5_digest": "1eec19469bdee6740b5e2c93c126dd81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6237, "upload_time": "2018-01-17T22:25:13", "url": "https://files.pythonhosted.org/packages/0c/3a/4bb8bb8c46bff5b301903d84ebb3d92a4c542363de7c04dc09957137a0a6/unflatten-0.1.tar.gz" } ] }