{ "info": { "author": "Vijay Katam", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "===============================\ndjango-cache-manager\n===============================\n\nSimple cache manager for django models that caches querysets for a model. Cache manager will cache any query that has been seen for a model. Model cache is evicted for any updates/deletes to the model. This manager is useful for models that don't change often.\n\n[![Build Status](https://travis-ci.org/vijaykatam/django-cache-manager.svg?branch=master)](https://travis-ci.org/vijaykatam/django-cache-manager)\n[![Coverage Status](https://img.shields.io/coveralls/vijaykatam/django-cache-manager.svg)](https://coveralls.io/r/vijaykatam/django-cache-manager)\n[![PyPI version](https://badge.fury.io/py/django-cache-manager.svg)](https://badge.fury.io/py/django-cache-manager)\n\n## Installation\n\n```sh\npip install django-cache-manager\n```\n\n### Caching strategy\n* Cache results for a model on load.\n* Evict cache for model on update.\n\n\n## Usage\n\nAdd to installed apps\n```\nINSTALLED_APPS = (\n ...\n 'django_cache_manager',\n ...\n)\n```\nDefine cache backend for `django_cache_manager.cache_backend` in `settings.py`. The backend can be any cache backend\nthat implements django cache API.\n\n```\nCACHES = {\n 'django_cache_manager.cache_backend': {\n 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',\n 'LOCATION': '127.0.0.1:11211',\n }\n}\n```\n\n```\nfrom django_cache_manager.cache_manager import CacheManager\nclass MyModel(models.Model):\n\n #set cache manager as default\n objects = CacheManager()\n\n```\n\n\n## Django shell\nTo run django shell with sample models defined in tests.\n```sh\nmake shell\n```\nSample models\n```\nfrom tests.models import Manufacturer\nfrom tests.models import Car\nfrom tests.models import Driver\nm = Manufacturer(name='Tesla')\nm.save()\nc = Car(make=m, model='Model S', year=2015)\nc.save()\nd = Driver(first_name ='ABC', last_name='XYZ')\nd.save()\nd.cars.add(c)\ndrivers = Driver.objects.select_related('car', 'manufacturer').all()\n```\n\n## Testing\n\nTo run tests\n\n```sh\nmake test\n```\n\n##### Supported Django versions\nSupported - 1.5, 1.6, 1.7, 1.8, 1.9, 1.10\n\n\n\n\n\n\nHistory\n-------\n\n0.5.1\n---\n* Avoid spurious cache miss when query is empty\n* Fixed error: 'NoneType' object has no attribute `\\_meta`\n\n0.5\n---\n* Add support for Django 1.10\n\n0.4.1\n---------------------\n* Update requirements to Django<1.10\n\n0.4\n---------------------\n* Support for django 1.9\n\n0.3\n---------------------\n* Support for django 1.8\n\n0.2\n---------------------\n* Use django.core.cache.caches available in django 1.7 for efficient cache backend access\n\n0.1.5\n---------------------\n* [BUGFIX] - Fix for non-ascii characters in query.\n\n\n0.1.4\n---------------------\n* [BUGFIX] - Fix cache eviction on bulk updates for models that have a ManyToManyField with an intermediate(through) model.\n\n\n0.1.3\n---------------------\n* [BUGFIX] - Fix cache eviction for models that have a ManyToManyField with an intermediate(through) model.\n\n\n0.1.2\n---------------------\n* [BUGFIX] - Properly handle passing of an empty iterable to '\\__in' filter args. Related Django bug: https://code.djangoproject.com/ticket/12717\n\n\n0.1.1\n---------------------\n\n* [BUGFIX] - Invalidate related model caches for changes, needed for select_related queries.\n\n\n0.1.0\n---------------------\n\n* Test coverage\n* Cache invalidation for manytomany relation\n\n\n0.1.0-beta.1\n---------------------\n\n* First beta release\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vijaykatam/django-cache-manager", "keywords": "django-cache-manager", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-cache-manager", "package_url": "https://pypi.org/project/django-cache-manager/", "platform": "", "project_url": "https://pypi.org/project/django-cache-manager/", "project_urls": { "Homepage": "https://github.com/vijaykatam/django-cache-manager" }, "release_url": "https://pypi.org/project/django-cache-manager/0.5.1/", "requires_dist": [ "Django (<1.11)" ], "requires_python": "", "summary": "Cache manager for django models", "version": "0.5.1" }, "last_serial": 3399443, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ce8743154eb4622cb5e4139ce15c6a80", "sha256": "e6fd470b7afd0b42e5fb1c60b27e5dfd1651407b4634c59b326037d985f7eefa" }, "downloads": -1, "filename": "django-cache-manager-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ce8743154eb4622cb5e4139ce15c6a80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14814, "upload_time": "2015-01-14T04:19:14", "url": "https://files.pythonhosted.org/packages/0f/3d/7e9809fa308773eca9b77304f7eb2fb9af489023dae4839d5ebb9aeaeec9/django-cache-manager-0.1.0.tar.gz" } ], "0.1.0-beta.1": [ { "comment_text": "", "digests": { "md5": "eaf0d011ee3a6ada1fb5cf7928d914fe", "sha256": "b817d40488502f08d16745e86c4672ed984faf2e776d434facb0b8dc26d6448c" }, "downloads": -1, "filename": "django-cache-manager-0.1.0-beta.1.tar.gz", "has_sig": false, "md5_digest": "eaf0d011ee3a6ada1fb5cf7928d914fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12279, "upload_time": "2015-01-07T16:54:14", "url": "https://files.pythonhosted.org/packages/a4/e6/8bb32666b5cce81fd906b412c9495193dc95c601b99ab48844b297e859ae/django-cache-manager-0.1.0-beta.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "17eb93aae012790706913a90fecd49d1", "sha256": "d53763882585b11fea4919a70f50fa7b21dfdeadc231eb4a42ddd42e3a7b7ffd" }, "downloads": -1, "filename": "django-cache-manager-0.1.1.tar.gz", "has_sig": false, "md5_digest": "17eb93aae012790706913a90fecd49d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12817, "upload_time": "2015-02-18T04:45:24", "url": "https://files.pythonhosted.org/packages/a9/f4/eb20b070df260b24860c0fde663b3a37df824567d5472900242253d98a4c/django-cache-manager-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "319c03a6069ed4c88dce8786a51fc196", "sha256": "7af7ec84e44fc169c85a9ffc0e8092d054628ab0e03b30b6f6065510367d0c2d" }, "downloads": -1, "filename": "django-cache-manager-0.1.2.tar.gz", "has_sig": false, "md5_digest": "319c03a6069ed4c88dce8786a51fc196", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12097, "upload_time": "2015-02-24T16:28:40", "url": "https://files.pythonhosted.org/packages/14/86/68a47f15b9d73ffb74a9fd8fca7141d09cff55f8dc7535abb838f332f047/django-cache-manager-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f928866606c4705613e7a3ccd1d4b45c", "sha256": "60be55f690f5853db75ca46197602183ce6856e531964c0e2f8dc3af8e13dc44" }, "downloads": -1, "filename": "django-cache-manager-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f928866606c4705613e7a3ccd1d4b45c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13923, "upload_time": "2015-03-06T18:49:25", "url": "https://files.pythonhosted.org/packages/88/7f/219e86fea40005a6bed9bf011c95edda86cee2b637afdf319b2ad3baf8bc/django-cache-manager-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "81ca2888dd064a5e7977c045d54e60c4", "sha256": "69217bff32757045edd0310ea8b7e65fd643f45cad8f8058bc29d9cf71b7e516" }, "downloads": -1, "filename": "django-cache-manager-0.1.4.tar.gz", "has_sig": false, "md5_digest": "81ca2888dd064a5e7977c045d54e60c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14164, "upload_time": "2015-03-31T02:59:15", "url": "https://files.pythonhosted.org/packages/b7/86/77a88cecbae0934e883468c8641b3bcf9a98f8db44bda3a56e4fced2ce2d/django-cache-manager-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "dfe5109a4fd026273f015329287f2c0c", "sha256": "653a963671d043d3cf01775e3189581bd2f15cea4876cae7b1f708ada90c8b72" }, "downloads": -1, "filename": "django-cache-manager-0.1.5.tar.gz", "has_sig": false, "md5_digest": "dfe5109a4fd026273f015329287f2c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14409, "upload_time": "2015-04-21T20:10:50", "url": "https://files.pythonhosted.org/packages/12/ee/6f5d0f55be35dac24879d914007ea5e2081cd888a42b064d5092c0717787/django-cache-manager-0.1.5.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3b844d43728d08ca5f403358c266a9dc", "sha256": "826ff7fd9a260fb024b028148c1b2ef3a555376e5dfc4ffeb39b307ac8aa3d7f" }, "downloads": -1, "filename": "django-cache-manager-0.2.tar.gz", "has_sig": false, "md5_digest": "3b844d43728d08ca5f403358c266a9dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13392, "upload_time": "2015-08-28T20:08:37", "url": "https://files.pythonhosted.org/packages/7a/2d/efb08f2590b5a3b302a803d748497f55eb42d944c1bf19811c93e35c3313/django-cache-manager-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "5a892b926af5dece8874b741d77a610d", "sha256": "4aaae9da655054bfe80ca5cd017545284a6ebd4226c9999e61d8df625c606b9f" }, "downloads": -1, "filename": "django-cache-manager-0.3.tar.gz", "has_sig": false, "md5_digest": "5a892b926af5dece8874b741d77a610d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13509, "upload_time": "2015-10-10T19:42:25", "url": "https://files.pythonhosted.org/packages/cd/30/8195025e6a844c07b775d68c41e8c68499a15723a8c1e0bba95e5299cde1/django-cache-manager-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b3b085cfba894e5d8bb2fa09cc16b196", "sha256": "f70040852f2b307772dd5645c01db55b13230ad23ebbe632402abd85ed6bfc8c" }, "downloads": -1, "filename": "django-cache-manager-0.4.tar.gz", "has_sig": false, "md5_digest": "b3b085cfba894e5d8bb2fa09cc16b196", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15841, "upload_time": "2015-12-13T21:44:40", "url": "https://files.pythonhosted.org/packages/ee/95/1f0b8ab37f4f9c14d6e8df87917fbe3cb20284fca8daed66a9ea70159f40/django-cache-manager-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c2ec9b23c16b073cb4b5842d2c28578e", "sha256": "43d434eb1d5e2b56798eda826655eabf7c93f300b1a921b80152741f75142e10" }, "downloads": -1, "filename": "django-cache-manager-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c2ec9b23c16b073cb4b5842d2c28578e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13473, "upload_time": "2016-02-25T03:16:37", "url": "https://files.pythonhosted.org/packages/16/53/24318fc79c904763d4ab904fe5ba12e0b0767ad7fb58b92fd16b6fd64444/django-cache-manager-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "df99881822eefcb6dba74c070960e32b", "sha256": "15540d8423e670e66b6d0c181ab7ed14bda8eafffc66168504d90098c5fedb9b" }, "downloads": -1, "filename": "django_cache_manager-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "df99881822eefcb6dba74c070960e32b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11197, "upload_time": "2016-11-13T00:07:08", "url": "https://files.pythonhosted.org/packages/2b/6d/6c0c383a85647c9fc665740d8e79a575fe49f0ae031012b891943cb989d2/django_cache_manager-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03725aa07e5ceaebcb6296a10e9d9b4b", "sha256": "67b2b0236c2bbca1700725f2c4ef4166298d55044bae0e9bdb965873cf984bc1" }, "downloads": -1, "filename": "django-cache-manager-0.5.tar.gz", "has_sig": false, "md5_digest": "03725aa07e5ceaebcb6296a10e9d9b4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13497, "upload_time": "2016-11-13T00:07:11", "url": "https://files.pythonhosted.org/packages/07/4a/8bafd4f6922ba6ee84db726cc50d5c7bc1f46db056c0dccaa66181da3e75/django-cache-manager-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c70eaf51e175ea8923869d9ecb055476", "sha256": "7af32729d1490714a4a3e7fb3c5701cd34fc71e943c6223a4b6b546a66d255e0" }, "downloads": -1, "filename": "django_cache_manager-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c70eaf51e175ea8923869d9ecb055476", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11454, "upload_time": "2017-12-08T01:36:36", "url": "https://files.pythonhosted.org/packages/cb/46/28fcea87445208aa2687229008c438556d3ece6f910baafadf60e92b0fc3/django_cache_manager-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f907f01b29cd610caf76c8d176298cf9", "sha256": "d1a0bce0acf94cce81629a8d0f62cb5c6def22ae72ad1cbe187360f25498a6ec" }, "downloads": -1, "filename": "django-cache-manager-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f907f01b29cd610caf76c8d176298cf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13656, "upload_time": "2017-12-08T01:36:37", "url": "https://files.pythonhosted.org/packages/d3/e5/9240f4ef332876329a0ac6f61338e2714882b51dbc6bb0af6d34dd02911c/django-cache-manager-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c70eaf51e175ea8923869d9ecb055476", "sha256": "7af32729d1490714a4a3e7fb3c5701cd34fc71e943c6223a4b6b546a66d255e0" }, "downloads": -1, "filename": "django_cache_manager-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c70eaf51e175ea8923869d9ecb055476", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11454, "upload_time": "2017-12-08T01:36:36", "url": "https://files.pythonhosted.org/packages/cb/46/28fcea87445208aa2687229008c438556d3ece6f910baafadf60e92b0fc3/django_cache_manager-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f907f01b29cd610caf76c8d176298cf9", "sha256": "d1a0bce0acf94cce81629a8d0f62cb5c6def22ae72ad1cbe187360f25498a6ec" }, "downloads": -1, "filename": "django-cache-manager-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f907f01b29cd610caf76c8d176298cf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13656, "upload_time": "2017-12-08T01:36:37", "url": "https://files.pythonhosted.org/packages/d3/e5/9240f4ef332876329a0ac6f61338e2714882b51dbc6bb0af6d34dd02911c/django-cache-manager-0.5.1.tar.gz" } ] }