{ "info": { "author": "Iain Dillingham", "author_email": "iain@dillingham.me.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "Nestable\n========\n\n.. image:: https://img.shields.io/pypi/v/nestable.svg\n :target: https://pypi.python.org/pypi/nestable\n\n.. image:: https://travis-ci.org/iaindillingham/nestable.svg?branch=master\n :target: https://travis-ci.org/iaindillingham/nestable\n\nNestable nests a sequence of records: that is, Nestable groups a sequence of records into a nested ``dict``.\n\nNestable is a partial implementation of `D3's Nest operator`_.\n\n>>> from nestable import nest\n>>> records = [\n... {'country': 'Algeria', 'region': 'Africa'},\n... {'country': 'Benin', 'region': 'Africa'},\n... {'country': 'Albania', 'region': 'EEG'},\n... ]\n>>> accessor = lambda x: (x.get('region'), x.get('country'))\n>>> obs = nest(records, accessor)\n>>> exp = {'EEG': {'Albania': [{'country': 'Albania', 'region': 'EEG'}]},\n... 'Africa': {'Algeria': [{'country': 'Algeria', 'region': 'Africa'}],\n... 'Benin': [{'country': 'Benin', 'region': 'Africa'}]}}\n>>> obs == exp\nTrue\n\nLike D3's Nest operator, Nestable allows you to supply a rollup function that is applied to each sequence of leaf elements. The return value of this function will replace each sequence of leaf elements in the nested ``dict``.\n\n>>> obs = nest(records, accessor, rollup=len)\n>>> exp = {'EEG': {'Albania': 1}, 'Africa': {'Algeria': 1, 'Benin': 1}}\n>>> obs == exp\nTrue\n\nUnlike D3's Nest operator, however, Nestable doesn't support sorted keys or sorted values.\n\nDevelopment\n-----------\n\nActivate a new virtual environment and install nestable in development mode with its development dependencies::\n\n pip install -e . -r requirements.txt\n\n.. _D3's Nest operator: https://github.com/d3/d3-collection/blob/master/README.md#nests\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/iaindillingham/nestable", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nestable", "package_url": "https://pypi.org/project/nestable/", "platform": "", "project_url": "https://pypi.org/project/nestable/", "project_urls": { "Homepage": "https://github.com/iaindillingham/nestable" }, "release_url": "https://pypi.org/project/nestable/0.0.6/", "requires_dist": [ "six (>=1.10.0)" ], "requires_python": "", "summary": "Nest a sequence of records", "version": "0.0.6" }, "last_serial": 3453568, "releases": { "0.0.4": [ { "comment_text": "", "digests": { "md5": "2e42fbef2fc912b3d2997ba44abf6538", "sha256": "2be3558c4cfd860f578d5de8ec6e2f5766c4603a346ee1610595226542c526ca" }, "downloads": -1, "filename": "nestable-0.0.4.tar.gz", "has_sig": false, "md5_digest": "2e42fbef2fc912b3d2997ba44abf6538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1568, "upload_time": "2017-12-23T13:58:06", "url": "https://files.pythonhosted.org/packages/fd/a5/38015f54873f27d08eee4a5b97574d81858b016e6ff93eb76333fa8271ef/nestable-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "3a06bda73c9c3a8f21aa426a67998e1b", "sha256": "88860ac13848ce71ebfd410f634d7e220dbcda78bc050e54b8d1ccf385fc728a" }, "downloads": -1, "filename": "nestable-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3a06bda73c9c3a8f21aa426a67998e1b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3486, "upload_time": "2017-12-23T15:46:23", "url": "https://files.pythonhosted.org/packages/14/9e/a1302d3cc454ac9f0d7b87900314dd0d12d19694806b1f07b5cd1fa6c9b3/nestable-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3cb166e11e5a7787800dafdcf4964df1", "sha256": "ce69fb5d4f7906b5263d6d0ae67479a2b0a30e4892ecbed90776a62c9e707a9c" }, "downloads": -1, "filename": "nestable-0.0.5.tar.gz", "has_sig": false, "md5_digest": "3cb166e11e5a7787800dafdcf4964df1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1996, "upload_time": "2017-12-23T15:46:25", "url": "https://files.pythonhosted.org/packages/f8/e8/c00997b32f7ca58892c84ea188bbd9448f9c128809f52d5885761e69598d/nestable-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "271d2f6e3391629d92fe71426c522a23", "sha256": "a6decfd118c2e55b6c0fdf5b3a774dc5c62c37ffe3b2288a877a955eeed68a03" }, "downloads": -1, "filename": "nestable-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "271d2f6e3391629d92fe71426c522a23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4065, "upload_time": "2017-12-31T18:33:10", "url": "https://files.pythonhosted.org/packages/ec/d4/c04d834ddfefb4a73c3e9b3c224c2ea5fff050a6df083f7bc6a43f3929c9/nestable-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8bfa2d1542eb3a0cc8a590848db45daa", "sha256": "1a795d7c206b27261de2d6f8a13acd0ac09e3f7359d4b19ee6a302d107ca624c" }, "downloads": -1, "filename": "nestable-0.0.6.tar.gz", "has_sig": false, "md5_digest": "8bfa2d1542eb3a0cc8a590848db45daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2362, "upload_time": "2017-12-31T18:33:13", "url": "https://files.pythonhosted.org/packages/2f/51/355b774ca08996ca66fb9c6f87f485f9957390750110d603c4420a9fb747/nestable-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "271d2f6e3391629d92fe71426c522a23", "sha256": "a6decfd118c2e55b6c0fdf5b3a774dc5c62c37ffe3b2288a877a955eeed68a03" }, "downloads": -1, "filename": "nestable-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "271d2f6e3391629d92fe71426c522a23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4065, "upload_time": "2017-12-31T18:33:10", "url": "https://files.pythonhosted.org/packages/ec/d4/c04d834ddfefb4a73c3e9b3c224c2ea5fff050a6df083f7bc6a43f3929c9/nestable-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8bfa2d1542eb3a0cc8a590848db45daa", "sha256": "1a795d7c206b27261de2d6f8a13acd0ac09e3f7359d4b19ee6a302d107ca624c" }, "downloads": -1, "filename": "nestable-0.0.6.tar.gz", "has_sig": false, "md5_digest": "8bfa2d1542eb3a0cc8a590848db45daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2362, "upload_time": "2017-12-31T18:33:13", "url": "https://files.pythonhosted.org/packages/2f/51/355b774ca08996ca66fb9c6f87f485f9957390750110d603c4420a9fb747/nestable-0.0.6.tar.gz" } ] }