Skip to main content

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)

Source distribution for rupee 0.0.1
File Size Uploaded
rupee-0.0.1.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rupee 0.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page