Cache decorator to make applying cache less pain
Project description
YoTon is an util for cache, it simplifies cache with a decorator.
Install
$ pip install yoton
Configuration
redis_server_config = { "default": { "host": "localhost", "port": 6379, "db": 1 }, "server_a": { "host": "localhost", "port": 6378, "db": 2, } } yoton = YoTon(redis_server_config)
Apply To Function
@yoton.cache(key_pattern="dummy_cache_key", expire_seconds=60) def dummy_func(): return "hello" >> dummy_func() # call the function "hello" set in the cache
Key Pattern
The cache key is using python’s string format syntax, you can find it here
@youton.cache(key_pattern="dummy:{a}_{b}_{c}", expire_seconds=60) def dummy_func_with_params(a, b, c=3): return a + b + c
Complex object in parameters
@youton.cache(key_pattern="dummy:{a.id}_{b.name}", expire_seconds=60) def dummy_func_with_params(a, b): return a + b
Select Database
@yoton.cache(key_pattern="dummy_cache_key", database="test", expire_seconds=60) def dummy_func_database(): return "hello"
Customized Formatter
@yoton.cache(key_pattern="dummy_cache_key", key_formatter=CustomizedFormatter(), expire_seconds=60) def dummy_func_keyforamtter(): pass
Apply Cache To Instance Method
class DummyClass(object): @yoton.cache(key_pattern="instance_method") def instance_method(self): return "hello"
Misc
# call the function directly without touch cache dummy_func_with_params.call(a=1, b=2, c=3) # refresh cache data dummy_func_with_params.refresh_cache(a=1, b=2, c=3) # remove data in cache dummy_func_with_params.delete_cache(a=1, b=2, c=3)
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
yoton-0.1.0.tar.gz
(4.2 kB
view hashes)
Built Distribution
yoton-0.1.0-py2.7.egg
(7.9 kB
view hashes)