Skip to content

garindra/pycacher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published