{ "info": { "author": "NickNackGus", "author_email": "NickNackGus@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# DefaultDict\n\nThis is a package for a defaultdict that deep copies its default value.\n\nThis can be used to implement a simple counter object, similar to the example code this is based on.\n\n```python\ncounter = DefaultDict()\n\nfor item in ['spam', 'egg', 'spam', 'spam', 'bacon', 'spam']:\n counter[item] += 1\n\nprint(\"Menu contents:\")\nfor item in counter:\n print(\" {}x {}\".format(counter[item], item))\n```\n\nOutput:\n```\nMenu contents:\n 1x bacon\n 1x egg\n 4x spam\n```\n\nUnlike [collections.defaultdict](https://docs.python.org/3/library/collections.html#collections.defaultdict), the default value is an object - not a factory. This allows for easier creation of nested data structures. For example, the following is valid and encouraged:\n\n```python\n# shapes_by_color[color][shape] = count\nshapes_by_color = DefaultDict(\n default=DefaultDict(\n {'total': 0},\n default=0\n )\n)\n\nwith open('test/shapes.log', 'r') as fp:\n for line in fp:\n color, shape = line.split()\n shapes_by_color[color][shape] += 1\n shapes_by_color[color]['total'] += 1\n\nfor color, shapes in shapes_by_color.items():\n print(\"{}:\".format(color))\n for shape, count in shapes.items():\n if shape == 'total':\n continue\n print(\" {}x {}\".format(count, shape))\n print(\" Total: {}\".format(count))\n```\n\nOutput:\n```\ngreen:\n 2x triangle\n 1x circle\n Total: 3\nred:\n 1x octagon\n 2x rhombus\n Total: 3\nblue:\n 1x triangle\n 1x square\n Total: 2\n```\n\nNote that the default value is a reference, and is affected by external changes. This only affects new uses of the default value, not previous uses.\n```python\nspam = DefaultDict(default=['Hello'])\nprint(spam['eggs'])\n\nspam.default.append('world')\nprint(spam['sausage'])\n\nprint(spam)\n```\n\nOutput:\n```\n['Hello']\n['Hello', 'world']\nDictWithDefault(init={'sausage': ['Hello', 'world'], 'eggs': ['Hello']}, default=['Hello', 'world'])\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/NickNackGus/pydefaultdict", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "defaultdict-NickNackGus", "package_url": "https://pypi.org/project/defaultdict-NickNackGus/", "platform": "", "project_url": "https://pypi.org/project/defaultdict-NickNackGus/", "project_urls": { "Homepage": "https://github.com/NickNackGus/pydefaultdict" }, "release_url": "https://pypi.org/project/defaultdict-NickNackGus/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "defaultdict with deepcopy support", "version": "1.0.2" }, "last_serial": 5289128, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0a097d85e3a830a26e97bf891d755b6d", "sha256": "446eca67c5702a16e7b07b0722fd7d26651a967c7766c7283f892c1375e73da2" }, "downloads": -1, "filename": "defaultdict_NickNackGus-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0a097d85e3a830a26e97bf891d755b6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3887, "upload_time": "2019-05-19T18:24:40", "url": "https://files.pythonhosted.org/packages/cc/7f/661195efb10d355b151c7e38287794b9beceeb861380ad96c0824636cfeb/defaultdict_NickNackGus-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ed73340c26b236597d5d3cbde461e98", "sha256": "5ff3314feeec6adda49d67988b2eaca4b29038b5e9e21ef96d9e60645706fa46" }, "downloads": -1, "filename": "defaultdict-NickNackGus-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4ed73340c26b236597d5d3cbde461e98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2556, "upload_time": "2019-05-19T18:24:43", "url": "https://files.pythonhosted.org/packages/4b/8d/d2689d06e60c5510fd601c8cecc85de865c35e771dc9a574d13ebc7b914f/defaultdict-NickNackGus-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d00942ff37cd485b02204665c90ccbb0", "sha256": "c81e3ff414874735cfa5c4caf5662aec68add5fbbc9745388c3b402853345c2b" }, "downloads": -1, "filename": "defaultdict_NickNackGus-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d00942ff37cd485b02204665c90ccbb0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3863, "upload_time": "2019-05-19T18:24:42", "url": "https://files.pythonhosted.org/packages/49/da/29260b98c8b0ac3f3d783f100dcfcd862a32ec5bc3c646425f25488d023f/defaultdict_NickNackGus-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9373ded8cbc60b1b0fc08939f149e9fa", "sha256": "d8fc26b86ba9660ce81577896669604684382af9f94e62a9b5711f82b2fcbcb7" }, "downloads": -1, "filename": "defaultdict-NickNackGus-1.0.1.tar.gz", "has_sig": false, "md5_digest": "9373ded8cbc60b1b0fc08939f149e9fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2551, "upload_time": "2019-05-19T18:24:44", "url": "https://files.pythonhosted.org/packages/f5/47/88023fcf2a1b1d64a6eedb5b89774b7949f7c3ceacdda97e26f283b3bd52/defaultdict-NickNackGus-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "485c106a1bcce043909475950642f4ee", "sha256": "d2f3cbaffc15df595ade7160651939eeab112647d1a2a0b72acf655c5f9a1cc1" }, "downloads": -1, "filename": "defaultdict_NickNackGus-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "485c106a1bcce043909475950642f4ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3886, "upload_time": "2019-05-19T18:26:15", "url": "https://files.pythonhosted.org/packages/d3/be/6aa0c0ffcfdf6777ad36ec82d52a613704ca707ba727cd69301b60a50458/defaultdict_NickNackGus-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f6352ae4cf711e8a47f649f36ea1852", "sha256": "323264f95714ee0a6c4f2aae255e0199bea41cc1507a948850d90f3fd963865f" }, "downloads": -1, "filename": "defaultdict-NickNackGus-1.0.2.tar.gz", "has_sig": false, "md5_digest": "1f6352ae4cf711e8a47f649f36ea1852", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2556, "upload_time": "2019-05-19T18:26:18", "url": "https://files.pythonhosted.org/packages/d8/34/51ccbb2caa6aa7bda7153fbe5c5a4b3f8451cb8c93480fcde28f0b0f6cde/defaultdict-NickNackGus-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "485c106a1bcce043909475950642f4ee", "sha256": "d2f3cbaffc15df595ade7160651939eeab112647d1a2a0b72acf655c5f9a1cc1" }, "downloads": -1, "filename": "defaultdict_NickNackGus-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "485c106a1bcce043909475950642f4ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3886, "upload_time": "2019-05-19T18:26:15", "url": "https://files.pythonhosted.org/packages/d3/be/6aa0c0ffcfdf6777ad36ec82d52a613704ca707ba727cd69301b60a50458/defaultdict_NickNackGus-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f6352ae4cf711e8a47f649f36ea1852", "sha256": "323264f95714ee0a6c4f2aae255e0199bea41cc1507a948850d90f3fd963865f" }, "downloads": -1, "filename": "defaultdict-NickNackGus-1.0.2.tar.gz", "has_sig": false, "md5_digest": "1f6352ae4cf711e8a47f649f36ea1852", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2556, "upload_time": "2019-05-19T18:26:18", "url": "https://files.pythonhosted.org/packages/d8/34/51ccbb2caa6aa7bda7153fbe5c5a4b3f8451cb8c93480fcde28f0b0f6cde/defaultdict-NickNackGus-1.0.2.tar.gz" } ] }