{ "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": "django-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", "description_content_type": "", "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-redux", "package_url": "https://pypi.org/project/django-cache-manager-redux/", "platform": "", "project_url": "https://pypi.org/project/django-cache-manager-redux/", "project_urls": { "Homepage": "https://github.com/vijaykatam/django-cache-manager" }, "release_url": "https://pypi.org/project/django-cache-manager-redux/0.5.1.1/", "requires_dist": null, "requires_python": "", "summary": "Cache manager for django models", "version": "0.5.1.1" }, "last_serial": 3932061, "releases": { "0.5.1.1": [ { "comment_text": "", "digests": { "md5": "d71094531f88dac352b2ba900325de05", "sha256": "9bd4f704f5b65b4d99314c2e4fc3df09dec4663d314d917d36e64b44ba8900ea" }, "downloads": -1, "filename": "django-cache-manager-redux-0.5.1.1.tar.gz", "has_sig": false, "md5_digest": "d71094531f88dac352b2ba900325de05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14314, "upload_time": "2018-06-05T12:37:11", "url": "https://files.pythonhosted.org/packages/a4/e0/b55348668de7ddc3f3a3f9dd7eae88c919373f4be707d516f889f376d8a5/django-cache-manager-redux-0.5.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d71094531f88dac352b2ba900325de05", "sha256": "9bd4f704f5b65b4d99314c2e4fc3df09dec4663d314d917d36e64b44ba8900ea" }, "downloads": -1, "filename": "django-cache-manager-redux-0.5.1.1.tar.gz", "has_sig": false, "md5_digest": "d71094531f88dac352b2ba900325de05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14314, "upload_time": "2018-06-05T12:37:11", "url": "https://files.pythonhosted.org/packages/a4/e0/b55348668de7ddc3f3a3f9dd7eae88c919373f4be707d516f889f376d8a5/django-cache-manager-redux-0.5.1.1.tar.gz" } ] }