{ "info": { "author": "Robert Niederreiter", "author_email": "rnix@squarewave.at", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "General Caching API\n===================\n\nThis package is designed to be used by applications which require different\nkinds of caching flavour. This is abstracted due to the interfaces\n``ICacheProvider`` and ``ICacheManager``. ICacheProvider takes care of the\nconcrete cache implementation, ICacheManager is the read/write interface.\n\nThe convention is to adapt a concrete ICacheProvider implementation\n\n.. code-block:: python\n\n from bda.cache import ICacheManager\n from bda.cache import Memcached\n\n provider = Memcached(['127.0.0.1:11211'])\n manager = ICacheManager(provider)\n\nWe can ask the manager for data inside the cache\n\n.. code-block:: python\n\n data = manager.get('somekey', force_reload=False)\n\nIf ``force_reload`` is set to True, try to delete data with key from cache and\nreturn None.\n\nWe're also able to manipulate the cache's data (some restrictions my result out\nof backend not providing them)\n\n.. code-block:: python\n\n manager.set('somekey', object())\n\nThere exist a convenience to use some API's and cache it's results all at once.\n\n.. code-block:: python\n\n data = manager.getData(func, key, force_reload=False, args=[], kwargs={})\n\nFirst the data for ``key`` is looked up inside the cache provider. If not found\nthere or if ``force_reload`` is set to True, call given ``func`` . The return\nvalue of this function will be stored in the cache provider. ``args`` and\n``kwargs`` are passed as parameters to given function if it's call is required.\n\nYou might ask why all this is done due to 2 seperate interfaces...\n\nSome usecase might require different cache providers i.e. for different payload\nsize. This way you can implement any other cache provider usage as well due to\nthe cache manager interface.\n\n\nDependencies\n------------\n\n- ``zope.interface``\n\n- ``zope.component``\n\n- ``bda.cache.fscache.FSCache`` recommends that availability of ``cpickle``\n\n- ``bda.cache.memcached.Memcached`` requires ``python-memcached``\n\n\nNotes\n-----\n\nIf you're interessted to contribute; Feel free but keep in mind that this code\nis planned to be released under a BSD like licence in future.\nChanges\n-------\n\n1.3.0 (2019-02-05)\n~~~~~~~~~~~~~~~~~~\n\n- Python 3 comaptibility [reinhardt]\n\n- Code style (black/isort) [jensens]\n\n1.2.0 (2017-10-19)\n~~~~~~~~~~~~~~~~~~\n\n- Change to use libmc or pylibmc when available\n\n- Add option to require with bda.cache[pylibmc] or bda.cache[libmc]\n\n\n1.1.2 (2009-02-10)\n~~~~~~~~~~~~~~~~~~\n\n- remove legacy code\n\n\n1.1.1 (2009-02-10)\n~~~~~~~~~~~~~~~~~~\n\n- bugfix in zcml configuration.\n\n\n1.1 (2009-02-09)\n~~~~~~~~~~~~~~~~\n\n- Cache Managers are now adapters.\n\n- Implement memcached server support\n\n- deprecate the default CacheManager\n\n- Fix tests for FSCache\n\n\n1.0\n~~~\n\n- Initial work", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://svn.plone.org/svn/collective/bda.cache", "keywords": "caching memcached fscache zope zca", "license": "GPL: GNU General Public Licence", "maintainer": "", "maintainer_email": "", "name": "bda.cache", "package_url": "https://pypi.org/project/bda.cache/", "platform": "", "project_url": "https://pypi.org/project/bda.cache/", "project_urls": { "Homepage": "https://svn.plone.org/svn/collective/bda.cache" }, "release_url": "https://pypi.org/project/bda.cache/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "Simple caching infrastructure.", "version": "1.3.0" }, "last_serial": 4783902, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "63aa97c100d2d4f243877f2ac48c16e1", "sha256": "73c597b623ada42dcf82fa969abfe9c4a57694ecaed53e5251b53afde8d38ec4" }, "downloads": -1, "filename": "bda.cache-1.1.tar.gz", "has_sig": false, "md5_digest": "63aa97c100d2d4f243877f2ac48c16e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12275, "upload_time": "2009-02-09T23:40:42", "url": "https://files.pythonhosted.org/packages/27/10/ad62a1886b6ac66dc5026a745e96ab29f5ad73c858e51bdda9673ad5d1f1/bda.cache-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a345ae535056bc77160dac7285d59a37", "sha256": "3600dbdb3b346114ff8d8a67022aece5ef0a7baed357d83adefbfb359ff413ec" }, "downloads": -1, "filename": "bda.cache-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a345ae535056bc77160dac7285d59a37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12359, "upload_time": "2009-02-10T14:37:13", "url": "https://files.pythonhosted.org/packages/e1/78/9d174f6fe9d49251cb4243ee7cdd4383e43f4135394da419cc3a1777bb7a/bda.cache-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "c804181d604a3097e9a4ab50d17ee62a", "sha256": "4e508bcafa2491aa4aac3d3a726a7fcf7559758de135dcfcd3c5caf964bba4e7" }, "downloads": -1, "filename": "bda.cache-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c804181d604a3097e9a4ab50d17ee62a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12272, "upload_time": "2009-02-10T21:48:42", "url": "https://files.pythonhosted.org/packages/39/a7/cdc530fc9ad034363f9146756a4cc0bf6e580db5e35725af8d49d6d5f3f6/bda.cache-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "404a7bc6cec637b1369e20d61861a360", "sha256": "9b8ef7fd0703d211d36b15b3c32a739855cf332df1e0b813a9cd804e587f8e2c" }, "downloads": -1, "filename": "bda.cache-1.1.3.tar.gz", "has_sig": false, "md5_digest": "404a7bc6cec637b1369e20d61861a360", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12672, "upload_time": "2009-12-16T14:17:36", "url": "https://files.pythonhosted.org/packages/e9/2e/c2f3a853166493d1f04fd0ed917d321fb9cbf4a485215cfc4ba28a2a4ebc/bda.cache-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d8912d04600052a0b2e78708f12a5b28", "sha256": "f5d988dcd9075e8181ad85b8ea6ed48e2930a249efc786d896c3642d13dc213e" }, "downloads": -1, "filename": "bda.cache-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d8912d04600052a0b2e78708f12a5b28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8179, "upload_time": "2017-10-19T09:24:59", "url": "https://files.pythonhosted.org/packages/bd/d9/0d7c63fda4be479390f68de68c02eda294b60a13247a034bb282eaaa4987/bda.cache-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "7a15d394b07b051db09127bb247a553d", "sha256": "969424ee1cd8b5fe2a159cb72598b8b711eb0b924e688b0b17a3716cec56cbf1" }, "downloads": -1, "filename": "bda.cache-1.3.0.tar.gz", "has_sig": false, "md5_digest": "7a15d394b07b051db09127bb247a553d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11120, "upload_time": "2019-02-05T21:23:07", "url": "https://files.pythonhosted.org/packages/34/21/1fb049d0dc291efb927d1df0ff9c345fd0c529f2e4f114a5d42ec501a636/bda.cache-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7a15d394b07b051db09127bb247a553d", "sha256": "969424ee1cd8b5fe2a159cb72598b8b711eb0b924e688b0b17a3716cec56cbf1" }, "downloads": -1, "filename": "bda.cache-1.3.0.tar.gz", "has_sig": false, "md5_digest": "7a15d394b07b051db09127bb247a553d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11120, "upload_time": "2019-02-05T21:23:07", "url": "https://files.pythonhosted.org/packages/34/21/1fb049d0dc291efb927d1df0ff9c345fd0c529f2e4f114a5d42ec501a636/bda.cache-1.3.0.tar.gz" } ] }