cachetools
========================================================================
.. image:: https://img.shields.io/pypi/v/cachetools
:target: https://pypi.org/project/cachetools/
:alt: Latest PyPI version
.. image:: https://img.shields.io/github/actions/workflow/status/tkem/cachetools/ci.yml
:target: https://github.com/tkem/cachetools/actions/workflows/ci.yml
:alt: CI build status
.. image:: https://img.shields.io/readthedocs/cachetools
:target: https://cachetools.readthedocs.io/
:alt: Documentation build status
.. image:: https://img.shields.io/codecov/c/github/tkem/cachetools/master.svg
:target: https://codecov.io/gh/tkem/cachetools
:alt: Test coverage
.. image:: https://img.shields.io/librariesio/sourcerank/pypi/cachetools
:target: https://libraries.io/pypi/cachetools
:alt: Libraries.io SourceRank
.. image:: https://img.shields.io/github/license/tkem/cachetools
:target: https://raw.github.com/tkem/cachetools/master/LICENSE
:alt: License
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Code style: black
This module provides various memoizing collections and decorators,
including variants of the Python Standard Library's `@lru_cache`_
function decorator.
.. code-block:: python
from cachetools import cached, LRUCache, TTLCache
# speed up calculating Fibonacci numbers with dynamic programming
@cached(cache={})
def fib(n):
return n if n < 2 else fib(n - 1) + fib(n - 2)
# cache least recently used Python Enhancement Proposals
@cached(cache=LRUCache(maxsize=32))
def get_pep(num):
url = 'http://www.python.org/dev/peps/pep-%04d/' % num
with urllib.request.urlopen(url) as s:
return s.read()
# cache weather data for no longer than ten minutes
@cached(cache=TTLCache(maxsize=1024, ttl=600))
def get_weather(place):
return owm.weather_at_place(place).get_weather()
For the purpose of this module, a *cache* is a mutable_ mapping_ of a
fixed maximum size. When the cache is full, i.e. by adding another
item the cache would exceed its maximum size, the cache must choose
which item(s) to discard based on a suitable `cache algorithm`_.
This module provides multiple cache classes based on different cache
algorithms, as well as decorators for easily memoizing function and
method calls.
Installation
------------------------------------------------------------------------
cachetools is available from PyPI_ and can be installed by running::
pip install cachetools
Typing stubs for this package are provided by typeshed_ and can be
installed by running::
pip install types-cachetools
Project Resources
------------------------------------------------------------------------
- `Documentation`_
- `Issue tracker`_
- `Source code`_
- `Change log`_
Related Projects
------------------------------------------------------------------------
- asyncache_: Helpers to use cachetools with async functions
- cacheing_: Pure Python Cacheing Library
- CacheToolsUtils_: Cachetools Utilities
- kids.cache_: Kids caching library
- shelved-cache_: Persistent cache for Python cachetools
License
------------------------------------------------------------------------
Copyright (c) 2014-2024 Thomas Kemmer.
Licensed under the `MIT License`_.
.. _@lru_cache: https://docs.python.org/3/library/functools.html#functools.lru_cache
.. _mutable: https://docs.python.org/dev/glossary.html#term-mutable
.. _mapping: https://docs.python.org/dev/glossary.html#term-mapping
.. _cache algorithm: https://en.wikipedia.org/wiki/Cache_algorithms
.. _PyPI: https://pypi.org/project/cachetools/
.. _typeshed: https://github.com/python/typeshed/
.. _Documentation: https://cachetools.readthedocs.io/
.. _Issue tracker: https://github.com/tkem/cachetools/issues/
.. _Source code: https://github.com/tkem/cachetools/
.. _Change log: https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst
.. _MIT License: https://raw.github.com/tkem/cachetools/master/LICENSE
.. _asyncache: https://pypi.org/project/asyncache/
.. _cacheing: https://github.com/breid48/cacheing
.. _CacheToolsUtils: https://pypi.org/project/CacheToolsUtils/
.. _kids.cache: https://pypi.org/project/kids.cache/
.. _shelved-cache: https://pypi.org/project/shelved-cache/
Raw data
{
"_id": null,
"home_page": "https://github.com/tkem/cachetools/",
"name": "cachetools",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Thomas Kemmer",
"author_email": "tkemmer@computer.org",
"download_url": "https://files.pythonhosted.org/packages/a7/3f/ea907ec6d15f68ea7f381546ba58adcb298417a59f01a2962cb5e486489f/cachetools-5.4.0.tar.gz",
"platform": null,
"description": "cachetools\n========================================================================\n\n.. image:: https://img.shields.io/pypi/v/cachetools\n :target: https://pypi.org/project/cachetools/\n :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/github/actions/workflow/status/tkem/cachetools/ci.yml\n :target: https://github.com/tkem/cachetools/actions/workflows/ci.yml\n :alt: CI build status\n\n.. image:: https://img.shields.io/readthedocs/cachetools\n :target: https://cachetools.readthedocs.io/\n :alt: Documentation build status\n\n.. image:: https://img.shields.io/codecov/c/github/tkem/cachetools/master.svg\n :target: https://codecov.io/gh/tkem/cachetools\n :alt: Test coverage\n\n.. image:: https://img.shields.io/librariesio/sourcerank/pypi/cachetools\n :target: https://libraries.io/pypi/cachetools\n :alt: Libraries.io SourceRank\n\n.. image:: https://img.shields.io/github/license/tkem/cachetools\n :target: https://raw.github.com/tkem/cachetools/master/LICENSE\n :alt: License\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Code style: black\n\n\nThis module provides various memoizing collections and decorators,\nincluding variants of the Python Standard Library's `@lru_cache`_\nfunction decorator.\n\n.. code-block:: python\n\n from cachetools import cached, LRUCache, TTLCache\n\n # speed up calculating Fibonacci numbers with dynamic programming\n @cached(cache={})\n def fib(n):\n return n if n < 2 else fib(n - 1) + fib(n - 2)\n\n # cache least recently used Python Enhancement Proposals\n @cached(cache=LRUCache(maxsize=32))\n def get_pep(num):\n url = 'http://www.python.org/dev/peps/pep-%04d/' % num\n with urllib.request.urlopen(url) as s:\n return s.read()\n\n # cache weather data for no longer than ten minutes\n @cached(cache=TTLCache(maxsize=1024, ttl=600))\n def get_weather(place):\n return owm.weather_at_place(place).get_weather()\n\nFor the purpose of this module, a *cache* is a mutable_ mapping_ of a\nfixed maximum size. When the cache is full, i.e. by adding another\nitem the cache would exceed its maximum size, the cache must choose\nwhich item(s) to discard based on a suitable `cache algorithm`_.\n\nThis module provides multiple cache classes based on different cache\nalgorithms, as well as decorators for easily memoizing function and\nmethod calls.\n\n\nInstallation\n------------------------------------------------------------------------\n\ncachetools is available from PyPI_ and can be installed by running::\n\n pip install cachetools\n\nTyping stubs for this package are provided by typeshed_ and can be\ninstalled by running::\n\n pip install types-cachetools\n\n\nProject Resources\n------------------------------------------------------------------------\n\n- `Documentation`_\n- `Issue tracker`_\n- `Source code`_\n- `Change log`_\n\n\nRelated Projects\n------------------------------------------------------------------------\n\n- asyncache_: Helpers to use cachetools with async functions\n- cacheing_: Pure Python Cacheing Library\n- CacheToolsUtils_: Cachetools Utilities\n- kids.cache_: Kids caching library\n- shelved-cache_: Persistent cache for Python cachetools\n\n\nLicense\n------------------------------------------------------------------------\n\nCopyright (c) 2014-2024 Thomas Kemmer.\n\nLicensed under the `MIT License`_.\n\n\n.. _@lru_cache: https://docs.python.org/3/library/functools.html#functools.lru_cache\n.. _mutable: https://docs.python.org/dev/glossary.html#term-mutable\n.. _mapping: https://docs.python.org/dev/glossary.html#term-mapping\n.. _cache algorithm: https://en.wikipedia.org/wiki/Cache_algorithms\n\n.. _PyPI: https://pypi.org/project/cachetools/\n.. _typeshed: https://github.com/python/typeshed/\n.. _Documentation: https://cachetools.readthedocs.io/\n.. _Issue tracker: https://github.com/tkem/cachetools/issues/\n.. _Source code: https://github.com/tkem/cachetools/\n.. _Change log: https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\n.. _MIT License: https://raw.github.com/tkem/cachetools/master/LICENSE\n\n.. _asyncache: https://pypi.org/project/asyncache/\n.. _cacheing: https://github.com/breid48/cacheing\n.. _CacheToolsUtils: https://pypi.org/project/CacheToolsUtils/\n.. _kids.cache: https://pypi.org/project/kids.cache/\n.. _shelved-cache: https://pypi.org/project/shelved-cache/\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Extensible memoizing collections and decorators",
"version": "5.4.0",
"project_urls": {
"Homepage": "https://github.com/tkem/cachetools/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "04e6a1551acbaa06f3e48b311329828a34bc9c51a8cfaecdeb4d03c329a1ef85",
"md5": "3a18974717141403cb45e7c9b34eeb28",
"sha256": "3ae3b49a3d5e28a77a0be2b37dbcb89005058959cb2323858c2657c4a8cab474"
},
"downloads": -1,
"filename": "cachetools-5.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3a18974717141403cb45e7c9b34eeb28",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 9455,
"upload_time": "2024-07-15T18:46:23",
"upload_time_iso_8601": "2024-07-15T18:46:23.563201Z",
"url": "https://files.pythonhosted.org/packages/04/e6/a1551acbaa06f3e48b311329828a34bc9c51a8cfaecdeb4d03c329a1ef85/cachetools-5.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a73fea907ec6d15f68ea7f381546ba58adcb298417a59f01a2962cb5e486489f",
"md5": "1e4f423bd9620958d320764deff7076a",
"sha256": "b8adc2e7c07f105ced7bc56dbb6dfbe7c4a00acce20e2227b3f355be89bc6827"
},
"downloads": -1,
"filename": "cachetools-5.4.0.tar.gz",
"has_sig": false,
"md5_digest": "1e4f423bd9620958d320764deff7076a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 26975,
"upload_time": "2024-07-15T18:46:25",
"upload_time_iso_8601": "2024-07-15T18:46:25.973174Z",
"url": "https://files.pythonhosted.org/packages/a7/3f/ea907ec6d15f68ea7f381546ba58adcb298417a59f01a2962cb5e486489f/cachetools-5.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-15 18:46:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tkem",
"github_project": "cachetools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "cachetools"
}