garindra / pycacher

Python module for easy function caching decoration, batching, and many more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pycacher Build Status

Python module for easy function caching decoration, batching, and many more.

Complete documentation on: http://pycacher.readthedocs.org (still empty)

###PyPi Page http://pypi.python.org/pypi/pycacher

###Installation This package is officially hosted on PyPI, so what you need to do is simply:

pip install pycacher

###Examples:

#1 Caching function decorator:
from pycacher import Cacher

cacher = Cacher('localhost', 11211)

@cacher.cache() 
def expensive_function(a, b):
    return a + b

expensive_function(1, 2) # will actually execute
expensive_function(1, 2) # will get the value from the cache
#2 Batching:
batcher = cacher.create_batcher()

batcher.add('test-1')
batcher.add('test-2')
batcher.add('test-3')

batcher.batch()

batcher.get_values()
>> {'test-1':'test-value-1', 'test-2':'test-value-2', 'test-3' : None} 
#3 Batching Context Manager:
batcher = cacher.create_batcher()

with batcher:
     #expensive_function is a pycacher-decorated function.
     expensive_function.register(1, 2) 
     expensive_function.register(1, 3)

#batches the cache key of both those 2 function register calls.
batcher.batch()

with batcher:
     expensive_function(1, 2) #will get its value directly from the batched value
     expensive_function(1, 3)

You can see more advanced examples on the documentation.

###Prerequisites

pycacher is currently well tested on Python 2.5, 2.6 and 2.7.

###Run unit tests If you have the nose Python unit tester library installed and want to run the unit test suite for this library, then simply run this command: nosetests

###Travis CI You can track the project's CI status on Travis at : http://travis-ci.org/#!/garindra/pycacher

###License MIT 2.0

###Authors:

About

Python module for easy function caching decoration, batching, and many more.

License:MIT License


Languages

Language:JavaScript 54.3%Language:Python 45.7%