{ "info": { "author": "Zeit Online", "author_email": "zon-backend@zeit.de", "bugtrack_url": null, "classifiers": [ "Environment :: Plugins", "Framework :: Paste", "Framework :: Pyramid", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "======================\npyramid_dogpile_cache2\n======================\n\n.. image:: https://travis-ci.org/ZeitOnline/pyramid_dogpile_cache2.png\n :target: https://travis-ci.org/ZeitOnline/pyramid_dogpile_cache2\n\nSmall `dogpile.cache`_ configuration and access package. It is inspired by\n`pyramid_dogpile_cache`_, which we found unusable since it insists on\nconfiguring the cache regions in its ``get_region()`` API -- but if you want to\nuse the ``@cache_on_arguments`` decorator, that is at **import time**, where no\nconfiguration exists yet. Our package wants to perform the configuration during\nthe WSGI application setup instead.\n\nThis package is compatible with Python version 2.7 and 3 (>=3.4).\n\n.. _`dogpile.cache`: https://pypi.python.org/pypi/dogpile.cache\n.. _`pyramid_dogpile_cache`: https://pypi.python.org/pypi/pyramid_dogpile_cache\n\n\nUsage\n=====\n\nThe package offers only one API function; it returns a dogpile.cache\n``CacheRegion``::\n\n from pyramid_dogpile_cache import get_region\n region = get_region('foo')\n\nAs said above, this is safe to call at import time, so you can go on like this::\n\n @region.cache_on_arguments()\n def expensive_function(one, two, three):\n # compute stuff\n\n\nSetup / Pyramid\n===============\n\nInclude the package, either in code::\n\n config = Configurator(...)\n config.include('pyramid_dogpile_cache2')\n\nor in the ini file::\n\n pyramid.includes = pyramid_dogpile_cache2\n\n\nSetup / Paste\n=============\n\nFor non-Pyramid WSGI applications that use a paste.ini file, you need to call::\n\n def my_paste_app_factory(global_conf, **local_conf):\n pyramid_dogpile_cache2.configure_dogpile_cache(local_conf)\n return my_wsgi_callable\n\n\nSettings\n========\n\nThe settings support of pyramid_dogpile_cache unfortunately is quite incomplete\n(e.g. it does not even convert ``expiration_time`` to ``int``). The support of\nthis packages is a little better, but still very much incomplete: we support\nthe in-memory and memcached backends (pylibmc to be precise), and only the same\nbackend and configuration for all cache regions.\n\nThe following settings are supported:\n\n``dogpile_cache.regions``\n\n A list of region names that should be configured (separated by either\n spaces or commas).\n\n``dogpile_cache.backend``\n\n The default backend for cache regions (e.g. ``'dogpile.cache.memory'``,\n ``dogpile.cache.pylibmc``, etc.).\n\n``dogpile_cache.REGION.backend``\n\n Backend for the given region.\n\n``dogpile_cache.expiration_time``\n\n The default expiration time. Can be overridden for individual regions (in\n seconds).\n\n``dogpile_cache.REGION.expiration_time``\n\n The expiration time for the given cache region (in seconds).\n\n``dogpile_cache.arguments.*``\n\n Defaults for backend arguments. Can be overridden for individual regions.\n\n``dogpile_cache.REGION.arguments.*``\n\n Backend arguments for the given cache region.\n\nBackend arguments work only for strings, thus we support some custom treatment:\n\n``dogpile_cache.pylibmc_url``\n\n A list of memcached servers, separated by ``;``.\n\n``dogpile_cache.pylibmc_behavior.*``\n\n Set `pylibmc behaviours`_, see `coerce_memached_behaviors`_ for which\n subkeys are supported.\n\n\n.. _`pylibmc behaviours`: http://sendapatch.se/projects/pylibmc/behaviors.html\n.. _`coerce_memached_behaviors`: https://github.com/bbangert/beaker/blob/master/beaker/util.py#L343\n\nNote: As opposed to pyramid_dogpile_cache we don't support overriding the\nkey_generator or key_mangler functions yet; we preconfigure them with enhanced\nversions of dogpile.cache that support non-ascii function arguments and\ngenerating cache keys for methods that include the class name.\n\n\n=====================================\nDeveloping pyramid_dogpile_cache2\n=====================================\n\n:Author:\n `Zeit Online `_\n\n:PyPI page:\n https://pypi.python.org/pypi/pyramid_dogpile_cache2\n\n:Issues:\n `report by e-mail `_\n\n:Source code:\n https://github.com/zeitonline/pyramid_dogpile_cache2\n\n:Current change log:\n https://github.com/zeitonline/pyramid_dogpile_cache2/blob/master/CHANGES.txt\n\n\n=====================================\nChange log for pyramid_dogpile_cache2\n=====================================\n\n1.0.5 (2018-12-14)\n==================\n\n- Clarify Python-3 compatiblity (it's >=3.4, not _just_ 3.4)\n\n\n1.0.4 (2018-11-21)\n==================\n\n- Support caching functions with type annotations on Python 3\n (see PR #5).\n\n\n1.0.3 (2017-02-14)\n==================\n\n- Fix packaging issue (see PR #2).\n\n\n1.0.2 (2016-08-01)\n==================\n\n- Update API compatibility to dogpile.cache-0.6.0.\n\n\n1.0.1 (2016-01-20)\n==================\n\n- Actually include the class name in the cache key for methods.\n\n\n1.0.0 (2016-01-19)\n==================\n\n- Initial release.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zeitonline/pyramid_dogpile_cache2", "keywords": "pyramid dogpile.cache", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pyramid-dogpile-cache2", "package_url": "https://pypi.org/project/pyramid-dogpile-cache2/", "platform": "", "project_url": "https://pypi.org/project/pyramid-dogpile-cache2/", "project_urls": { "Homepage": "https://github.com/zeitonline/pyramid_dogpile_cache2" }, "release_url": "https://pypi.org/project/pyramid-dogpile-cache2/1.0.5/", "requires_dist": null, "requires_python": "", "summary": "Integrates dogpile.cache for Pyramid", "version": "1.0.5" }, "last_serial": 4599168, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "ecf82f50aa7190393829158a4e7fe0e5", "sha256": "42a1f2d97eba01326d8bd78211e43cd0d4c8180ff2988eb22f017d5aac1ea429" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ecf82f50aa7190393829158a4e7fe0e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7085, "upload_time": "2016-01-19T15:35:58", "url": "https://files.pythonhosted.org/packages/db/43/92517859dd77882234a2cc6232b194b7fdc1e592b50a450cbf285f7fe916/pyramid_dogpile_cache2-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8dd95c34fd7bc1527a41df05b89cd33b", "sha256": "1cd314fb5d1f755106fb7039812b059bba49aad8cb54b29486cd6e89c1262dc4" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.1.tar.gz", "has_sig": false, "md5_digest": "8dd95c34fd7bc1527a41df05b89cd33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7258, "upload_time": "2016-01-20T11:19:44", "url": "https://files.pythonhosted.org/packages/9a/d7/9027bdd27bfba2b5d0201803362c52631b7b3d4765245b1e0a65cbaaf737/pyramid_dogpile_cache2-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "c6af09a659937040560716515c11927a", "sha256": "560a1c1162dced1a82a214655590f07b12f36827db0a04c7e8a4af9bbb89be19" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.2.tar.gz", "has_sig": false, "md5_digest": "c6af09a659937040560716515c11927a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7481, "upload_time": "2016-08-01T07:01:12", "url": "https://files.pythonhosted.org/packages/91/c4/ae75ab94b66c79c0e29e28828f25308d14d74b267631750948a886407f7d/pyramid_dogpile_cache2-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "89de1c10678a5671e3011ab543afc640", "sha256": "5a747ef0b505be06749ea53b6e8cc8d6f563ac35a70bffaee1b31e3e4eb5366b" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.3.tar.gz", "has_sig": false, "md5_digest": "89de1c10678a5671e3011ab543afc640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7489, "upload_time": "2017-02-14T07:44:08", "url": "https://files.pythonhosted.org/packages/18/e0/391e0ac077683dd7b0c3096dfd05722974053a53dc91f938c7da44f601ff/pyramid_dogpile_cache2-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "f6550c55507c0f382d31a256e95f821f", "sha256": "48f0c19d012c1ff0323f35eeb8275f8f062769b544151c6e065dbb8872e8eba3" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.4.tar.gz", "has_sig": false, "md5_digest": "f6550c55507c0f382d31a256e95f821f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9319, "upload_time": "2018-11-21T07:39:51", "url": "https://files.pythonhosted.org/packages/5c/c4/c5b51a0ac03f6467b2f60dbce3fbd1e3b9f8e84fa041621183e7d4dbce25/pyramid_dogpile_cache2-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "d0875240b366a3900673fa40ff606968", "sha256": "7d66d214b878c5cc6e6a1cda8bc71f833d8ea654553759428fdf9abc2e7dd3ff" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.5.tar.gz", "has_sig": false, "md5_digest": "d0875240b366a3900673fa40ff606968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9379, "upload_time": "2018-12-14T12:33:30", "url": "https://files.pythonhosted.org/packages/ca/32/11b733aa70721fcb5a47311636d5e6f6d41818ec7f4e8a53469182528642/pyramid_dogpile_cache2-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d0875240b366a3900673fa40ff606968", "sha256": "7d66d214b878c5cc6e6a1cda8bc71f833d8ea654553759428fdf9abc2e7dd3ff" }, "downloads": -1, "filename": "pyramid_dogpile_cache2-1.0.5.tar.gz", "has_sig": false, "md5_digest": "d0875240b366a3900673fa40ff606968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9379, "upload_time": "2018-12-14T12:33:30", "url": "https://files.pythonhosted.org/packages/ca/32/11b733aa70721fcb5a47311636d5e6f6d41818ec7f4e8a53469182528642/pyramid_dogpile_cache2-1.0.5.tar.gz" } ] }