docs/index.rst
***********************
Cache Any Python Object
***********************
.. image:: https://badge.fury.io/py/anycache.svg
:target: https://badge.fury.io/py/anycache
.. image:: https://img.shields.io/pypi/dm/anycache.svg?label=pypi%20downloads
:target: https://pypi.python.org/pypi/anycache
.. image:: https://readthedocs.org/projects/anycache/badge/?version=latest
:target: https://anycache.readthedocs.io/en/latest/?badge=latest
.. image:: https://coveralls.io/repos/github/c0fec0de/anycache/badge.svg
:target: https://coveralls.io/github/c0fec0de/anycache
.. image:: https://readthedocs.org/projects/anycache/badge/?version=
:target: https://anycache.readthedocs.io/en//?badge=
.. image:: https://api.codeclimate.com/v1/badges/e6d325d6fd23a93aab20/maintainability
:target: https://codeclimate.com/github/c0fec0de/anycache/maintainability
:alt: Maintainability
.. image:: https://img.shields.io/pypi/pyversions/anycache.svg
:target: https://pypi.python.org/pypi/anycache
.. image:: https://img.shields.io/badge/code%20style-pep8-brightgreen.svg
:target: https://www.python.org/dev/peps/pep-0008/
.. image:: https://img.shields.io/badge/code%20style-pep257-brightgreen.svg
:target: https://www.python.org/dev/peps/pep-0257/
.. image:: https://img.shields.io/badge/linter-pylint-%231674b1?style=flat
:target: https://www.pylint.org/
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. image:: https://img.shields.io/github/contributors/c0fec0de/anycache.svg
:target: https://github.com/c0fec0de/anycache/graphs/contributors/
.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
:target: http://makeapullrequest.com
.. image:: https://img.shields.io/github/issues-pr/c0fec0de/anycache.svg
:target: https://github.com/c0fec0de/anycache/pulls
.. image:: https://img.shields.io/github/issues-pr-closed/c0fec0de/anycache.svg
:target: https://github.com/c0fec0de/anycache/pulls?q=is%3Apr+is%3Aclosed
Links
=====
* Documentation_
* PyPI_
* GitHub_
* Changelog_
* Issues_
* Contributors_
.. _anycache: https://anycache.readthedocs.io/en//
.. _Documentation: https://anycache.readthedocs.io/en//
.. _PyPI: https://pypi.org/project/anycache//
.. _GitHub: https://github.com/c0fec0de/anycache
.. _Changelog: https://github.com/c0fec0de/anycache/releases
.. _Issues: https://github.com/c0fec0de/anycache/issues
.. _Contributors: https://github.com/c0fec0de/anycache/graphs/contributors
Cache any python object to file using improved pickling
.. toctree::
:maxdepth: 2
installation
api
Getting started
===============
.. _getting_started:
To cache the result of a function, use the global unlimited anycache:
>>> from anycache import anycache
>>> @anycache()
... def myfunc(posarg, kwarg=3):
... print(" Calcing %r + %r = %r" % (posarg, kwarg, posarg + kwarg))
... return posarg + kwarg
>>> myfunc(8, 10)
Calcing 8 + 10 = 18
18
>>> myfunc(8, 10)
18
`anycache` caches nearly any python object. Also `lambda` statements.
It uses Dill_ as backend, an improved version of pythons build-in `pickle`.
Set a persistent cache directory to preserve the result between multiple python runs:
>>> from anycache import anycache
>>> @anycache(cachedir='/tmp/anycache.my')
... def myfunc(posarg, kwarg=3):
... return posarg + kwarg
The :any:`AnyCache` object serves additional functions for cache clearing and
size handling.
.. _Dill: https://pypi.python.org/pypi/dill