{ "info": { "author": "Adri\u00e1n P\u00e9rez de Castro", "author_email": "aperez@igalia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "==========\n Indicium\n==========\n\n.. image:: https://readthedocs.org/projects/indicium/badge/?version=latest\n :target: https://indicium.readthedocs.org/en/latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/travis/aperezdc/indicium.svg?style=flat\n :target: https://travis-ci.org/aperezdc/indicium\n :alt: Build Status\n\n.. image:: https://img.shields.io/coveralls/aperezdc/indicium/master.svg?style=flat\n :target: https://coveralls.io/r/aperezdc/indicium?branch=master\n :alt: Code Coverage\n\nPythonic, unified API to multiple key-value stores.\n\nThis base package includes:\n\n* Abstract definition of the ``Store`` API, which all storage systems follow.\n* In-memory `caching of data of values`__ from a store using LRU eviction.\n* In-memory `transient storage`__ backed by Python dictionaries.\n* Simple `filesystem-based storage`__ using directories and plain files.\n* Adaptors for `transparent (de)serialization`__ of stored values.\n\n__ http://indicium.readthedocs.org/en/latest/apiref.html#indicium.cache.LRUCache\n__ http://indicium.readthedocs.org/en/latest/apiref.html#indicium.base.DictStore\n__ http://indicium.readthedocs.org/en/latest/apiref.html#indicium.fs.FSStore\n__ http://indicium.readthedocs.org/en/latest/apiref.html#indicium.base.Serializer\n\nSupport for additional storage system is by packages distributed separately:\n\n* `indicium-git `_.\n* `indicium-ldap `_.\n* ``indicium-leveldb`` (planned, not yet available).\n* ``indicium-memcache`` (planned, not yet available).\n\n\nUsage\n=====\n\nCreate a ``Store`` which saves content on-disk, using JSON for serialization,\nand store somwthing that resembles an user account:\n\n.. code-block:: python\n\n from indicium.base import Serializer\n import json\n\n filestore = Serializer(FSStore(\"./data\", extension=\".json\"), pickle)\n filestore.put(\"/user/jdoe\", { \"id\": \"jdoe\", \"name\": \"John Doe\",\n \"email\": \"j@doe.org\", \"password\": \"supersekrit\" })\n account = filestore.get(\"/user/jdoe\")\n assert account[\"email\"] == \"j@doe.org\"\n\nThe ``./data/user/jdoe.json`` will contain the account data in JSON format.\nThe following adds an in-memory cache to the above store, which holds up to\n100 elements, to speed up access to data:\n\n.. code-block:: python\n\n from indicium.cache import LRUCache\n\n cachedstore = LRUCache(filestore, size=100)\n account = cachedstore.get(\"/user/jdoe\")\n assert account[\"email\"] == \"j@doe.org\"\n\nOnce you have a collection of objects, you can run use queries to retrieve all\nthe elements whose keys match a certain pattern. For example, this obtains the\nuser accounts with an identifier starting with the letter ``j`` from the store\nabove:\n\n.. code-block:: python\n\n for key, account cachedstore.query(\"/user/j*\"):\n print(account[\"id\"], account[\"name\"])\n\n\nInstallation\n============\n\nAll stable releases are uploaded to `PyPI `_, so you\ncan install them and upgrade using ``pip``::\n\n pip install indicium\n\nAlternatively, you can install the latest development code \u2014at your own risk\u2014\ndirectly from the Git repository::\n\n pip install git://github.com/aperezdc/indicium\n\n\nDevelopment\n===========\n\nIf you want to contribute, please use the usual GitHub workflow:\n\n1. Clone the repository.\n2. Hack on your clone.\n3. Send a pull request for review.\n\nIf you do not have programming skills, you can still contribute by `reporting\nissues `__ that you may\nencounter. Contributions to the documentation are very welcome, too!\n\n\nInspiration\n===========\n\n* `Park `_\n* `datastore `_ (unfortunately, it\n does not support Python 3.x).\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aperezdc/indicium", "keywords": null, "license": "GPLv3,Apache-2.0", "maintainer": null, "maintainer_email": null, "name": "indicium", "package_url": "https://pypi.org/project/indicium/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/indicium/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aperezdc/indicium" }, "release_url": "https://pypi.org/project/indicium/0.1.0a3/", "requires_dist": null, "requires_python": null, "summary": "Generic interface to key-value stores", "version": "0.1.0a3" }, "last_serial": 2033845, "releases": { "0.1.0a0": [ { "comment_text": "", "digests": { "md5": "dd96c03cb6acdf3cfacfc9f63366400d", "sha256": "f0fde00b2b7371b8117dc09cc3e7271d85e74365f0736a22b46f5e833f830563" }, "downloads": -1, "filename": "indicium-0.1.0a0.tar.gz", "has_sig": false, "md5_digest": "dd96c03cb6acdf3cfacfc9f63366400d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10085, "upload_time": "2016-03-18T15:05:54", "url": "https://files.pythonhosted.org/packages/c4/1a/3f616e0057adf567eb89fefb69f51f7ff632ac4a5d07f35cebef9052204d/indicium-0.1.0a0.tar.gz" } ], "0.1.0a1": [ { "comment_text": "", "digests": { "md5": "ae4df941e92982dbc1f9272b90f31eb3", "sha256": "9e0fc06aff26380593ba51b2c567394e85fc6441a6499093eda5d828fa0d0de5" }, "downloads": -1, "filename": "indicium-0.1.0a1.tar.gz", "has_sig": false, "md5_digest": "ae4df941e92982dbc1f9272b90f31eb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11211, "upload_time": "2016-03-18T21:34:53", "url": "https://files.pythonhosted.org/packages/67/37/27117eee19a1fbd2caa50aab7afa6e6fc39dd7029e76e8f21fd52474d7d1/indicium-0.1.0a1.tar.gz" } ], "0.1.0a2": [ { "comment_text": "", "digests": { "md5": "846ea747219bcb692faca237cc6f3d76", "sha256": "b0e9320a7d982e5a3d2f9e68448596d0cb6b7f1763140d50e273a27d9bc6c0e9" }, "downloads": -1, "filename": "indicium-0.1.0a2.tar.gz", "has_sig": false, "md5_digest": "846ea747219bcb692faca237cc6f3d76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11256, "upload_time": "2016-03-18T22:07:47", "url": "https://files.pythonhosted.org/packages/8d/b8/9abb852786ffa4d7600d1e620fc269b15a3e16bb4187fc75ff2a0cec2452/indicium-0.1.0a2.tar.gz" } ], "0.1.0a3": [ { "comment_text": "", "digests": { "md5": "11177273b8fd19abef5a12d3f8a0ef4d", "sha256": "294e491e93e853dd4bc1358042be5f863c20b2c1d2c8ed7690095f22256200d0" }, "downloads": -1, "filename": "indicium-0.1.0a3.tar.gz", "has_sig": false, "md5_digest": "11177273b8fd19abef5a12d3f8a0ef4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11274, "upload_time": "2016-03-29T13:28:41", "url": "https://files.pythonhosted.org/packages/fd/ff/cb7ed6c19be11d39644af4f9ae2235c3ccef1187ef0d4d80760404fd8be1/indicium-0.1.0a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "11177273b8fd19abef5a12d3f8a0ef4d", "sha256": "294e491e93e853dd4bc1358042be5f863c20b2c1d2c8ed7690095f22256200d0" }, "downloads": -1, "filename": "indicium-0.1.0a3.tar.gz", "has_sig": false, "md5_digest": "11177273b8fd19abef5a12d3f8a0ef4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11274, "upload_time": "2016-03-29T13:28:41", "url": "https://files.pythonhosted.org/packages/fd/ff/cb7ed6c19be11d39644af4f9ae2235c3ccef1187ef0d4d80760404fd8be1/indicium-0.1.0a3.tar.gz" } ] }