The Python Cache Toolkit.
Project description
Cache Alchemy
The Python Cache Toolkit.
Free software: MIT license
Documentation: https://cache-alchemy.readthedocs.io/en/latest/
Installation
$ pipenv install cache-alchemy
✨🍰✨
Only Python 3.6+ is supported.
Example
import dataclasses
from redis import Redis
from cache_alchemy import memory_cache, json_cache, pickle_cache
from cache_alchemy.config import DefaultConfig
config = DefaultConfig()
config.cache_redis_client = Redis.from_url(config.CACHE_ALCHEMY_REDIS_URL)
@dataclasses.dataclass
class User:
name: str
@pickle_cache()
def get(name: str) -> User:
return User(name=name)
@memory_cache()
def add(i: complex, j: complex) -> complex:
return i + j
@json_cache()
def add(i: int, j: int) -> int:
return i + j
Features
Distributed cache
Cache clear and partial clear with specific function parameter
Cache clear cascade by dependency
Cache Json Serializable function return value with json_cache
Cache Python Object function return value with pickle_cache
Cache any function return value with memory_cache
LRU Dict support
TODO
History
0.4.* (2020)
Refactory redis cache to json cache
Support pickle Cache
Add backend class in function hash
Add cache key prefix to avoid key conflict
0.2.* (2019)
Support Partially Clear Cache with Arguments
Support Flush Backend Cache
Cache Redis Client Must Decode Responses
0.1.* (2019)
Support Method and Property Cache
Support cache as a decorator with no arguments.
Init Project.
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
Built Distribution
Hashes for cache_alchemy-0.4.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3622059e922ee1abe9e97218a0fa433be8c3ffe0daa518bb5f2c246d672ec6d5 |
|
MD5 | a23a0579eae4542cfaedbfbbc235d431 |
|
BLAKE2b-256 | a059d757a3edb10f8f3ad6ff4bd9caf795ede951275223512c4efe8271c507d5 |