{ "info": { "author": "Christophe-Marie Duquesne", "author_email": "chmd@chmd.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4" ], "description": "persistentdicts\n===============\n\n|Build Status| |Coverage Status| |License| |Supported Python versions|\n\ndict-like interfaces for various databases\n\nKey differences with competing projects\n=======================================\n\nIf you search on pypi, you will find a few competing projects: pdicts,\ndurabledicts, etc. The key differences between persistentdicts and those\nare:\n\n- Implementations of persistentdicts do not keep a local cache\n dictionary: changes are immediately written to database. Iterators\n are also proceeding directly on the database. It allows to interact\n with datasets that would not fit in RAM otherwise.\n\n- The test suite is significantly bigger than in all the other\n implementation I have seen. When relevant, tests have been backported\n from the CPython test suite of dict.\n\n- Serialization is done in json rather than using pickle.\n\nGotchas\n-------\n\nYou can't modify a value of the dictionary in place. For example:\n\n::\n\n >>> import persistentdicts\n\n >>> d = persistentdicts.sqlitedict.SqliteDict()\n >>> d[\"a\"] = []\n >>> d[\"a\"].append(1)\n\n >>> d[\"a\"] #\u00a0with a normal dict, you would get [1]\n []\n\nThat is because ``d[\"a\"]`` returns a copy of the database entry for the\nkey ``\"a\"``, and not a reference to a python object. Modifying this copy\n(with ``append``) does not affect the database itself.\n\nTo circumvent this, you should do:\n\n::\n\n >>> import persistentdicts\n\n >>> d = persistentdicts.sqlitedict.SqliteDict()\n >>> d[\"a\"] = []\n >>> d[\"a\"] = d[\"a\"] + [1]\n\n >>> d[\"a\"]\n [1]\n\nSimilarly, ``setdefault`` will not work as expected since it does not\nreturn a reference to the stored value, but a copy of this value.\n\n::\n\n >>> import persistentdicts\n\n >>> d = persistentdicts.sqlitedict.SqliteDict()\n >>> d.setdefault(\"a\", []).append(1)\n\n >>> d[\"a\"]\n []\n\nDatabases supported so far\n--------------------------\n\nDone:\n\n- kyotocabinet\n- sqlite\n- cassandra\n\nPlanned:\n\n- leveldb\n- redis\n- memcachedb\n- lightcloud\n\nYou can request new formats on the `bug tracker `__.\n\nShort documentation\n===================\n\npersistentdicts.sqlitedict.SqliteDict\n-------------------------------------\n\n::\n\n persistentdicts.sqlitedict.SqliteDict(path=\":memory:\", table=\"dict\", isolation_level=\"DEFERRED\", *args, **kwargs)\n\n- ``path`` is the path to the file where you wish to store the data\n- ``dict`` is the table to use in this file\n- ``isolation_level`` is the isolation level used for all transactions.\n See the `sqlite\n documentation `__\n for more details.\n- the remaining arguments ``*args, **kwargs`` are used to fill the\n dictionary (like a normal ``dict``)\n\npersistentdicts.kyotocabinetdict.KyotoCabinetDict\n-------------------------------------------------\n\n::\n\n persistentdicts.kyotocabinetdict.KyotoCabinetDict(path, *args, **kwargs)\n\n- ``path`` is the path to the file where you wish to store the data.\n The file extension matters and will determine which format is going\n to be used internally (must be one of .kch, .kct, .kcd, .kcf or\n .kcx). See the `kyotocabinet\n documentation `__\n for more details.\n- the remaining arguments ``*args, **kwargs`` are used to fill the\n dictionary (like a normal ``dict``)\n\npersistentdicts.cassandradict.CassandraDict\n-------------------------------------------\n\n::\n\n persistentdicts.cassandradict.CassandraDict(contact_points=(\"127.0.0.1\",), port=9042, keyspace=\"dict\", table=\"dict\", *args, **kwargs)\n\n- ``contact_points`` is an initial list of ip addresses which are part of\n the Cassandra cluster. The Cassandra driver will automatically discover\n the rest of the cluster.\n- ``port`` is the port on which Cassandra runs.\n- ``keyspace`` is the keyspace used to store the data. This keyspace will\n be deleted if the method ``.delete()`` is called on the CassandraDict\n- ``table`` is the name of the table used to store the data.\n- the remaining arguments ``*args, **kwargs`` are used to fill the\n dictionary (like a normal ``dict``)\n\n.. |Build Status| image:: https://travis-ci.org/chmduquesne/persistentdicts.svg\n :target: https://travis-ci.org/chmduquesne/persistentdicts\n.. |Coverage Status| image:: https://coveralls.io/repos/chmduquesne/persistentdicts/badge.svg?branch=master\n :target: https://coveralls.io/r/chmduquesne/persistentdicts?branch=master\n.. |License| image:: https://pypip.in/license/persistentdicts/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/persistentdicts/\n.. |Supported Python versions| image:: https://pypip.in/py_versions/persistentdicts/badge.svg?style=flat\n :target: https://pypi.python.org/pypi/persistentdicts/", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/chmduquesne/persistentdicts/archive/2.0.4.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/chmduquesne/persistentdicts", "keywords": "database,interface,adapter", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "persistentdicts", "package_url": "https://pypi.org/project/persistentdicts/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/persistentdicts/", "project_urls": { "Download": "https://github.com/chmduquesne/persistentdicts/archive/2.0.4.tar.gz", "Homepage": "https://github.com/chmduquesne/persistentdicts" }, "release_url": "https://pypi.org/project/persistentdicts/2.0.4/", "requires_dist": null, "requires_python": null, "summary": "dict-like interfaces for various databases", "version": "2.0.4" }, "last_serial": 1402359, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "aa95da066cddb5f3633b6bb6b89d572b", "sha256": "82f93a1a047750aa2dd10f81cfbd12839b3f02ac6c4ce953fe7d2230c0160ff6" }, "downloads": -1, "filename": "persistentdicts-0.0.2.tar.gz", "has_sig": false, "md5_digest": "aa95da066cddb5f3633b6bb6b89d572b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3073, "upload_time": "2015-01-20T16:03:03", "url": "https://files.pythonhosted.org/packages/66/81/58a908c6a7b350b12fa36e4b98f755ddf074ed2cef5012107514aeb8edd3/persistentdicts-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "343d18382c92633790a187132c817dc2", "sha256": "ff5bdbf222a65dc0a6e35cec58621a5a61a71a180baa7d25fad1768a172b74d7" }, "downloads": -1, "filename": "persistentdicts-0.0.3.tar.gz", "has_sig": false, "md5_digest": "343d18382c92633790a187132c817dc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3504, "upload_time": "2015-01-22T14:57:47", "url": "https://files.pythonhosted.org/packages/5e/44/d0aa979c5f753c845b0362ba4e8a37370d3c5340cf083b7b564ce34d14f5/persistentdicts-0.0.3.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3ffc35b3b756c96dba90f591d94d2a31", "sha256": "63c64774ac9b3300d8fdb8e567cdfc791fb99a26b9e9e9561ca8f209b65e958c" }, "downloads": -1, "filename": "persistentdicts-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3ffc35b3b756c96dba90f591d94d2a31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4008, "upload_time": "2015-01-26T23:29:51", "url": "https://files.pythonhosted.org/packages/9e/37/b7c21d1e06764fd3b9a1828487210e29b444e91426503cabdb5d6789e8e6/persistentdicts-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a0ef6234e16d4b5947be656bc0c317c5", "sha256": "f2c88a4d872d8f796d9ff2128f9455e4e56ad55f5568ad37cb844d94d0bb56a8" }, "downloads": -1, "filename": "persistentdicts-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a0ef6234e16d4b5947be656bc0c317c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5965, "upload_time": "2015-01-27T16:33:14", "url": "https://files.pythonhosted.org/packages/cf/d9/e65c5e6b8fbddb2d0b9223341c0460142b6c36144cee6ac6741d4fa5efca/persistentdicts-1.1.0.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "efc0cb2acfe32c5aadceb858a8cbe686", "sha256": "3bbca9232f682392cf0c42fa6b18110aabf8ab8bb0a15aeec32e605f485fa4e6" }, "downloads": -1, "filename": "persistentdicts-1.1.2.tar.gz", "has_sig": false, "md5_digest": "efc0cb2acfe32c5aadceb858a8cbe686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6593, "upload_time": "2015-01-28T09:10:25", "url": "https://files.pythonhosted.org/packages/f0/b6/bdf56fe45a699b1c6997992b4e8818f648f9ad607aa5f4a1a79fc27b801e/persistentdicts-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ba76c2c4f118675b876a147ff605d6cc", "sha256": "106d6856f0fd713f2015ea5e813fba7aa3c096e068b2f351536429c429911e73" }, "downloads": -1, "filename": "persistentdicts-1.2.0.tar.gz", "has_sig": false, "md5_digest": "ba76c2c4f118675b876a147ff605d6cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6864, "upload_time": "2015-01-28T11:00:20", "url": "https://files.pythonhosted.org/packages/c4/08/20df07a467b9f8ee19988a569484d15a5487d0baf728bbe1e05a5e987722/persistentdicts-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "844113bf4aecc38e7e359fb93b4b7846", "sha256": "21c2d2a555e6b61efc0f798ad0f3fb9e3772be3c0d321e7e9ee52eb6f155cfb0" }, "downloads": -1, "filename": "persistentdicts-1.2.1.tar.gz", "has_sig": false, "md5_digest": "844113bf4aecc38e7e359fb93b4b7846", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8314, "upload_time": "2015-01-28T12:52:03", "url": "https://files.pythonhosted.org/packages/fb/39/a269a2aa511c042b342c16a7595f0a01aa6974ccea3b91e5a52178bbf43d/persistentdicts-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "11aef10b3a6b77b748787227e0440171", "sha256": "b78b94406cbed8be98850d0a6cae7be6ca156cf723db3184fc27a0278e94321e" }, "downloads": -1, "filename": "persistentdicts-1.2.2.tar.gz", "has_sig": false, "md5_digest": "11aef10b3a6b77b748787227e0440171", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7088, "upload_time": "2015-01-28T13:08:03", "url": "https://files.pythonhosted.org/packages/7c/8b/be7840180644c544ad3230dba8573c82fb1271da8252da373bbfd8a80844/persistentdicts-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "9d81049a76741dd159323398a6a41cae", "sha256": "8933fd0174b180113ff46700b2279c8f537d1433d3ef7eb941926751471efece" }, "downloads": -1, "filename": "persistentdicts-1.2.3.tar.gz", "has_sig": false, "md5_digest": "9d81049a76741dd159323398a6a41cae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7181, "upload_time": "2015-01-29T16:09:41", "url": "https://files.pythonhosted.org/packages/ae/e0/1347eada60459189cacc55c5874d47aefc67b3e8dbfa8efa9d150a4238cf/persistentdicts-1.2.3.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "aadebbb76d5f8e3ee9c4dd3424f28de5", "sha256": "cefe72abe056894e63be7313ab593395b0507be0eec1fb3a242cc1388da7a879" }, "downloads": -1, "filename": "persistentdicts-2.0.0.tar.gz", "has_sig": false, "md5_digest": "aadebbb76d5f8e3ee9c4dd3424f28de5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7199, "upload_time": "2015-01-29T22:33:25", "url": "https://files.pythonhosted.org/packages/d4/23/24301f24b0b871f13854682bd4ff452db8655465e1c58797445c65112743/persistentdicts-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "45c7a5aef8651824266f0196267d3c63", "sha256": "8adbb15215c6d802a14b100f62209ce0a139d8e31b6219ea05a486710b32bd0c" }, "downloads": -1, "filename": "persistentdicts-2.0.1.tar.gz", "has_sig": false, "md5_digest": "45c7a5aef8651824266f0196267d3c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7263, "upload_time": "2015-01-29T22:53:22", "url": "https://files.pythonhosted.org/packages/66/a0/b28becc3f6af5658ce5abd91818a71dcfa51342f4cb94140b1b19cd7f8ca/persistentdicts-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "f5022d0ab6257edb5762f57235a32308", "sha256": "f1f25404d37fb4942e82d08d5abf10a058b2e626aea26ccaf6e0bd50ed206540" }, "downloads": -1, "filename": "persistentdicts-2.0.2.tar.gz", "has_sig": false, "md5_digest": "f5022d0ab6257edb5762f57235a32308", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8538, "upload_time": "2015-01-29T23:23:51", "url": "https://files.pythonhosted.org/packages/26/7f/8dbfe525be6dfc077b98fa6319de3dd81354f794df942715e81af7794ebd/persistentdicts-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "5c6dfcec2f0eb3240c8f716dcf677c93", "sha256": "fea3dee6823ab6cca2e3db05e8f77367a5898c43c1c471a0be32a84a1b35c98a" }, "downloads": -1, "filename": "persistentdicts-2.0.3.tar.gz", "has_sig": false, "md5_digest": "5c6dfcec2f0eb3240c8f716dcf677c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7303, "upload_time": "2015-01-29T23:34:47", "url": "https://files.pythonhosted.org/packages/ae/c8/899920dc2d31920ff07a0750e538e0a419f90d80127c2670528b55de2604/persistentdicts-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "b5a4e5462d36ff7d9dcca132e98f099d", "sha256": "504e4ee5ac22fc44acc1400e8af42e31fe86d6ba60983b0ca5fe27c2a5c4bd44" }, "downloads": -1, "filename": "persistentdicts-2.0.4.tar.gz", "has_sig": false, "md5_digest": "b5a4e5462d36ff7d9dcca132e98f099d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7295, "upload_time": "2015-01-29T23:36:11", "url": "https://files.pythonhosted.org/packages/8b/23/2ec2d4e4866dbdbedf5ce4a6dacd464ee0da625a3d28fe55eb0126b63ea4/persistentdicts-2.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b5a4e5462d36ff7d9dcca132e98f099d", "sha256": "504e4ee5ac22fc44acc1400e8af42e31fe86d6ba60983b0ca5fe27c2a5c4bd44" }, "downloads": -1, "filename": "persistentdicts-2.0.4.tar.gz", "has_sig": false, "md5_digest": "b5a4e5462d36ff7d9dcca132e98f099d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7295, "upload_time": "2015-01-29T23:36:11", "url": "https://files.pythonhosted.org/packages/8b/23/2ec2d4e4866dbdbedf5ce4a6dacd464ee0da625a3d28fe55eb0126b63ea4/persistentdicts-2.0.4.tar.gz" } ] }