Decorators for caching
Project description
cache_it
====
__cache_it__ is a decorator which wraps caching(read/write) routine.
Decorated functions automatically access your memcache and get/set values depending on the situation.
All you have to do is decorate your function by __@cache_it__.
## Basic Usage
```python
>>> from cache_it import init_cache, cache_it
>>> init_cache(['127.0.0.1:11211'])
>>> @cache_it(prefix='PREFIX:')
>>> def cached_function(key):
>>> return 'value'
>>> cached_function('key')
'value' # cached => key:'PREFIX:key' value:'value'
>>> cached_function('key')
'value' # getting from a cache
```
## As a method
You can decorate not only functions but also methods in the same way.
```python
class User(Document)
@cache_it(prefix='PREFIX')
def __getitem__(self, key):
return user[key]
```
## ignore_exception (False by default)
If you want to ignore exceptions occured when accessing memcache, you have to set "ignore_exception" into True.
```python
@cache_it(prefix='PREFIX', ignore_exception=True)
def cached_function(key):
return 'value'
```
## ttl (24*60*60 sec by default)
```python
@cache_it(prefix='PREFIX', ttl=60) # 60sec
def cached_function(key):
return 'value'
```
## encoder/decoder
Encoders are called before setting a value.
Decoders, on the other hand, are called after getting a value.
```python
@cache_it(prefix='PREFIX',
encoder=lambda x: x['foo'],
decoder=lambda x: {'foo': x})
def cached_function(key):
return {'foo': 'bar'}
```
====
__cache_it__ is a decorator which wraps caching(read/write) routine.
Decorated functions automatically access your memcache and get/set values depending on the situation.
All you have to do is decorate your function by __@cache_it__.
## Basic Usage
```python
>>> from cache_it import init_cache, cache_it
>>> init_cache(['127.0.0.1:11211'])
>>> @cache_it(prefix='PREFIX:')
>>> def cached_function(key):
>>> return 'value'
>>> cached_function('key')
'value' # cached => key:'PREFIX:key' value:'value'
>>> cached_function('key')
'value' # getting from a cache
```
## As a method
You can decorate not only functions but also methods in the same way.
```python
class User(Document)
@cache_it(prefix='PREFIX')
def __getitem__(self, key):
return user[key]
```
## ignore_exception (False by default)
If you want to ignore exceptions occured when accessing memcache, you have to set "ignore_exception" into True.
```python
@cache_it(prefix='PREFIX', ignore_exception=True)
def cached_function(key):
return 'value'
```
## ttl (24*60*60 sec by default)
```python
@cache_it(prefix='PREFIX', ttl=60) # 60sec
def cached_function(key):
return 'value'
```
## encoder/decoder
Encoders are called before setting a value.
Decoders, on the other hand, are called after getting a value.
```python
@cache_it(prefix='PREFIX',
encoder=lambda x: x['foo'],
decoder=lambda x: {'foo': x})
def cached_function(key):
return {'foo': 'bar'}
```
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
cache_it-0.0.1.tar.gz
(4.0 kB
view hashes)
Built Distributions
cache_it-0.0.1-py2.7.egg
(8.1 kB
view hashes)
Close
Hashes for cache_it-0.0.1.macosx-10.9-intel.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d26266ac7b04b935e9ad6e4ee693d21f2145cd99ee18ee296791e25aa0bdd6ab |
|
MD5 | 71dbb69c9eda30752e2ee0c8f9b08787 |
|
BLAKE2b-256 | 46483859ec0960e0327f485177483b2d994e14036e23a0482a7b5cd586664d53 |