Metadata-Version: 1.1
Name: django-cache-manager
Version: 0.4
Summary: Cache manager for django models
Home-page: https://github.com/vijaykatam/django-cache-manager
Author: Vijay Katam
Author-email: UNKNOWN
License: UNKNOWN
Description: ===============================
        django-cache-manager
        ===============================
        
        Simple 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.
        
        [![Build Status](https://travis-ci.org/vijaykatam/django-cache-manager.svg?branch=master)](https://travis-ci.org/vijaykatam/django-cache-manager)
        [![Coverage Status](https://img.shields.io/coveralls/vijaykatam/django-cache-manager.svg)](https://coveralls.io/r/vijaykatam/django-cache-manager)
        
        ## Installation
        
        ```sh
        pip install django-cache-manager
        ```
        
        ### Caching strategy
        * Cache results for a model on load.
        * Evict cache for model on update.
        
        
        ## Usage
        
        Add to installed apps
        ```
        INSTALLED_APPS = (
            ...
            'django_cache_manager',
            ...
        )
        ```
        Define cache backend for `django_cache_manager.cache_backend` in `settings.py`. The backend can be any cache backend
        that implements django cache API.
        
        ```
        CACHES = {
            'django_cache_manager.cache_backend': {
                'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
                'LOCATION': '/tmp/django_cache_manager',
                'TIMEOUT': 0
            }
        }
        ```
        
        ```
        from django_cache_manager.cache_manager import CacheManager
        class MyModel(models.Model):
        
           #set cache manager as default
           objects = CacheManager()
        
        ```
        
        
        ## Django shell
        To run django shell with sample models defined in tests.
        ```sh
        make shell
        ```
        Sample models
        ```
        from tests.models import Manufacturer
        from tests.models import Car
        from tests.models import Driver
        m = Manufacturer(name='Tesla')
        m.save()
        c = Car(make=m, model='Model S', year=2015)
        c.save()
        d = Driver(first_name ='ABC', last_name='XYZ')
        d.save()
        d.cars.add(c)
        drivers = Driver.objects.select_related('car', 'manufacturer').all()
        ```
        
        ## Testing
        
        To run tests
        
        ```sh
        make test
        ```
        
        ##### Supported Django versions
        Supported - 1.5, 1.6, 1.7, 1.8, 1.9
        
        
        
        
        
        
        History
        -------
        
        0.4
        ---------------------
        * Support for django 1.9
        
        0.3
        ---------------------
        * Support for django 1.8
        
        0.2
        ---------------------
        * Use django.core.cache.caches available in django 1.7 for efficient cache backend access
        
        0.1.5
        ---------------------
        * [BUGFIX] - Fix for non-ascii characters in query.
        
        
        0.1.4
        ---------------------
        * [BUGFIX] - Fix cache eviction on bulk updates for models that have a ManyToManyField with an intermediate(through) model.
        
        
        0.1.3
        ---------------------
        * [BUGFIX] - Fix cache eviction for models that have a ManyToManyField with an intermediate(through) model.
        
        
        0.1.2
        ---------------------
        * [BUGFIX] - Properly handle passing of an empty iterable to '__in' filter args.  Related Django bug: https://code.djangoproject.com/ticket/12717
        
        
        0.1.1
        ---------------------
        
        * [BUGFIX] - Invalidate related model caches for changes, needed for select_related queries.
        
        
        0.1.0
        ---------------------
        
        * Test coverage
        * Cache invalidation for manytomany relation
        
        
        0.1.0-beta.1
        ---------------------
        
        * First beta release
        
Keywords: django-cache-manager
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
