Rupee: Python [STRIKEOUT:Cashing] Caching
Rupee is a simple, but fully-featured caching library for Python 3.
Engines
Rupee supports caching using process memory, Redis, and Memcached.
For Redis support:
pip install redis
For Memcached support, you can use pylibmc:
pip install pylibmc
or python-memcache:
pip install python-memcache
Cache Access
You can create cache instances like this:
memory = rupee.engine.Memory()
memcached = rupee.engine.Memcached(['localhost:11211'])
redis = rupee.engine.Redis('localhost:6379')
All instances conform to the same API, which offer the get/set/delete operations you’d expect:
cache = rupee.engine.Memcached(['localhost:11211'])
cache.set('foo', 'bar', ttl=3600)
cache.set_multi({'baz': 1, 'qux': 2})
cache.get('baz') == 1
cache.get_multi(['foo', 'qux']) == {'foo': 'bar', 'qux': 2}
cache.delete('qux')
cache.delete_all(['foo', 'baz'])
cache.delete_all_data()
Cached Decorators
You can decorate functions to be cache their results:
cache = rupee.engine.Redis('localhost:6379')
@rupee.cached(cache, ttl=3600)
def foo(bar, baz):
return _some_expensive_thing(bar, baz)
To clear the cache entry for a function call:
foo.dirty(1, 2)
For functions that perform bulk operations, you can use the multi-cache decorator:
@rupee.multi_cached(cache):
def get(items):
return {item: _some_expensive_thing(item) for item in items}
Functions decorated with multi_cached must take a single list as an argument and return a dictionary keyed on the items in that list. Then, results for each item will be cached separately, and only the needed items will be passed to the function. To illustrate:
get([1, 2, 3]) # calls _some_expensive_thing on 1, 2, and 3 get([1, 2, 3]) # _some_expensive_thing is never called get([2, 3, 4]) # calls _some_expensive_thing only on 4
Release files for rupee 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rupee-0.0.1.tar.gz | 5.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rupee-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.3 kB
Release files / rupee-0.0.1.tar.gz
| Download URL | rupee-0.0.1.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ce5f82a883d713650ed38a7fc30f424077732b61dd0eae66919265869aa91a6
|
|
BLAKE2b-256 checksum How to use checksums |
f374655a22c011a8d16d884759dcd84c6e687cc26a09c2b81bb6ba968ce20491
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / rupee-0.0.1-py3-none-any.whl
| Download URL | rupee-0.0.1-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97849f3b53715a44ca6a80e5a65e8df79fa4545969159553eb6246d2cee7466a
|
|
BLAKE2b-256 checksum How to use checksums |
a551e3fbccb9251a775b0a3247e7504ee56a88225bc60217d8f2991c255d4a53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |