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
File details
Details for the file cachez-0.1.2.tar.gz
.
File metadata
- Download URL: cachez-0.1.2.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ebc0b052d56755902b8068a4ed0d642325f96b0070862288abaad77c9d3c282 |
|
MD5 | fd097c80ff73d17fbe47b91d00c21ddd |
|
BLAKE2b-256 | c53e67c7ce94d258cf0070f62aed6ef705ce83314e7e72eb40d881b5cc90642a |
File details
Details for the file cachez-0.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: cachez-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0322d0032d6ed02b83b64a947ee10c7848e98261af5f9d7846a89e6abdc49b22 |
|
MD5 | 65be88b0091046b6cefefe9b4e2bd9c7 |
|
BLAKE2b-256 | 4ce73ebd5990d7d2140a138f70ce2ff5bfdc9f813ba545fbd0cd9a6857940784 |