Automatic caching and caching invalidation for callables
Project description
pysmartcache
PySmartCache is a memoizer implementation with lasers.
Idea is quite simple: you just need to decorate your function/method with @cache()
, and pysmartcache
will take care of the rest (caching based on arguments, cache invalidation, helpers for cache purge, cache refresh and cache invalidation, and so on).
For instance, change this:
def calculate_universe_mass(some_parameter, another_parameter, whatever):
return 42
to this:
from pysmartcache import cache
@cache()
def calculate_universe_mass(some_parameter, another_parameter, whatever):
return 42
Seriously. That's it. =P
For more dense details please refer to the docs.
Development:
Run linter:
pip install -r requirements_dev.txt
isort -rc .
tox -e lint
Run tests via tox
:
pip install -r requirements_dev.txt
tox
Release a new major/minor/patch version:
pip install -r requirements_dev.txt
bump2version <PART> # <PART> can be either 'patch' or 'minor' or 'major'
Upload to PyPI:
pip install -r requirements_dev.txt
python setup.py sdist bdist_wheel
python -m twine upload dist/*
Contributing:
Please open issues if you see one, or create a pull request when possible. In case of a pull request, please consider the following:
- Respect the line length (132 characters)
- Write automated tests
- Run
tox
locally so you can see if everything is green (including linter and other python versions)
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
pysmartcache-3.0.1.tar.gz
(5.1 kB
view hashes)
Built Distribution
Close
Hashes for pysmartcache-3.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2758dcf0f21a52c8fb3ed9fc1e5fb1f35f5b13c8d42c98a4300c5947d91421a0 |
|
MD5 | cddd2b5138081cfce64e2476ff5c6cdd |
|
BLAKE2b-256 | f2212314bc9ffb01acd526829be111bffeecde9cc59733bcfe376656d34407f2 |