Skip to main content

Cache decorator for global or instance level memoize.

Project description

https://travis-ci.org/jealous/cachez.svg https://coveralls.io/repos/jealous/cachez/badge.svg https://img.shields.io/pypi/v/cachez.svg

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

Apache License version 2

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:

Contributors:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page