{ "info": { "author": "Radim Rehurek, Victor R. Escobar, Andrey Usov, Prasanna Swaminathan, Jeff Quast", "author_email": "me@radimrehurek.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Database :: Front-Ends" ], "description": "=================================================================\nsqlitedict -- persistent ``dict``, backed-up by SQLite and pickle\n=================================================================\n\n|Travis|_\n|License|_\n\n.. |Travis| image:: https://travis-ci.org/RaRe-Technologies/sqlitedict.svg?branch=master\n.. |Downloads| image:: https://img.shields.io/pypi/dm/sqlitedict.svg\n.. |License| image:: https://img.shields.io/pypi/l/sqlitedict.svg\n.. _Travis: https://travis-ci.org/RaRe-Technologies/sqlitedict\n.. _Downloads: https://pypi.python.org/pypi/sqlitedict\n.. _License: https://pypi.python.org/pypi/sqlitedict\n\nA lightweight wrapper around Python's sqlite3 database with a simple, Pythonic\ndict-like interface and support for multi-thread access:\n\n.. code-block:: python\n\n >>> from sqlitedict import SqliteDict\n >>> mydict = SqliteDict('./my_db.sqlite', autocommit=True)\n >>> mydict['some_key'] = any_picklable_object\n >>> print mydict['some_key'] # prints the new value\n >>> for key, value in mydict.iteritems():\n >>> print key, value\n >>> print len(mydict) # etc... all dict functions work\n >>> mydict.close()\n\nPickle is used internally to (de)serialize the values. Keys are arbitrary strings,\nvalues arbitrary pickle-able objects.\n\nIf you don't use autocommit (default is no autocommit for performance), then\ndon't forget to call ``mydict.commit()`` when done with a transaction:\n\n.. code-block:: python\n\n >>> # using SqliteDict as context manager works too (RECOMMENDED)\n >>> with SqliteDict('./my_db.sqlite') as mydict: # note no autocommit=True\n ... mydict['some_key'] = u\"first value\"\n ... mydict['another_key'] = range(10)\n ... mydict.commit()\n ... mydict['some_key'] = u\"new value\"\n ... # no explicit commit here\n >>> with SqliteDict('./my_db.sqlite') as mydict: # re-open the same DB\n ... print mydict['some_key'] # outputs 'first value', not 'new value'\n\n\nFeatures\n--------\n\n* Values can be **any picklable objects** (uses ``cPickle`` with the highest protocol).\n* Support for **multiple tables** (=dicts) living in the same database file.\n* Support for **access from multiple threads** to the same connection (needed by e.g. Pyro).\n Vanilla sqlite3 gives you ``ProgrammingError: SQLite objects created in a thread can\n only be used in that same thread.``\n\n Concurrent requests are still serialized internally, so this \"multithreaded support\"\n **doesn't** give you any performance benefits. It is a work-around for sqlite limitations in Python.\n\n* Support for **custom serialization or compression**:\n\n .. code-block:: python\n\n # use JSON instead of pickle\n >>> import json\n >>> mydict = SqliteDict('./my_db.sqlite', encode=json.dumps, decode=json.loads)\n\n # apply zlib compression after pickling\n >>> import zlib, pickle, sqlite3\n >>> def my_encode(obj):\n ... return sqlite3.Binary(zlib.compress(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL)))\n >>> def my_decode(obj):\n ... return pickle.loads(zlib.decompress(bytes(obj)))\n >>> mydict = SqliteDict('./my_db.sqlite', encode=my_encode, decode=my_decode)\n\n\nInstallation\n------------\n\nThe module has no dependencies beyond Python itself. The minimum Python version is 2.5, continuously tested on Python 2.6, 2.7, 3.3 and 3.4 `on Travis `_.\n\nInstall or upgrade with::\n\n pip install -U sqlitedict\n\nor from the `source tar.gz `_::\n\n python setup.py install\n\nDocumentation\n-------------\n\nStandard Python document strings are inside the module:\n\n.. code-block:: python\n\n >>> import sqlitedict\n >>> help(sqlitedict)\n\n(but it's just ``dict`` with a commit, really).\n\n**Beware**: because of Python semantics, ``sqlitedict`` cannot know when a mutable\nSqliteDict-backed entry was modified in RAM. For example, ``mydict.setdefault('new_key', []).append(1)``\nwill leave ``mydict['new_key']`` equal to empty list, not ``[1]``. You'll need to\nexplicitly assign the mutated object back to SqliteDict to achieve the same effect:\n\n.. code-block:: python\n\n >>> val = mydict.get('new_key', [])\n >>> val.append(1) # sqlite DB not updated here!\n >>> mydict['new_key'] = val # now updated\n\n\nFor developers\n--------------\n\nInstall::\n\n # pip install nose\n # pip install coverage\n\nTo perform all tests::\n\n # make test-all\n\nTo perform all tests with coverage::\n\n # make test-all-with-coverage\n\n\nComments, bug reports\n---------------------\n\n``sqlitedict`` resides on `github `_. You can file\nissues or pull requests there.\n\n\n----\n\n``sqlitedict`` is open source software released under the `Apache 2.0 license `_.\nCopyright (c) 2011-now `Radim \u0158eh\u016f\u0159ek `_ and contributors.", "description_content_type": "", "docs_url": null, "download_url": "http://pypi.python.org/pypi/sqlitedict", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/piskvorky/sqlitedict", "keywords": "sqlite,persistent dict,multithreaded", "license": "Apache 2.0", "maintainer": "Radim Rehurek", "maintainer_email": "me@radimrehurek.com", "name": "sqlitedict", "package_url": "https://pypi.org/project/sqlitedict/", "platform": "any", "project_url": "https://pypi.org/project/sqlitedict/", "project_urls": { "Download": "http://pypi.python.org/pypi/sqlitedict", "Homepage": "https://github.com/piskvorky/sqlitedict" }, "release_url": "https://pypi.org/project/sqlitedict/1.6.0/", "requires_dist": null, "requires_python": "", "summary": "Persistent dict in Python, backed up by sqlite3 and pickle, multithread-safe.", "version": "1.6.0" }, "last_serial": 5118176, "releases": { "1.0": [], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d7949faf05edfd2737c6dc3190eb8735", "sha256": "6f5c78b5de8312113eec71961485e62e8e522cbf4e7f9fb9fee0e62b473c1f08" }, "downloads": -1, "filename": "sqlitedict-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d7949faf05edfd2737c6dc3190eb8735", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4911, "upload_time": "2011-07-19T17:18:01", "url": "https://files.pythonhosted.org/packages/cf/24/03a31e49b521ae6b26df689a3a1a8c66b26f277dbf86a394292bdb89895d/sqlitedict-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "da5e27d85bc05a00eee9df87f17d4001", "sha256": "dd1b45af88898c63ddbe509acf258eba0ce04d80bd255c79cff4c2eccc63f526" }, "downloads": -1, "filename": "sqlitedict-1.0.2.tar.gz", "has_sig": false, "md5_digest": "da5e27d85bc05a00eee9df87f17d4001", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4936, "upload_time": "2011-07-25T04:03:25", "url": "https://files.pythonhosted.org/packages/df/42/a84f3dc9e5577b345c745fc5285077a8551debefeef8c91ae4c9bfc48bc7/sqlitedict-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8ff2b84426b39b9c1fe6d933d8641ad9", "sha256": "bc765050efc6fb49eb1e7fd049d63f9dbe96aa8be001a48d3a491e22efeaf1b3" }, "downloads": -1, "filename": "sqlitedict-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8ff2b84426b39b9c1fe6d933d8641ad9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5198, "upload_time": "2011-08-14T21:07:45", "url": "https://files.pythonhosted.org/packages/fc/28/1ef850768431b23b0d2f66307c1e0729b6e8c40a6f8e848f293adb8d6425/sqlitedict-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "e9c44964612c86e2e131b77168a4dc77", "sha256": "3937f2c02a6c47493c6b81c6177b9b7ee7026edf37f13fcf846138c2e6953604" }, "downloads": -1, "filename": "sqlitedict-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e9c44964612c86e2e131b77168a4dc77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5469, "upload_time": "2011-08-23T18:11:00", "url": "https://files.pythonhosted.org/packages/b4/9b/a3b2d005103b5d8c77f0d97de92e894658898d66b64de5a8bde400e632c7/sqlitedict-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "72fcc8a7f973d5b2ec4de051d9e0b237", "sha256": "5de076e55ddf6119c3c9c3c65782970c8b7e68ce644f11f97d09dbe8489e7e90" }, "downloads": -1, "filename": "sqlitedict-1.0.5.tar.gz", "has_sig": false, "md5_digest": "72fcc8a7f973d5b2ec4de051d9e0b237", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5482, "upload_time": "2011-09-07T22:17:18", "url": "https://files.pythonhosted.org/packages/bb/ba/3a07fdebb22e455ec2720313a27414f13a2fdddf45dff3ae66d0b219f22e/sqlitedict-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "fbbda38d1f2615f3d86ad8fc45fd6c86", "sha256": "01896bfe51547951a2a6dd572e648daeedae542c9c936fa5d7d8d57294098991" }, "downloads": -1, "filename": "sqlitedict-1.0.6.tar.gz", "has_sig": false, "md5_digest": "fbbda38d1f2615f3d86ad8fc45fd6c86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5525, "upload_time": "2011-10-05T12:53:32", "url": "https://files.pythonhosted.org/packages/bc/56/81c12cd3f5a7f65ed7c61c48325f15ab16531e60d39fec1b5bd4692c5060/sqlitedict-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "79ffcf768be32462a966f9a4288e1209", "sha256": "6feb2fccefe3833cda43f1dfbdd80f9973cd8c7900a93cfbd793591776ae7ce0" }, "downloads": -1, "filename": "sqlitedict-1.0.7.tar.gz", "has_sig": false, "md5_digest": "79ffcf768be32462a966f9a4288e1209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5710, "upload_time": "2011-10-10T13:51:41", "url": "https://files.pythonhosted.org/packages/b9/fb/960b7bc497475e9655295151a87a6b26b7b0c770c51e38eae0e77444b730/sqlitedict-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "fd5fb6016147c8da412b4e9866ef210f", "sha256": "f63c97356e01ebad70d3225d0d4cfe335af32e3861cacf7fb6d577764ec077c9" }, "downloads": -1, "filename": "sqlitedict-1.0.8.tar.gz", "has_sig": false, "md5_digest": "fd5fb6016147c8da412b4e9866ef210f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5839, "upload_time": "2011-12-02T04:58:42", "url": "https://files.pythonhosted.org/packages/0d/44/981822b6ed06834706af3d9d254290fcb1d1756c234a4d8ca2355787dc03/sqlitedict-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "f2bb70ac43bc1b43c6703c8b876d86fe", "sha256": "2e8dd044477100138b2d1a887c737d4f768e55f04a621fe799a2f2900766cdd6" }, "downloads": -1, "filename": "sqlitedict-1.0.9.tar.gz", "has_sig": false, "md5_digest": "f2bb70ac43bc1b43c6703c8b876d86fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5868, "upload_time": "2013-01-19T13:34:35", "url": "https://files.pythonhosted.org/packages/d8/4e/806af2ccf07d3a07ebf636b8b3f36274c0c02be11fefdc8241ac4cffbe16/sqlitedict-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "85a269160fb6d49e08f09b75f2ae0d74", "sha256": "b80887023b8a411e40a8f231d3649e376fc7dd0663a1bdaa17a568a97907d5f0" }, "downloads": -1, "filename": "sqlitedict-1.1.0.tar.gz", "has_sig": false, "md5_digest": "85a269160fb6d49e08f09b75f2ae0d74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5972, "upload_time": "2014-06-01T10:51:56", "url": "https://files.pythonhosted.org/packages/44/58/2f1e1771cbaec51d77d55da57f1c58045e7541fdb749293d59f3cad019a0/sqlitedict-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d9862ee245a92794c4f7b0aa3d6e5aeb", "sha256": "cc1b3b23f280d1bf7afa61378023744a8d677b9a0ef670a4b02b880dcb55e875" }, "downloads": -1, "filename": "sqlitedict-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d9862ee245a92794c4f7b0aa3d6e5aeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6494, "upload_time": "2015-02-07T10:32:30", "url": "https://files.pythonhosted.org/packages/e4/fe/d837618b1e9e6ad044444164f907c402ccae1b8f95b7923a922276d88072/sqlitedict-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8b52931987006ff02f3b4f74b776407a", "sha256": "4ee9d0569cf9e32b10b5d596054956bc35e3f8bac9240d39612e692cf15d0d13" }, "downloads": -1, "filename": "sqlitedict-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8b52931987006ff02f3b4f74b776407a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20019, "upload_time": "2015-05-05T16:12:01", "url": "https://files.pythonhosted.org/packages/fd/3b/7c736187b2359a03f02b60726bd2b9aaa7ce60830da65a6a0c035e0af767/sqlitedict-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "be1d007e452050569a7ec82d877cfb64", "sha256": "c98acde171eeeb5630ca16f0f384eb0b844feba30526929370b116ef7f60b2e7" }, "downloads": -1, "filename": "sqlitedict-1.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "be1d007e452050569a7ec82d877cfb64", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12232, "upload_time": "2015-09-02T14:54:42", "url": "https://files.pythonhosted.org/packages/c8/56/6d3b7e929a8ba07d5ddb14b7e82e5066e769911a11d7ef54d06d0f6908d3/sqlitedict-1.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb1be78492ba78b66f41d46cf2d37769", "sha256": "29e48776d8c6baa4cfbc84ccc4d6562c4324a42a151df89c3939ddc2f614b057" }, "downloads": -1, "filename": "sqlitedict-1.4.0.tar.gz", "has_sig": false, "md5_digest": "bb1be78492ba78b66f41d46cf2d37769", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13147, "upload_time": "2015-09-02T14:54:37", "url": "https://files.pythonhosted.org/packages/65/0f/d3652b814e694a0313af62d6c38e22633021bd28fc09c4e9a45b01b3f9ad/sqlitedict-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "17794918ec3f73261c9e117629de2fff", "sha256": "265e5d99428c6abba08783cd9f0451914702a817e1285c35e17a57025743c0f9" }, "downloads": -1, "filename": "sqlitedict-1.4.1.tar.gz", "has_sig": false, "md5_digest": "17794918ec3f73261c9e117629de2fff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21481, "upload_time": "2016-05-16T05:41:20", "url": "https://files.pythonhosted.org/packages/6d/2b/8379a1e82392dd6adfda44c49a96ddc16d89a9033b1358c30aa1864c3398/sqlitedict-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "87c2e5d5144dd16e6b962dd7b8d0557b", "sha256": "e7bdcf03ec46157375aad095a061632f70922c0b000e90608e1ea9c6bb938dc1" }, "downloads": -1, "filename": "sqlitedict-1.4.2.tar.gz", "has_sig": false, "md5_digest": "87c2e5d5144dd16e6b962dd7b8d0557b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13676, "upload_time": "2016-08-26T17:07:22", "url": "https://files.pythonhosted.org/packages/87/8b/e4aeac8b5341c8e691ada71c8005dbdd041897b049d41415b68ed0bc2a67/sqlitedict-1.4.2.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "c42d218e2cbea0d7ae1188eefc08421a", "sha256": "76ea12115d3961e2aea2f277a785ac9df3d463d50cc0b02afdcf1ea6ec833f94" }, "downloads": -1, "filename": "sqlitedict-1.5.0.tar.gz", "has_sig": false, "md5_digest": "c42d218e2cbea0d7ae1188eefc08421a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24267, "upload_time": "2017-02-14T00:17:17", "url": "https://files.pythonhosted.org/packages/7e/ab/e8af7777c1b7daafc9b7594dc17872b72d64cc8524ecd4e7c1f261918e72/sqlitedict-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "476d4ede6c49e98c36dfb8aef78ae3ef", "sha256": "483d6a063c4648dec68d413eb29df74399661f8541dcb3ee926d28fc2f82cb24" }, "downloads": -1, "filename": "sqlitedict-1.6.0.tar.gz", "has_sig": false, "md5_digest": "476d4ede6c49e98c36dfb8aef78ae3ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29220, "upload_time": "2018-09-18T06:39:48", "url": "https://files.pythonhosted.org/packages/0f/1c/c757b93147a219cf1e25cef7e1ad9b595b7f802159493c45ce116521caff/sqlitedict-1.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "476d4ede6c49e98c36dfb8aef78ae3ef", "sha256": "483d6a063c4648dec68d413eb29df74399661f8541dcb3ee926d28fc2f82cb24" }, "downloads": -1, "filename": "sqlitedict-1.6.0.tar.gz", "has_sig": false, "md5_digest": "476d4ede6c49e98c36dfb8aef78ae3ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29220, "upload_time": "2018-09-18T06:39:48", "url": "https://files.pythonhosted.org/packages/0f/1c/c757b93147a219cf1e25cef7e1ad9b595b7f802159493c45ce116521caff/sqlitedict-1.6.0.tar.gz" } ] }