{ "info": { "author": "Jefferson Heard", "author_email": "jheard@teamworks.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "============\nregion_cache\n============\n\n\n.. image:: https://img.shields.io/pypi/v/region_cache.svg\n :target: https://pypi.python.org/pypi/region_cache\n\n.. image:: https://img.shields.io/travis/jheard-tw/region_cache.svg\n :target: https://travis-ci.org/jheard-tw/region_cache\n\n.. image:: https://readthedocs.org/projects/region-cache/badge/?version=latest\n :target: https://region-cache.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n.. image:: https://pyup.io/repos/github/jheard-tw/region_cache/shield.svg\n :target: https://pyup.io/repos/github/jheard-tw/region_cache/\n :alt: Updates\n\n\n\nRegion-based caching for Python/Flask with Redis\n\n\n* Free software: MIT license\n* Documentation: https://region-cache.readthedocs.io.\n\n\nFeatures\n--------\n\nRegion based Flask caching with Redis.\n\nThis module provides high-level nested, region-based caching with Redis. A region is a dot-separated\nnamespace where cache keys and values live. It is implemented as hashes in redis. Parent-child relationships\nare implemented as sets. Timeouts use the EXPIRE command. All work is persisted in redis, and two regions with\nthe same name on two different processes or even different servers will share the same storage.\n\nInvalidation of caches is \"active\", not \"lazy\", so caches are purged immediately upon invalidation, to solve\nthe problem of one process knowing about a cache invalidation and the other not. Cache writes are aggressively\npipelined and transactional, so if two processes write to the same key at the same time, results will not be\ninconsistent.\n\nThe cache is written as a Flask extension, so you can use init_app with a valid flask app to initialize it.\nSimply set the CACHE_REDIS_URL setting in the config.\n\nExamples:\n---------\n\nUsing the region as a context manager treats everything in the context manager as a single transaction::\n\n\n with region('abc.xyz') as r:\n x in r # test for presence\n r[x] = 100 # get or KeyError\n x = r[x] # set\n del r[x] # remove\n\nBind to blinker signals, so the cache is purged declaratively::\n\n region('abc.xyz').invalidate_on(\n blinker.signal('a'),\n blinker.signal('b'),\n blinker.signal('c'),\n blinker.signal('d'),\n )\n\n\nNest regions. If you invalidate the parent region, all the children will also be invalidated. This is recursive, so\nsub-sub-sub regions will be correctly invalidated as well::\n\n\n region('abc').region('xyz') # subregion\n region('abc').invalidate() # invalidate abc AND xyz\n\n\nThe default serializers is \"pickle\", but you can supply any serializer that exposes a loads and dumps, and individual\nregions can be configured differently. Children inherit the settings of their parents.\n\nFinally, timeouts are supported, and by default the timeout refreshes itself every time you write to the cache\nSee the region() function for more detail on how to configure it.\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.1.0 (2018-05-04)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jheard-tw/region_cache", "keywords": "region_cache", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "region-cache", "package_url": "https://pypi.org/project/region-cache/", "platform": "", "project_url": "https://pypi.org/project/region-cache/", "project_urls": { "Homepage": "https://github.com/jheard-tw/region_cache" }, "release_url": "https://pypi.org/project/region-cache/0.3.1/", "requires_dist": [ "blinker", "redis", "hiredis" ], "requires_python": "", "summary": "Region-based caching for Python/Flask with Redis", "version": "0.3.1" }, "last_serial": 5327020, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "52e08193153309d4251d3f8a9b0f1605", "sha256": "6fedfc098f8ea6d1ac1d45a7aec1bd2506d633f947f6abeba0a1d7e7d818b63c" }, "downloads": -1, "filename": "region_cache-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52e08193153309d4251d3f8a9b0f1605", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7225, "upload_time": "2018-05-04T04:42:39", "url": "https://files.pythonhosted.org/packages/32/8d/8808b0de166507b83920dc71ca414a56e3ad466c023e3d1369d39b7f2838/region_cache-0.1.0-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "538edbb974db079478271c53fb89e7a8", "sha256": "6d908c4ab1cdb00ce59102950a74cc5303590a576660631c2b5674b2c03e9c46" }, "downloads": -1, "filename": "region_cache-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "538edbb974db079478271c53fb89e7a8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6815, "upload_time": "2018-05-29T17:05:08", "url": "https://files.pythonhosted.org/packages/a4/fd/de73427a1e3350ec9f924437321d29d7ef234c1964f0626d0263b9d4e676/region_cache-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d3b34d4a671bf1f606f12e420aa3423", "sha256": "3418f46c4f44888738127c79e2ecf5b2cfcf1f9ebe09afafe2ce5781ea004f98" }, "downloads": -1, "filename": "region_cache-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4d3b34d4a671bf1f606f12e420aa3423", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12150, "upload_time": "2018-05-29T17:16:35", "url": "https://files.pythonhosted.org/packages/6e/cd/42c1a48b9b21056afdfd129d9843c931e15ad45e7a664019e06605bf368e/region_cache-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "8f02e421aec9e4cc28a8e031ab13b491", "sha256": "1a6a087f3fb0b96787eb368f324d4d2f5304480e9f25c94593ce167c9bb728fa" }, "downloads": -1, "filename": "region_cache-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8f02e421aec9e4cc28a8e031ab13b491", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12099, "upload_time": "2018-05-31T13:30:15", "url": "https://files.pythonhosted.org/packages/d9/48/3307e1d4bdb201b3aa64af4a95ac71d0e398ac6eac2741fc37c4ab100295/region_cache-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b937d803ee675cc308583a8deab5ede4", "sha256": "25e7345dd14237cb0fe2e9cdeec3233eace36f68626f2c6714ba6eaa1d850c08" }, "downloads": -1, "filename": "region_cache-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b937d803ee675cc308583a8deab5ede4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6744, "upload_time": "2018-09-26T22:15:39", "url": "https://files.pythonhosted.org/packages/db/d1/4bb6b7ad04e982e0d861f4d2cff27efa7721359ccf009fb72d86a96d25d9/region_cache-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de415b463338db41d30882626f7918a0", "sha256": "db6186f04d28a55ceda098348817cc41865823ad7053bb218430103619259710" }, "downloads": -1, "filename": "region_cache-0.1.3.tar.gz", "has_sig": false, "md5_digest": "de415b463338db41d30882626f7918a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12957, "upload_time": "2018-09-26T22:15:41", "url": "https://files.pythonhosted.org/packages/d6/d2/05864cb337f3d8c35bf7bb6bff0eb9d009c02df19feba7a75560b32692aa/region_cache-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "35372e84ef5c1f19dfa188181b4e7ddc", "sha256": "a50eeb0760603235204d3478ca8e6d33420d2a353fa1e71d352b47993c9f2d1b" }, "downloads": -1, "filename": "region_cache-0.1.4.tar.gz", "has_sig": false, "md5_digest": "35372e84ef5c1f19dfa188181b4e7ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12957, "upload_time": "2018-09-26T22:28:26", "url": "https://files.pythonhosted.org/packages/34/14/5ba49fa89c2c3cb67df8a7026912c924e101121a78057c321e387b42b5a7/region_cache-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3552cf8d7b98668a48ec8a4636848f39", "sha256": "66e77d6aaea12901e68133c5d744a918c50e76c1f12f1797a98ac72854d563ca" }, "downloads": -1, "filename": "region_cache-0.1.5.tar.gz", "has_sig": false, "md5_digest": "3552cf8d7b98668a48ec8a4636848f39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13149, "upload_time": "2018-09-28T19:53:19", "url": "https://files.pythonhosted.org/packages/ac/9a/7fc3398b2dc64e471e5b398ddccaf0a08674df3661643166abf8a40a4f36/region_cache-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "fdd8a1034da97ba1d78978e85f86a2c4", "sha256": "2b6c090947da48c6f96a2d63e72337ff454a7c4c3bd8e20682c09efaa5abb23e" }, "downloads": -1, "filename": "region_cache-0.1.6.tar.gz", "has_sig": false, "md5_digest": "fdd8a1034da97ba1d78978e85f86a2c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13156, "upload_time": "2018-10-01T13:18:19", "url": "https://files.pythonhosted.org/packages/18/5e/07d1737acca9a9cd06680cd2488bb4edf7e2b31fe7f4b1b22963759ea92f/region_cache-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b2740de713f6c187cd9d2938bb8754aa", "sha256": "f65e46a3311aabd7b3b14897b63c61d088537c6856fbb1abd9e6d6ffea4abf0e" }, "downloads": -1, "filename": "region_cache-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2740de713f6c187cd9d2938bb8754aa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9586, "upload_time": "2018-11-07T16:24:36", "url": "https://files.pythonhosted.org/packages/b1/71/1688ccaf46fb01494ed873569cecd3955918192034cf83741710fd3ae4a2/region_cache-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a82bd655044aaffbf885ba7a68003f63", "sha256": "89f76e9cf496b5cb9e7325f7983c8d2efef2754b139757babf5e9a089f54c8de" }, "downloads": -1, "filename": "region_cache-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a82bd655044aaffbf885ba7a68003f63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14983, "upload_time": "2018-11-07T16:24:37", "url": "https://files.pythonhosted.org/packages/6f/f5/aba0dff77b2e8f2744d6798b0451645a5b6e420b150ac692753e4c14e384/region_cache-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ee2c47a532364853c0119ef782e1aaec", "sha256": "ef6b5fca9ed0086a97389cdb00f05afa62b2341b8a53dfc5108d7b779476dbb5" }, "downloads": -1, "filename": "region_cache-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee2c47a532364853c0119ef782e1aaec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9738, "upload_time": "2018-11-09T15:03:36", "url": "https://files.pythonhosted.org/packages/ce/8f/08f95b7f980044d360d5c36c8d1866177a1791c1087c6f8a445bc3012215/region_cache-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7ee5af6e2bdba5220e25942ae0934f1", "sha256": "ebeea0a7a7f5adcdf18476b92465d64666e22f15ca2fae4d50a95a3cccb780b6" }, "downloads": -1, "filename": "region_cache-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c7ee5af6e2bdba5220e25942ae0934f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15211, "upload_time": "2018-11-09T15:03:38", "url": "https://files.pythonhosted.org/packages/bf/47/a2014856535a134a5f4f09f1985511af2d9d153131e8ea8fc02ea17ff97d/region_cache-0.2.1.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "374cb9a6695f95a0ddd2d449f433a668", "sha256": "895f1007f36261aafc6446ccbbb33dd2f016bc0719761e5a56e06b2ddad6290b" }, "downloads": -1, "filename": "region_cache-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "374cb9a6695f95a0ddd2d449f433a668", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9974, "upload_time": "2018-11-12T19:22:33", "url": "https://files.pythonhosted.org/packages/e7/60/f816a8f9c3b5d82fb2f72639e8e27124e8d5ec1250e6217b1c5cec369d57/region_cache-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b5d9ff53bbd53612adc82e1d4558a34", "sha256": "f39a738fba483c40f6df256549574b216e92e1b52300d12cf0b7ccdb92eb8a79" }, "downloads": -1, "filename": "region_cache-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9b5d9ff53bbd53612adc82e1d4558a34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15430, "upload_time": "2018-11-12T19:21:56", "url": "https://files.pythonhosted.org/packages/52/8d/0542a53c99b61a65a509ca415712875b7600c33028e473d3db9d77003445/region_cache-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "4db02f503b11078a6d0752daa71c0ddb", "sha256": "581621c10576fb11c2676850742272478347cfd990d3d7b01299859a76f5d187" }, "downloads": -1, "filename": "region_cache-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4db02f503b11078a6d0752daa71c0ddb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9980, "upload_time": "2018-11-12T19:40:05", "url": "https://files.pythonhosted.org/packages/94/77/8c6ac6f6a66207bd59cd6e6d6063d99df162d03810d4423a7f3eedb31810/region_cache-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "671f98ca23160ea594a2480489c16aa0", "sha256": "762b7b5ba677338589b560eefa85cdea11d76b9f7ed987ab569a64ccbe07f46b" }, "downloads": -1, "filename": "region_cache-0.2.4.tar.gz", "has_sig": false, "md5_digest": "671f98ca23160ea594a2480489c16aa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15637, "upload_time": "2018-11-12T19:40:07", "url": "https://files.pythonhosted.org/packages/81/a9/431738b2908c42fff65d60e623442a9d5525a470ad21cbc3a52a30d4429c/region_cache-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "65e68ee57a2cc2a83d80e979b76f1375", "sha256": "282a37227edb7574cd742f6ff736abf27a05e689eb19cf2943d9d42a81bfd294" }, "downloads": -1, "filename": "region_cache-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65e68ee57a2cc2a83d80e979b76f1375", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10003, "upload_time": "2018-11-12T20:46:44", "url": "https://files.pythonhosted.org/packages/87/15/c4c4b150782574bc017a859ae2a7a419c4b6e2f861cffed41169de2b1ba7/region_cache-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68103acd3665db8b1defaed92e5a8e4c", "sha256": "d9e74c6805e4a27300a37839607acbed1041a9dacf6e001eca091b3f60c2ac24" }, "downloads": -1, "filename": "region_cache-0.2.5.tar.gz", "has_sig": false, "md5_digest": "68103acd3665db8b1defaed92e5a8e4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15662, "upload_time": "2018-11-12T20:46:46", "url": "https://files.pythonhosted.org/packages/67/f3/1f9c7d05943bebd8c201a5ecc0a2aa4f74f712b544a47697ab129eb09256/region_cache-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "70e83eab72f81b228c53507ee18f396f", "sha256": "0bd1a78bc70b3005bb3369a982fe6e7c1f85d1f0e6b07f0a75a8946595467592" }, "downloads": -1, "filename": "region_cache-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "70e83eab72f81b228c53507ee18f396f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10315, "upload_time": "2019-05-27T16:20:19", "url": "https://files.pythonhosted.org/packages/13/bb/251b9736e33faf67f3c285551345b26fdc455257af185ad15a4d1dea7dbe/region_cache-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fbfa39f7c4bb8e0dc675f577c37312d", "sha256": "f90f646b1817ae36ccbc3f97284e0c1bebf2d0bb9d3f6bbd2f9e8deffa2381b7" }, "downloads": -1, "filename": "region_cache-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2fbfa39f7c4bb8e0dc675f577c37312d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15862, "upload_time": "2019-05-27T16:20:24", "url": "https://files.pythonhosted.org/packages/c2/d1/2b1245ffa765d96e44c3a88c978ad10cb64ca9a7d1ee751f620f101666f0/region_cache-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5905d7a4140557a45662ed86bb3dfbe6", "sha256": "1fd91a3bad0c3db9ac352e5a0a5f08f70fa3b4b0e270643d30bbe4395192a283" }, "downloads": -1, "filename": "region_cache-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5905d7a4140557a45662ed86bb3dfbe6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10311, "upload_time": "2019-05-28T14:37:02", "url": "https://files.pythonhosted.org/packages/e0/e8/6418b645bc4d20ae9efc9b032139f53b33d6e79add43336e5edc234ef49d/region_cache-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4434c7749d79e6c7bd39f8b7922b8c63", "sha256": "bd32d8014836a3f0dca9b4a8c17574d88a191d37ef90260c8b5e73e20d51e1d3" }, "downloads": -1, "filename": "region_cache-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4434c7749d79e6c7bd39f8b7922b8c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15947, "upload_time": "2019-05-28T14:37:06", "url": "https://files.pythonhosted.org/packages/8d/25/2ed1fbc5fc8775b592186feae294665496725cd362df49f450b178627536/region_cache-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5905d7a4140557a45662ed86bb3dfbe6", "sha256": "1fd91a3bad0c3db9ac352e5a0a5f08f70fa3b4b0e270643d30bbe4395192a283" }, "downloads": -1, "filename": "region_cache-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5905d7a4140557a45662ed86bb3dfbe6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10311, "upload_time": "2019-05-28T14:37:02", "url": "https://files.pythonhosted.org/packages/e0/e8/6418b645bc4d20ae9efc9b032139f53b33d6e79add43336e5edc234ef49d/region_cache-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4434c7749d79e6c7bd39f8b7922b8c63", "sha256": "bd32d8014836a3f0dca9b4a8c17574d88a191d37ef90260c8b5e73e20d51e1d3" }, "downloads": -1, "filename": "region_cache-0.3.1.tar.gz", "has_sig": false, "md5_digest": "4434c7749d79e6c7bd39f8b7922b8c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15947, "upload_time": "2019-05-28T14:37:06", "url": "https://files.pythonhosted.org/packages/8d/25/2ed1fbc5fc8775b592186feae294665496725cd362df49f450b178627536/region_cache-0.3.1.tar.gz" } ] }