No project description provided
Project description
pyappcache
Pyappcache is a library to make it easier to use application-level caching in Python.
-
Allows putting arbitrary Python objects into the cache
-
Uses PEP484 type hints to help you typecheck cache return values
-
Supports Memcache, Redis and SQLite
-
Supports working as a "read-through" and "write-through" cache
-
Native support for key
"namespacing" <https://github.com/memcached/memcached/wiki/ProgrammingTricks#namespacing>
__ -
Provides a few handy extras
- A plugin for the
cachecontrol <https://pypi.org/project/CacheControl/>
__ library so you can also use it as an HTTP cache withrequests <https://pypi.org/project/requests/>
__
- A plugin for the
A simple example
.. code:: python
from datetime import date
from pyappcache.redis import RedisCache
from pyappcache.keys import Key, SimpleStringKey
cache = RedisCache()
# Annotate the type here to let mypy know this key is used for dates
key: Key[date] = SimpleStringKey("mifid start date")
cache.set(key, date(2018, 1, 3), ttl_seconds=3600)
... # later...
# This variable's type will be inferred as datetime.date
special_date = cache.get(key)
How it compares to alternatives
Using the redis/memcache/sqlite client directly
- Explicit key objects allow for type inference and encapsulation of keying
- Keys are prefix to help prevent collisions
- Optional, pluggable, compression
- Hopefully the overhead is small (not yet tested!)
- Portable between redis/memcache/sqlite, etc
dogpile.cache
~~~~~~~~~~~~~
- Explicit key objects allow for type inference and encapsulation of keying
- dogpile.cache provides locking, pyappcache does not
- Reduced temptation to use the problematic decorator pattern
- This often causes import order problems as you need to have your cache at import time
- Pyappache doesn't provide DBM/file backends, SQLite instead
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyappcache-0.9.1.tar.gz
(22.1 kB
view hashes)
Built Distribution
pyappcache-0.9.1-py3-none-any.whl
(23.6 kB
view hashes)
Close
Hashes for pyappcache-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c55e52ed5b4a4390ed62f1bb16b876547ec99b202a8662929a4e4ec93e22a136 |
|
MD5 | 8c19bc287803d86c432ed0eed63d1c47 |
|
BLAKE2b-256 | 6f8ebcf035c82269d0dcac42d0238d4b184bde105c1931fd24d793e192067865 |