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>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cachez-0.1.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0322d0032d6ed02b83b64a947ee10c7848e98261af5f9d7846a89e6abdc49b22 |
|
MD5 | 65be88b0091046b6cefefe9b4e2bd9c7 |
|
BLAKE2b-256 | 4ce73ebd5990d7d2140a138f70ce2ff5bfdc9f813ba545fbd0cd9a6857940784 |