Skip to main content

Extensible memoizing collections and decorators

Project description

This module provides various memoizing collections and decorators, including variants of the Python 3 Standard Library @lru_cache function decorator.

>>> from cachetools import LRUCache
>>> cache = LRUCache(maxsize=2)
>>> cache.update([('first', 1), ('second', 2)])
>>> cache
LRUCache([('second', 2), ('first', 1)], maxsize=2, currsize=2)
>>> cache['third'] = 3
>>> cache
LRUCache([('second', 2), ('third', 3)], maxsize=2, currsize=2)
>>> cache['second']
2
>>> cache['fourth'] = 4
>>> cache
LRUCache([('second', 2), ('fourth', 4)], maxsize=2, currsize=2)

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. In general, a cache’s size is the total size of its items, and an item’s size is a property or function of its value, e.g. the result of sys.getsizeof(value). For the trivial but common case that each item counts as 1, a cache’s size is equal to the number of its items, or len(cache).

Multiple cache classes based on different caching algorithms are implemented, and decorators for easily memoizing function and method calls are provided, too.

Installation

Install cachetools using pip:

pip install cachetools

Project Resources

Latest PyPI version Number of PyPI downloads Travis CI build status Test coverage

License

Copyright (c) 2014-2016 Thomas Kemmer.

Licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cachetools-1.1.6.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cachetools-1.1.6-py2.py3-none-any.whl (12.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cachetools-1.1.6.tar.gz.

File metadata

  • Download URL: cachetools-1.1.6.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cachetools-1.1.6.tar.gz
Algorithm Hash digest
SHA256 d1a44ffd2eedd138f3ba69038feb807ea54cb24e8a207a52d3a8603bc4961821
MD5 387d7f34effd9335ae55bd0762e77bfa
BLAKE2b-256 ba00b0ec69e21142cd838b2383a7881cf18368e35847cb66f908c8f25bcbaafc

See more details on using hashes here.

File details

Details for the file cachetools-1.1.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cachetools-1.1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 813437be8fe35ddd4ada15f40aeb5d1b955aea5382a3ab568fd6dc9a565727f5
MD5 4d45315ca4c90189d1dd4dbd2116639c
BLAKE2b-256 2ad8a3a54933668a0cda92d67c07747be1292555c8ccc28d61e8edf519ea920f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page