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).

The cachetools module implements multiple cache classes based on different caching algorithms, as well as decorators for easily memoizing function and method calls.

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, 2015 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.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

cachetools-1.1.0-py2.py3-none-any.whl (14.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for cachetools-1.1.0.tar.gz
Algorithm Hash digest
SHA256 089aca268864a5d1fd77ad96f51ef6afe011d7df55df21ca586968e2a24d68dd
MD5 83c37923127c40dbfa3d7c8e20553c23
BLAKE2b-256 aa567460eef66e0ba8621b319dfc42c19d481a1ef3701ca985e8eddcdbd51373

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cachetools-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7535e4546c8ac797326be781e4fe254d6190ae7d30e65ed45291462bf2f5a01a
MD5 e7ff7131ba96689d1dcf2cabbc8db0f8
BLAKE2b-256 92b753f2e2674db18c2b73bd70efe46e4f215ebb8d75fff71d8ad3ae018c1699

See more details on using hashes here.

Supported by

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