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.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd1f19a0f507c83012453f8b368b985a6899e0edd1c88563641a88da570d9fa8 |
|
MD5 | d8b2471638152974afbfa443c8b66504 |
|
BLAKE2b-256 | 638868e02bf97fccaabe6518c9c2e8cf31fee35035525179f471a1b13ef958b0 |