freshcrate
Home > Frameworks > cachetools

cachetools

Extensible memoizing collections and decorators

Description

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 asyncio. - cachetools-async_: Helpers to use cachetools_ with asyncio. - cacheing_: Pure Python Cacheing Library. - CacheToolsUtils_: Stackable cache classes for sharing, encryption, statistics *and more* on top of cachetools_, redis_ and memcached_. - shelved-cache_: Persistent cache implementation for Python cachetools_. License ------------------------------------------------------------------------ Copyright (c) 2014-2026 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/ .. _cachetools-async: https://pypi.org/project/cachetools-async/ .. _cacheing: https://pypi.org/project/cacheing/ .. _CacheToolsUtils: https://pypi.org/project/CacheToolsUtils/ .. _shelved-cache: https://pypi.org/project/shelved-cache/ .. _cachetools: https://pypi.org/project/cachetools/ .. _redis: https://redis.io/ .. _memcached: https://memcached.org/

Release History

VersionChangesUrgencyDate
7.0.6Imported from PyPI (7.0.6)Low4/21/2026
v7.0.6Tag v7.0.6High4/20/2026
v7.0.5Tag v7.0.5Low3/9/2026
v7.0.4Tag v7.0.4Low3/8/2026
v7.0.3Tag v7.0.3Low3/5/2026
v7.0.2Tag v7.0.2Low3/2/2026
v7.0.1Tag v7.0.1Low2/10/2026
v7.0.0Tag v7.0.0Low2/1/2026
v6.2.6Tag v6.2.6Low1/27/2026
v6.2.5Tag v6.2.5Low1/25/2026
v6.2.4Tag v6.2.4Low12/15/2025
v6.2.3Tag v6.2.3Low12/12/2025
v6.2.2Tag v6.2.2Low11/13/2025
v6.2.1Tag v6.2.1Low10/12/2025
v6.2.0Tag v6.2.0Low8/25/2025
v6.1.0Tag v6.1.0Low6/16/2025
v6.0.0Tag v6.0.0Low5/23/2025
v5.5.2Tag v5.5.2Low2/20/2025
v5.5.1Tag v5.5.1Low1/21/2025
v5.5.0Tag v5.5.0Low8/18/2024
v5.4.0Tag v5.4.0Low7/15/2024

Dependencies & License Audit

Loading dependencies...

Similar Packages

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.v4.6.0
azure-core-tracing-opentelemetryMicrosoft Azure Azure Core OpenTelemetry plugin Library for Pythonazure-template_0.1.0b6187637
spdx-toolsSPDX parser and tools.0.8.5
lacesDjango components that know how to render themselves.0.1.2
django-tasksA backport of Django's built in Tasks framework0.12.0