A Python library for persistent JSON-based caching of class state and function results.
Project description
Cacherator
Cacherator is a Python package that provides persistent caching functionality for your Python classes and functions. It allows you to easily cache function results to disk, improving performance for expensive computations or API calls.
Features
- Persistent caching of function results
- Customizable Time-To-Live (TTL) for cached data
- Option to clear cache on demand
- JSON-based storage for easy inspection and portability
- Automatic serialization and deserialization of cached data
- Support for instance methods and properties
Installation
You can install PyCacherator using pip:
pip install cacherator
Usage
Basic Usage
To use Cacherator, simply inherit from the JSONCache class and use the @Cached decorator on your methods:
from cacherator import JSONCache, Cached
class MyClass(JSONCache):
def __init__(self, data_id):
super().__init__(data_id=data_id)
@Cached()
def expensive_operation(self, arg1, arg2):
# Your expensive computation here
return result
Customizing Cache Behavior
You can customize the caching behavior by passing arguments to the JSONCache constructor and the @Cached decorator:
from datetime import timedelta
from cacherator import JSONCache, Cached
class MyClass(JSONCache):
def __init__(self, data_id):
super().__init__(
data_id=data_id,
directory="custom/cache/dir",
clear_cache=False,
ttl=timedelta(days=999),
logging=True
)
@Cached(ttl=300, clear_cache=False)
def cached_method(self, arg):
# Method implementation
return result
API Reference
JSONCache
The base class for objects with caching capabilities.
Parameters:
data_id(str): Unique identifier for the cache instance.directory(str): Directory to store cache files (default: "json/data").clear_cache(bool): Whether to clear existing cache on instantiation (default: False).ttl(timedelta | int | float): Default Time-To-Live for cached data (default: 999 days).logging(bool): Enable logging of cache operations (default: True).
@Cached
Decorator for caching method results.
Parameters:
ttl(float | int | timedelta): Time-To-Live for the cached result (defaults to the ttl set on object level).clear_cache(bool): Whether to clear existing cache before execution (default: False).
License
This project is licensed under the MIT License.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cacherator-1.0.8.tar.gz.
File metadata
- Download URL: cacherator-1.0.8.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69c8805d58c665e02587b93f5d9c1fb50f667cbd436f1548ad16ff35e40413af
|
|
| MD5 |
42726117b4c96027ca31b7d21263864e
|
|
| BLAKE2b-256 |
679233fab37afa3063f74b357a0a6d4478d5d0693bf79b481e6c57fa0cc86551
|
File details
Details for the file cacherator-1.0.8-py3-none-any.whl.
File metadata
- Download URL: cacherator-1.0.8-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c393b27993b01015a19d0d2a7f4beb65056324cf6ea70dc83db914104ff4cd78
|
|
| MD5 |
8e568ea58a4cf922a177d80f4f9f9631
|
|
| BLAKE2b-256 |
816a0fcc011c5ba7b1ab2ab5611fa4a7c9d3bf8aa599d23cdf6c02adffd27379
|