{ "info": { "author": "Philip Olson", "author_email": "philip.olson@pm.me", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "# All Purpose Dict\n\n\n\n
\n\n\n\n**Table of Contents**\n\n- [What is it?](#what-is-it)\n- [Why create it?](#why-create-it)\n- [Simple usage](#simple-usage)\n- [See Also](#see-also)\n- [Api](#api)\n- [Test](#test)\n\n\n\n
\n\n### What is it?\n\n- A dict which doesn't require hashable keys\n\n
\n\n### Why create it?\n\n- I often have a need to store non-hashable keys in a dict. For example storing\n a dict as a key isn't possible with the builtin dict.\n\n ```py\n # doesn't work\n someDict = { \"key\": \"value\" }\n anotherDict = { someDict: \"anotherValue\" }\n ```\n\n
\n\n### Simple usage\n\n```py\nfrom all_purpose_dict import ApDict\n\nsomeDict = { \"key\": \"value\" }\nanotherDict = ApDict([(someDict, \"anotherValue\")])\n\nprint(someDict in anotherDict) # prints True\n```\n\n
\n\n### See Also\n\n- [All Purpose Set](https://github.com/olsonpm/py_all-purpose-set)\n\n
\n\n### Api\n\n*Note: This api is young and subject to change quite a bit. There also may be\nfunctionality present in the builtin dict which ApDict doesn't cover. I'm\nwilling to add it so please just raise a github issue or PR with details.*\n\n#### class ApDict([a list of pairs])\n- 'pairs' may be either a list or tuple with a length of 2\n- all methods return `self` unless specified otherwise\n- iterates in the order of insertion\n- views are not implemented because I don't have a need for them. Instead I\n expose `keysIterator` and `valuesIterator`. If you need views then raise a\n github issue.\n- the internal methods implemented are\n - \\_\\_contains\\_\\_\n - \\_\\_delitem\\_\\_\n - \\_\\_getitem\\_\\_\n - \\_\\_iter\\_\\_\n - \\_\\_len\\_\\_\n - \\_\\_setitem\\_\\_\n\n##### clear()\n\n##### delete(key)\n- a function alternative to `del aDict[key]`\n\n##### get(key, default=None) => value\n- get the value for key if key is in the dictionary, else default.\n- *note: this never raises a KeyError.*\n\n##### has(key) => bool\n- a function alternative to `key in aDict`\n\n##### getKeysIterator() => ApDictKeysIterator\n\n##### set(key, value)\n- a function alternative to `aDict[key] = val`\n\n##### getValuesIterator() => ApDictValuesIterator\n\n
\n\n### Test\n\n```sh\n#\n# you must have poetry installed\n#\n$ poetry shell\n$ poetry install\n$ python runTests.py\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/olsonpm/py_all-purpose-dict", "keywords": "", "license": "", "maintainer": "Philip Olson", "maintainer_email": "philip.olson@pm.me", "name": "all-purpose-dict", "package_url": "https://pypi.org/project/all-purpose-dict/", "platform": "", "project_url": "https://pypi.org/project/all-purpose-dict/", "project_urls": { "Homepage": "https://github.com/olsonpm/py_all-purpose-dict", "Repository": "https://github.com/olsonpm/py_all-purpose-dict" }, "release_url": "https://pypi.org/project/all-purpose-dict/0.2.4/", "requires_dist": null, "requires_python": ">=3.7,<4.0", "summary": "A dict that works with both hashable and non-hashable keys", "version": "0.2.4" }, "last_serial": 5289437, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cfa8ff7398929c0a188265743930c0f3", "sha256": "00aaf07f0d43fde8ec9cfa5b6bf500a6c1be856c7a50852dfa4ffe56ca27c353" }, "downloads": -1, "filename": "all_purpose_dict-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cfa8ff7398929c0a188265743930c0f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28174, "upload_time": "2019-01-21T06:31:42", "url": "https://files.pythonhosted.org/packages/5b/74/8f47660de22771e02d4e06f46e43bfb912fc090efc2a45a663957dc5d5f3/all_purpose_dict-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ffce8cdc84c6e488170a647b8133835", "sha256": "caa6b511b790661200f37dc3e58e45f19de7da8c649a11bf5c5b1475057b11a9" }, "downloads": -1, "filename": "all_purpose_dict-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5ffce8cdc84c6e488170a647b8133835", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9381, "upload_time": "2019-01-21T06:31:44", "url": "https://files.pythonhosted.org/packages/75/97/dc5fba045a25a45cf3e42c867a8cf7a216a7afba2444640cc184bc91b835/all_purpose_dict-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5e686153460679103aad0b40fd2b73d3", "sha256": "b5946a956f6289862f20cc1be7d307ad525d9c6a79a21ea55006e7744e5aa375" }, "downloads": -1, "filename": "all_purpose_dict-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5e686153460679103aad0b40fd2b73d3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28174, "upload_time": "2019-01-21T06:39:03", "url": "https://files.pythonhosted.org/packages/b3/73/45439054d96d04e860c317c98d2ba1d78eff007d6ba55212ffda6b5a8ab7/all_purpose_dict-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "710d6d090e0b12406db0c091ac519e36", "sha256": "93b122faa7581d0acaccd72bd807845d11d309db62ebbffaafc7198b02051472" }, "downloads": -1, "filename": "all_purpose_dict-0.1.1.tar.gz", "has_sig": false, "md5_digest": "710d6d090e0b12406db0c091ac519e36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9395, "upload_time": "2019-01-21T06:39:04", "url": "https://files.pythonhosted.org/packages/52/24/1536d586cb3dcb060441e120297d1964763e92bdaff6d61f0b853d3fa767/all_purpose_dict-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7f9b84560b59316c8363a240228781f4", "sha256": "711c9188ea4716ff18cf27eec00b47c502bf53fc304831a0c3f59a44bf9eb00e" }, "downloads": -1, "filename": "all_purpose_dict-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7f9b84560b59316c8363a240228781f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28224, "upload_time": "2019-01-21T06:54:02", "url": "https://files.pythonhosted.org/packages/89/66/a432cb81ae453845702ff0f1d279864747d6aeb867007e7fd6ab98cd8dd7/all_purpose_dict-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef85cf22084c8a08f719539969e89e0e", "sha256": "db6b7e613b0611a8d2d0bfa1e128b4b1a4911a248318d0c3c1879a014674512e" }, "downloads": -1, "filename": "all_purpose_dict-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ef85cf22084c8a08f719539969e89e0e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9383, "upload_time": "2019-01-21T06:54:03", "url": "https://files.pythonhosted.org/packages/bf/29/9779eb8a64715d4a8574eb694bb0ffb2be4fd27808802bcb7b7ce2e27c46/all_purpose_dict-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "0c14d89c639b707b4e8a39f98535b616", "sha256": "88d68eb843ff86ed4139b5c65ac4d4110cd49c928943fed2c8ce315675596d16" }, "downloads": -1, "filename": "all_purpose_dict-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0c14d89c639b707b4e8a39f98535b616", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28118, "upload_time": "2019-01-21T07:56:44", "url": "https://files.pythonhosted.org/packages/f8/b0/4b12877a2f93c1e5daef13cfef2c9ecc22cb3a522dcb12052f7b2bc31d07/all_purpose_dict-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad63db5ec80d3367135b02b42ede1664", "sha256": "96ff9974050f7694859b4c4d435697c7de0d741f2281cb018f9a2877bf277c6c" }, "downloads": -1, "filename": "all_purpose_dict-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ad63db5ec80d3367135b02b42ede1664", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9143, "upload_time": "2019-01-21T07:56:45", "url": "https://files.pythonhosted.org/packages/21/ef/361535a802e1e8d52ddf91f38e11d1e1f458bf467613898b7d4596602876/all_purpose_dict-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "96fe060fb90cba7c2cf26f0ca5062a8e", "sha256": "6e2195797320e5ca7b526218053f8ce45e3de789b3eeced607b173e789dad099" }, "downloads": -1, "filename": "all_purpose_dict-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "96fe060fb90cba7c2cf26f0ca5062a8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28424, "upload_time": "2019-04-08T13:03:49", "url": "https://files.pythonhosted.org/packages/32/31/0941738c0fd2177fc88f70671e3db0dfe8495ece8bc01991decf1447639e/all_purpose_dict-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdfcbdf4172fe41c89af518b45d05e0b", "sha256": "5676b341e6144f731f56d8bb61db49a2685275927ed455f829300d3a6213d729" }, "downloads": -1, "filename": "all_purpose_dict-0.1.4.tar.gz", "has_sig": false, "md5_digest": "cdfcbdf4172fe41c89af518b45d05e0b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9213, "upload_time": "2019-04-08T13:03:51", "url": "https://files.pythonhosted.org/packages/46/5b/cfc45c338eb8a03012d064c3b81f07e92f106b4a30b81bdd5e71e1db332c/all_purpose_dict-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4e9a934a3d6fb04c11585e481ad126b1", "sha256": "43850b6f185cde39b67160237625439a84cf6fbd0a097a68343dc4c2a0a81623" }, "downloads": -1, "filename": "all_purpose_dict-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4e9a934a3d6fb04c11585e481ad126b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28480, "upload_time": "2019-04-08T13:15:32", "url": "https://files.pythonhosted.org/packages/d7/aa/3e4519d6721502f58d3057f8bf1e3e96e391ee76e59f7c16a6ff4d3039c7/all_purpose_dict-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "710837a62ab322854fef2f39de564a68", "sha256": "0f9f387c6a4cf1e6efb0010e8158dc1082dbea00c9bdb6562aa09f4eac5daccf" }, "downloads": -1, "filename": "all_purpose_dict-0.1.5.tar.gz", "has_sig": false, "md5_digest": "710837a62ab322854fef2f39de564a68", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9319, "upload_time": "2019-04-08T13:15:34", "url": "https://files.pythonhosted.org/packages/48/eb/d17ab7d4e97d2b75d9083dc0791bb27caff5f42901876dacdbdaf3a302aa/all_purpose_dict-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "71b8bfd5d70ec472bb309c9133383b94", "sha256": "6e0c93fafc581ee99eb7dec000a6033b89a541cb9ce445a6d050837c38277b1f" }, "downloads": -1, "filename": "all_purpose_dict-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "71b8bfd5d70ec472bb309c9133383b94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 28490, "upload_time": "2019-04-08T13:17:30", "url": "https://files.pythonhosted.org/packages/3e/1c/739ee444da95b7d58fb136f3e0d82dff80c0260e9be17f025f52c0829922/all_purpose_dict-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f73e763403c195568fa4ddd4e9f7c8d", "sha256": "51fbb8a290bf5f9ae1bc33edf995ecebba95455c4d22d17f39127a9f15be7cd6" }, "downloads": -1, "filename": "all_purpose_dict-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5f73e763403c195568fa4ddd4e9f7c8d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 9321, "upload_time": "2019-04-08T13:17:31", "url": "https://files.pythonhosted.org/packages/58/11/2b54a3dec050e5c045dbf98041708dee1dadb4c07eeba5f87a693628b81d/all_purpose_dict-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d3ccf341862c3995fbcc3f5113e769ff", "sha256": "64644e0bc42e40a9f68f0b7328ab16e6f9269ce50711347a6c4bd9d617de515b" }, "downloads": -1, "filename": "all_purpose_dict-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d3ccf341862c3995fbcc3f5113e769ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 98984, "upload_time": "2019-05-19T17:26:43", "url": "https://files.pythonhosted.org/packages/2e/14/bd978bd1960e10a47aff9d1be9be1f7569bb01b4033f577a4d9503c0dff3/all_purpose_dict-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f783d9978c9d0f4c3e8646f5541d131", "sha256": "17c3bd9d18e62210f4de71d0cb848e39413e433ec162c42627eeb91256298ba5" }, "downloads": -1, "filename": "all_purpose_dict-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3f783d9978c9d0f4c3e8646f5541d131", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 86678, "upload_time": "2019-05-19T17:26:45", "url": "https://files.pythonhosted.org/packages/51/f4/3397f6b5e2b3e9b063032f958a38a94cc04321e37ff49d73316baed14d1a/all_purpose_dict-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "84c18bd57ae1fcd782eec06e4237fe69", "sha256": "7ee7088cf0d0e295a15a68a4e121654239879bc93310f4bb2942c3584164f252" }, "downloads": -1, "filename": "all_purpose_dict-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "84c18bd57ae1fcd782eec06e4237fe69", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 98989, "upload_time": "2019-05-19T19:08:47", "url": "https://files.pythonhosted.org/packages/d0/00/33d6c2f9af2490b68540e75ec299c9d762c151848f33cc765c90879643ce/all_purpose_dict-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7342614ab0161c7fd7f30996248f08fe", "sha256": "b78b81783570aa43ce4a7e139f5056568a93b3d429a778e0a7781d3e0e02cc5a" }, "downloads": -1, "filename": "all_purpose_dict-0.2.2.tar.gz", "has_sig": false, "md5_digest": "7342614ab0161c7fd7f30996248f08fe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 86696, "upload_time": "2019-05-19T19:08:48", "url": "https://files.pythonhosted.org/packages/85/2f/615b3db4ca7c90b5ad2bfa5df37e09fc80759bfa829afb06a55b0879c568/all_purpose_dict-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "e0d486400b09105e7772211133068347", "sha256": "4fd3c463c28b065dfaafdf6c574afe98a57dfb3d0319d5de90f212a98c80f6c2" }, "downloads": -1, "filename": "all_purpose_dict-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e0d486400b09105e7772211133068347", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 99173, "upload_time": "2019-05-19T19:52:45", "url": "https://files.pythonhosted.org/packages/e0/eb/9a6a15fe8fc061625af94492a572f38d5a64e53473249baecc4e2c384dc8/all_purpose_dict-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7618715c211ecde262caeb618aff2d2", "sha256": "f345b6748912cf842f84adbe99ec103263b3e08e0f4103d34cb195aa1c0ee6eb" }, "downloads": -1, "filename": "all_purpose_dict-0.2.3.tar.gz", "has_sig": false, "md5_digest": "d7618715c211ecde262caeb618aff2d2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 86693, "upload_time": "2019-05-19T19:52:47", "url": "https://files.pythonhosted.org/packages/dd/17/7567dc0bf9d905407672aa397ae3204ef5731df3b9c76d2fdc1184983143/all_purpose_dict-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "953963b8bd0698d5949450e1d07625c0", "sha256": "aadeb0f634546ff3f92b4e85d30a76400c9c241bbc8a68f6e2aed96e32e380de" }, "downloads": -1, "filename": "all_purpose_dict-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "953963b8bd0698d5949450e1d07625c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 209429, "upload_time": "2019-05-19T20:16:39", "url": "https://files.pythonhosted.org/packages/11/e1/cbcffe53b7cc176b824f0644e3d43490307deaf251b47cc8e4fd5a4d7467/all_purpose_dict-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cce3b6ff7902000dee49b48e094a3c0a", "sha256": "d1ca3b4a4ad4311096b38ed9545b463eeaf5f4ed09735a27e8ca20b20a1ca401" }, "downloads": -1, "filename": "all_purpose_dict-0.2.4.tar.gz", "has_sig": false, "md5_digest": "cce3b6ff7902000dee49b48e094a3c0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 178939, "upload_time": "2019-05-19T20:16:41", "url": "https://files.pythonhosted.org/packages/fd/1a/830cecdfc94f7ad0441b7941cadf41354f305be79e282e4cfd9364489a6f/all_purpose_dict-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "953963b8bd0698d5949450e1d07625c0", "sha256": "aadeb0f634546ff3f92b4e85d30a76400c9c241bbc8a68f6e2aed96e32e380de" }, "downloads": -1, "filename": "all_purpose_dict-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "953963b8bd0698d5949450e1d07625c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 209429, "upload_time": "2019-05-19T20:16:39", "url": "https://files.pythonhosted.org/packages/11/e1/cbcffe53b7cc176b824f0644e3d43490307deaf251b47cc8e4fd5a4d7467/all_purpose_dict-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cce3b6ff7902000dee49b48e094a3c0a", "sha256": "d1ca3b4a4ad4311096b38ed9545b463eeaf5f4ed09735a27e8ca20b20a1ca401" }, "downloads": -1, "filename": "all_purpose_dict-0.2.4.tar.gz", "has_sig": false, "md5_digest": "cce3b6ff7902000dee49b48e094a3c0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 178939, "upload_time": "2019-05-19T20:16:41", "url": "https://files.pythonhosted.org/packages/fd/1a/830cecdfc94f7ad0441b7941cadf41354f305be79e282e4cfd9364489a6f/all_purpose_dict-0.2.4.tar.gz" } ] }