Metadata-Version: 1.1
Name: cachingutil
Version: 1.0.15
Summary: A collection of caching utilities.
Home-page: https://bitbucket.org/daycoder/cachingutil.git
Author: Hywel Thomas
Author-email: hywel.thomas@mac.com
License: MIT
Download-URL: https://bitbucket.org/daycoder/cachingutil.git/get/1.0.15.tar
Description: cachinhgutil
        ============
        A hierarchy of classes to provide caching functionality
        with minimal fuss.
        
        When using the cache, just use the fetch method.
        This will pull from the cache if it's present and
        not expired otherwise will use 'fetch_from_source'.
        
        Cache
        -----
        Abstract class.
        Not expected to be used. Provides the methods
        needed by subclasses provided by the package.
        
        Methods that need to be implemented in the concrete class:
            key
            fetch_from_source
            cache
            fetch_from_cache_by_key
            delete_by_key
            expiry_time
        
        Optional:
            cook
        
        BaseMemoryClass
        ---------------
        Abstract class.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
            calculate_expiry
        Optional:
            cook
        
        SimpleMemoryClass
        -----------------
        Abstract class.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
        Optinal:
            cook
        
        BaseHttpMemoryCache
        -------------------
        Abstract class.
        
        Caches requests objects or objects generated from requests.
        
        TODO: Improve expiry calculations. Currently only uses max age.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
            get_request_for_item (if caching objects generated from request objects)
        Optinal:
            cook
        
        HttpMemoryCache
        ---------------
        Concrete class.
        
        Uses the url string as the key.
        Uses requests.get as fetch_from_source.
        
        Use:
        Instantiate and use instance.fetch(url) to fetch from the cache or source.
        
        BinaryFileCache
        ---------------
        Abstract class.
        
        Reads from and writes to binary files. Suitable for caching
        images.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
        Optional:
            cook
        
        FileCache
        ---------
        Abstract class.
        
        Reads from and writes to files with encoding.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
        Optional:
            cook
            encode
            decode
        
        JsonFileCache
        -------------
        Abstract class.
        
        This is just FileCache with JSON encoding and decoding.
        
        fetch_from_source should return a JSON string.
        If OBJECT_PAIRS_HOOK is set, then decode will
        use that. Typically use: collections.OrderedDict
        to retain the order of elements.
        
        Methods that must be implemented in concrete class:
            key
            fetch_from_source
        
        Optional:
            cook
            OBJECT_PAIRS_HOOK
        
        TwoLevelCache
        -------------
        Concrete class.
        
        Generally this means an in-memory cache joined to a
        persistent cache (e.g, file, database). That means
        your cache persists over many executions, but doesn't
        need to access the slower persistent cache more than
        once per item fetched.
        
        To use it, implement the two caches and instantiate
        TwoLevelCache to join them. Pass in-memory cache class
        as the transient_cache and the persistent cache class
        as (surprise!) the pesistent_cache.
        
        
        
        
Keywords: caching
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Utilities
