Cache decorator for global or instance level memoize.
Project description
VERSION: 0.1.2
Introduction
Function decorator that helps to cache/memoize the result of a function/method.
This package contains following decorators.
cache: cache the result of the function globally.
instance_cache: cache the result of a method in the instance (self)
clear_instance_cache: clear the method results cached on the instance.
And one function.
clear_cache: clear the global function cache.
Tested on python 2.7 and python 3.4.
For quick start, check the tutorial section of this page. Check cachez_test.py for detail examples.
Installation
pip install cachez
License
Tutorial
To cache the result of the a function globally, decorate the function with cache.
@cache
def foo(x, y):
...
To clear the global cache, call clear_cache().
clear_cache()
To cache the result of the method in the instance, decorate the method with instance_cache. To clear the method cache on the instance, decorate your clear method with clear_instance_cache.
class Foo(object):
@instance_cache
def bar(a, b):
...
@clear_instance_cache
def clear():
...
To persist the function return value, use persisted decorator. This decorator takes input parameter which specify when the cache will expire. The default value for cache expiration is set to 1 day.
class Foo(object):
@persisted()
def default_persist_for_1_day(x):
...
@persisted(seconds=5)
def persist_return_value_for_5_seconds(y):
...
The default persist folder is set to ~/.cachez. You could customize it by calling set_persist_folder.
To file issue, please visit:
https://github.com/jealous/cachez
Contact author:
Cedric Zhuang <jealous@163.com>
Contributors:
Ryan Liang <menglei.leung@gmail.com>