Metadata-Version: 1.0
Name: plone.memoize
Version: 1.1a3
Summary: Decorators for caching the values of functions and methods
Home-page: http://pypi.python.org/pypi/plone.memoize
Author: Plone Foundation
Author-email: plone-developers@lists.sourceforge.net
License: GPL
Description: plone memoization decorators
        ============================
        
        plone.memoize provides Python function decorators for caching the
        values of functions and methods.
        
        The type of cache storage is freely configurable by the user, as is
        the cache key, which is what the function's value depends on.
        
        plone.memoize has support for memcached and is easily extended to use
        other caching storages.  It also has specialized decorators for use
        with Zope views.  However, plone.memoize can be used without Zope.
        
        Changelog
        =========
        
        1.1a3 - 2009-05-10
        ------------------
        
        - Modernized and cleaned up the code a bit. Also drop BBB support for
        `zope.app.annotation` and made the tests work again.
        [hannosch]
        
        1.1a2 - 2009-05-08
        ------------------
        
        - Removed all testing dependencies on zope.app packages.
        [hannosch]
        
        - Changed a test to use zope.publisher instead of a Five BrowserView. This
        removes the entire Zope2 dependency.
        [hannosch]
        
        - Correct Zope2 dependency, it's indeed only a test dependency.
        [hannosch]
        
        1.1a1 - 2009-04-04
        ------------------
        
        - Clarified license statements.
        [hannosch]
        
        - Moved declaration of test dependencies into a test extra.
        [hannosch]
        
        - Avoid deprecation warnings for the md5 and sha modules in Python 2.6.
        [hannosch]
        
        - Specify package dependencies.
        [hannosch]
        
        - Added check for Unicode values in cache keys before calculating md5
        checksums, as the md5 module doesn't seem to like Unicode.
        [hannosch]
        
        - Removed BBB code for zope.app.annotation.
        [hannosch]
        
        - The clearbefore decorator was mistakenly not tested.
        [maurits]
        
        
        1.0.4 (2008-03-31)
        ------------------
        
        - Documentation and release notes cleanup.
        [hannosch]
        
        
        1.0.3 (2007-11-09)
        ------------------
        
        - Remove features from Plone 3.0 branch.
        [nouri]
        
        - Maintenance branch for Plone 3.0.
        [nouri]
        
        - Get rid of sys.modules hack, which according to this changeset:
        http://dev.plone.org/plone/changeset/15030
        was added because I advised it generally.  With help from Kapil for
        the PloneGetPaid project I figured out a better way.
        [maurits]
        
        - Revise docs and project description.
        [nouri]
        
        - Merge patch from Gael Le Mignot:
        
        - Do not use hash anymore when making cache keys. This is to
        avoid cache collisions, and to avoid a potential security
        problem where an attacker could manually craft collisions.
        Also, stop recommending the use of hash() in tests.
        
        - Add support for using Pilot System's GenericCache as a backend
        for 'plone.memoize.volatile.cache'.
        
        - Add an arguments marshaller that gives you a more convenient
        way to declare that your cache is dependent on arguments.
        See 'plone.memoize.marshallers'.
        
        [nouri, gael]
        
        
        1.0.1 (2007-09-10)
        ------------------
        
        - Simplify forever by reuse of stuff from plone.memoize.volatile.
        [nouri]
        
        1.0 (2007-08-17)
        ----------------
        
        - Add a forever memo - lives until Zope restart.
        [optilude]
        
        - hash((1, 2)) returns something different on ree's 64-bit Python :)
        [nouri]
        
        - Don't treat None in a special way. Avoid one dict lookup.
        [nouri]
        
        - Extended the xhtml_compress method to use a utility lookup for
        IXHTMLCompressor utilities instead. Now you can turn the slimmer based
        compression on via a simple utility registration. See compress.py.
        [hannosch, fschulze]
        
        1.0rc2 (2007-07-27)
        -------------------
        
        - Added simple xhtml_compress method which can be used to plug in
        whitespace removal libraries. Peter Bengtsson's slimmer library is
        configured but not enabled by default.
        [hannosch]
        
        1.0b4 (2007-07-09)
        ------------------
        
        - Use a md5 hash of the provided key in RAMCacheAdapter, reducing the
        memory footprint and speeding up lookup time.
        [hannosch]
        
        - Reword the volatile section a bit to indicate why the example does not
        use anything from the volatile module.
        [wichert]
        
        - Use an exception `DontCache` instead of the DONT_CACHE marker return
        value. Allow for no `ICacheChooser` to be registered.
        [nouri]
        
        - Add cache decorator for request (which can in fact be used for all
        sorts of annotatable objects).
        [nouri]
        
        - Added decorator for storing cache values on the request as annotations.
        [nouri]
        
        - Always include the function's dotted name in the key.
        [nouri]
        
        - Added a new cache decorator which can memoize a the result of a method
        call on the request and lets you specify which argument on the function
        is the request.
        [hannosch]
        
        - Add MemcacheAdapter as an alternative to RAMCacheAdapter.
        [nouri]
        
        - Generalize `IRAMCacheChooser` to `ICacheChooser`, which doesn't return
        an IRAMCache but a simple dict.
        [nouri]
        
        - Use a more sensible default for the maxAge of the new RAMCache.
        [hannosch]
        
        - Add cache storage for `plone.memoize.volatile` for use with
        `zope.app.cache.ram.RAMCache`.
        [nouri]
        
        - Rolled in changes from memojito to fix recursively memoized
        methods(fix by Rob Miller and Whit Morriss)
        [whit]
        
        - Made plone.memoize backwardly compatible with zope2.9 and remain
        usable w/out zope.annotation. Minor wording changes to some docs.
        [whit]
        
        - Per default, use a volatile dict that cleans up after itself.
        [nouri]
        
        - This 'volatile' module defines a versatile caching decorator that
        gives you total control of how the cache key is calculated and where
        it is stored.
        [nouri]
        
        1.0b3 (2007-05-05)
        ------------------
        
        - Initial package structure and implementation.
        [hannosch, nouri, optilude, whit, zopeskel]
        
Keywords: plone memoize decorator cache
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Zope2
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
