cachetools

Extensible memoizing collections and decorators

72 个版本 Python >=3.10
安装
pip install cachetools
poetry add cachetools
pipenv install cachetools
conda install cachetools
描述

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/github/license/tkem/cachetools :target: https://raw.github.com/tkem/cachetools/master/LICENSE :alt: License

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

Project Resources

  • Documentation_
  • Issue tracker_
  • Source code_
  • Change log_
  • 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/ .. _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/

版本列表
7.1.4 2026-05-21
7.1.3 2026-05-18
7.1.2 2026-05-16
7.1.1 2026-05-03
7.1.0 2026-05-01
7.0.6 2026-04-20
7.0.5 2026-03-09
7.0.4 2026-03-08
7.0.3 2026-03-05
7.0.2 2026-03-02
7.0.1 2026-02-10
7.0.0 2026-02-01
6.2.6 2026-01-27
6.2.5 2026-01-25
6.2.4 2025-12-15
6.2.3 2025-12-12
6.2.2 2025-11-13
6.2.1 2025-10-12
6.2.0 2025-08-25
6.1.0 2025-06-16
6.0.0 2025-05-23
5.5.2 2025-02-20
5.5.1 2025-01-21
5.5.0 2024-08-18
5.4.0 2024-07-15
5.3.3 2024-02-26
5.3.2 2023-10-24
5.3.1 2023-05-27
5.3.0 2023-01-22
5.2.1 2023-01-08
5.2.0 2022-05-29
5.1.0 2022-05-15
5.0.0 2021-12-21
4.2.4 2021-09-30
4.2.3 2021-09-29
4.2.2 2021-04-27
4.2.1 2021-01-24
4.2.0 2020-12-10
4.1.1 2020-06-28
4.1.0 2020-04-08
4.0.0 2019-12-15
3.1.1 2019-05-23
3.1.0 2019-01-29
3.0.0 2018-11-04
2.1.0 2018-05-12
2.0.1 2017-08-11
2.0.0 2016-10-03
1.1.6 2016-04-01
1.1.5 2015-10-25
1.1.4 2015-10-24
1.1.3 2015-09-15
1.1.2 2015-09-15
1.1.1 2015-09-07
1.1.0 2015-08-28
1.0.3 2015-06-26
1.0.2 2015-06-18
1.0.1 2015-06-06
1.0.0 2014-12-19
0.8.2 2014-12-15
0.8.1 2014-12-07
0.8.0 2014-12-03
0.7.1 2014-11-24
0.7.0 2014-11-12
0.6.0 2014-10-23
0.5.1 2014-09-25
0.5.0 2014-09-23
0.4.0 2014-06-16
0.3.1 2014-05-07
0.3.0 2014-05-06
0.2.0 2014-04-02
0.1.0 2014-03-27
0.0.0 2014-03-22