{
"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"
}
]
}