{ "info": { "author": "James Milne", "author_email": "james.milne@protonmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# alistpy\n\nAn Association List construct for Python\n\n---\n\n## Install\n\n```pip install alistpy```\n\n---\n\n## Usage\n\nThis simple library provides an AList object that should be a drop-in replacement for most dictionaries, but based on immutable data structures instead.\n\nCheap to construct, expensive to mutate, as it isn't mutable. Every mutative method actually generates a new AList in it's place.\n\nExample:\n\n```\nimport alist\n\n# This is cheap:\na = alist.AList(x=0,y=1)\n\n# This is also cheap:\nprint(a['x'])\n\n# This is expensive:\na['x'] = 12\n```\n\n---\n\n## Differences to Dictionaries\n\nThere's primarily two differences:\n\n* Mutating the AList is expensive, rather than cheap.\n\n* Setting the same key multiple times at init time is a ValueError.\n\nThat is, Python is happy with:\n\n```\n{'x': 0, 'x': 4}\n> {'x': 4}\n```\n\nThat sort of behaviour might be unexpected, or cause unexpected problems for the programmer.\n\nSo, instead alist:\n\n```\nalist.AList(x=0, x=4)\n> Exception raised, ValueError\n```\n\n---\n\n## Issues\n\n[Issue tracker](https://todo.sr.ht/%7Eshakna/alistpy).\n\nAnonymous users (those without accounts) are welcome to submit issues.\n\n---\n\n## Explicit API\n\nThere isn't one yet.\n\nCheck back in future versions. For now, be guided by the [tests](https://git.sr.ht/%7Eshakna/alistpy/tree/master/test_alist.py).\n\n---\n\n## Testing\n\nInstall ```pytest```, and then run it.\n\nCurrently 31 tests for 21 methods.\n\n---\n\n## License\n\nBSD-3 Clause. See [LICENSE.md](https://git.sr.ht/~shakna/alistpy/tree/master/LICENSE.md) for more.\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://git.sr.ht/~shakna/alistpy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "alistpy", "package_url": "https://pypi.org/project/alistpy/", "platform": "", "project_url": "https://pypi.org/project/alistpy/", "project_urls": { "Homepage": "https://git.sr.ht/~shakna/alistpy" }, "release_url": "https://pypi.org/project/alistpy/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "An Association List construct", "version": "1.2.0" }, "last_serial": 4683376, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "839dc2d707e189f0b7ffe394e20a3342", "sha256": "e5dc79d1700d4756d3ddbfe0fba7cfaeb689269521e22a9ecd9cfb505c08ce05" }, "downloads": -1, "filename": "alistpy-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "839dc2d707e189f0b7ffe394e20a3342", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4222, "upload_time": "2019-01-11T01:02:21", "url": "https://files.pythonhosted.org/packages/65/c7/d357f73699671dd9c27fc36d919d5f028cc876ef40b7a2b0177e9d79b7b8/alistpy-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2568540ee123a3d76781a148692dd916", "sha256": "a98fbdebb845d1e2a537aa376b722edf54de4559ddf0495520ab3cdff77e0681" }, "downloads": -1, "filename": "alistpy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2568540ee123a3d76781a148692dd916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3116, "upload_time": "2019-01-11T01:02:24", "url": "https://files.pythonhosted.org/packages/39/46/24bebcf7be374014e8dba7bd1dc226c025f678079de918a7d42a6d9bead8/alistpy-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0dc76e3d7e7f23a87d7998ce56c58b23", "sha256": "638ff65de09364d21891a799297665988a4199719d4abc1edc0ff14a29c434aa" }, "downloads": -1, "filename": "alistpy-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0dc76e3d7e7f23a87d7998ce56c58b23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4290, "upload_time": "2019-01-11T01:18:32", "url": "https://files.pythonhosted.org/packages/0b/cf/1ca9a988bd0021f35c4211f5cfcdcd127675ed61ad876efaf8a23b5cb535/alistpy-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f905a3fcd848f29f9949df7da141f89", "sha256": "46b9c30bbb90e5aa5cc1ef9db7ea695cd836160a448886858fdcbc5c14ad315c" }, "downloads": -1, "filename": "alistpy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "9f905a3fcd848f29f9949df7da141f89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3192, "upload_time": "2019-01-11T01:18:34", "url": "https://files.pythonhosted.org/packages/31/0f/2cbec1c9db8711d5a4d7c77d46beabf31685a40a38a0ee2c4fc312fe0056/alistpy-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "65db57d3dc926af8a76d6ded86de97b1", "sha256": "f4da01874b1514803099f81f79b8555277c1c4a125af769784a0dfca3059200a" }, "downloads": -1, "filename": "alistpy-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "65db57d3dc926af8a76d6ded86de97b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4399, "upload_time": "2019-01-11T01:30:45", "url": "https://files.pythonhosted.org/packages/cf/79/4aea99ffa3c7603ad36859d015cceeef21eeab07b0813adb82f58541c468/alistpy-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a82100c910e81e397d64cef8c027443", "sha256": "bfad691198fa61e883894496a5d68c9e13025085d72f3018866a479cb75912dc" }, "downloads": -1, "filename": "alistpy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4a82100c910e81e397d64cef8c027443", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3311, "upload_time": "2019-01-11T01:30:47", "url": "https://files.pythonhosted.org/packages/74/a9/849bc2e053f1549fed46948cf1930a6e1a15f14c96c00e2fc72edaa110b0/alistpy-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65db57d3dc926af8a76d6ded86de97b1", "sha256": "f4da01874b1514803099f81f79b8555277c1c4a125af769784a0dfca3059200a" }, "downloads": -1, "filename": "alistpy-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "65db57d3dc926af8a76d6ded86de97b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4399, "upload_time": "2019-01-11T01:30:45", "url": "https://files.pythonhosted.org/packages/cf/79/4aea99ffa3c7603ad36859d015cceeef21eeab07b0813adb82f58541c468/alistpy-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a82100c910e81e397d64cef8c027443", "sha256": "bfad691198fa61e883894496a5d68c9e13025085d72f3018866a479cb75912dc" }, "downloads": -1, "filename": "alistpy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4a82100c910e81e397d64cef8c027443", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3311, "upload_time": "2019-01-11T01:30:47", "url": "https://files.pythonhosted.org/packages/74/a9/849bc2e053f1549fed46948cf1930a6e1a15f14c96c00e2fc72edaa110b0/alistpy-1.2.0.tar.gz" } ] }