{ "info": { "author": "Zsolt Cserna", "author_email": "zsolt.cserna@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "cowdict\n~~~~~~~\n\ncowdict is a python module implementing copy-on-write pattern on dictionaries.\n\nThis means that if someone change the dict-like object, the original object won't be changed but\nthe differences will be tracked instead.\n\nNutshell\n--------\n\nHere's a small example:\n\n.. code-block:: python\n\n base_dict = {\"foo\": \"bar\"}\n cd = CowDict(base_dict)\n cd[\"foo\"] = \"baz\"\n\n print(base_dict[\"foo\"]) # will still print 'bar'\n print(cd[\"foo\"]) # will print 'baz'\n\nCowDict object (`cd` in the code above) implements the `MutableMapping` interface, simply speaking it has the\nsame interface as the `dict` object.\n\nThis means that it is guaranteed that changing keys/values on this object will never cause the change of the\nunderlying dictionary (`base_dict` in the example).\n\nPhilosophy\n----------\nThe idea behind this module is to avoid copying dictionary where it is possible and use this wrapper class instead.\nWhile it has some penalties on the performance on key lookup and length calculation, the memory footprint can\nbe kept at minimum (compared to a full copy of the dictionary).\n\n\nBehind the scenes\n-----------------\nBehind the scenes, new items are added to a separate directory. Keys which exist on the base dictionary are\n'deleted' by keeping a separate set object about the the keys deleted.\nEvery time when a key is accessed either by `getitem` or `items` or other methods,\nthese additional structures are involved to produce the correct result.\n\nWhile having an assumption of having the base dictionary read-only would make the world easier, especially\nwhen calculating the length of the object, the library handles the situation when the base dictionary changes.\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://www.github.com/csernazs/cowdict", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cowdict", "package_url": "https://pypi.org/project/cowdict/", "platform": "", "project_url": "https://pypi.org/project/cowdict/", "project_urls": { "Homepage": "https://www.github.com/csernazs/cowdict" }, "release_url": "https://pypi.org/project/cowdict/0.2/", "requires_dist": null, "requires_python": "", "summary": "Copy-on-write dictionary", "version": "0.2" }, "last_serial": 3454771, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "10a3ee297393c967f4673bffbeaceccf", "sha256": "025aac25bb739e88cd4b3b1ac6900e9ef06b8c7b5ceba0ce6e9016a6f4b057f7" }, "downloads": -1, "filename": "cowdict-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "10a3ee297393c967f4673bffbeaceccf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4425, "upload_time": "2018-01-01T17:24:02", "url": "https://files.pythonhosted.org/packages/50/37/803ab1a2a08f611fee9ad718d017fdf3e9a060472b6ae9e2b45b5006c541/cowdict-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe4482661e4e4e5fb8f83c21a5de39d0", "sha256": "1ed7ed19a6fd415a1d49840237a709e4a9fc229460a88ab55df883333fb63d85" }, "downloads": -1, "filename": "cowdict-0.1.tar.gz", "has_sig": false, "md5_digest": "fe4482661e4e4e5fb8f83c21a5de39d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2482, "upload_time": "2018-01-01T17:24:04", "url": "https://files.pythonhosted.org/packages/dc/a1/4ffea0db61dd0864c2834939d27c2a44d3a24a90d09ea615a184439b2fa1/cowdict-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "83cf9d1f3d8475abb7ca7238ae65ca80", "sha256": "46d9d19b52451e55857f0bc02403d912aa731da288938dea374558469f955195" }, "downloads": -1, "filename": "cowdict-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "83cf9d1f3d8475abb7ca7238ae65ca80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4413, "upload_time": "2018-01-01T17:54:44", "url": "https://files.pythonhosted.org/packages/cd/9a/3220db473587729fcd02175f368cba92ec9d4e9130034a6ae798b3fa8d4b/cowdict-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d838fad2571474dbe0f2be3188a563b7", "sha256": "ee21a35f43ab9f8ad205121220b020aba1342e5285f230bb7110953809d38703" }, "downloads": -1, "filename": "cowdict-0.2.tar.gz", "has_sig": false, "md5_digest": "d838fad2571474dbe0f2be3188a563b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2472, "upload_time": "2018-01-01T17:54:46", "url": "https://files.pythonhosted.org/packages/ee/0c/eff9b399cb8311235fceb85a194b7ff973a7833efee5db2f47459403d979/cowdict-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83cf9d1f3d8475abb7ca7238ae65ca80", "sha256": "46d9d19b52451e55857f0bc02403d912aa731da288938dea374558469f955195" }, "downloads": -1, "filename": "cowdict-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "83cf9d1f3d8475abb7ca7238ae65ca80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4413, "upload_time": "2018-01-01T17:54:44", "url": "https://files.pythonhosted.org/packages/cd/9a/3220db473587729fcd02175f368cba92ec9d4e9130034a6ae798b3fa8d4b/cowdict-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d838fad2571474dbe0f2be3188a563b7", "sha256": "ee21a35f43ab9f8ad205121220b020aba1342e5285f230bb7110953809d38703" }, "downloads": -1, "filename": "cowdict-0.2.tar.gz", "has_sig": false, "md5_digest": "d838fad2571474dbe0f2be3188a563b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2472, "upload_time": "2018-01-01T17:54:46", "url": "https://files.pythonhosted.org/packages/ee/0c/eff9b399cb8311235fceb85a194b7ff973a7833efee5db2f47459403d979/cowdict-0.2.tar.gz" } ] }