skip to navigation
skip to content

cachetools 0.3.1

Extensible memoizing collections and decorators

Latest Version: 2.0.1

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

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

For the purpose of this module, a cache is a mutable mapping with additional attributes size and maxsize, which hold the current and maximum size of the cache, and a (possibly static) method getsizeof.

The current size of the cache is the sum of the results of getsizeof applied to each of the cache’s values, i.e. cache.size == sum(map(cache.getsizeof, cache.values()), 0). As a special case, if getsizeof returns 1 irrespective of its argument, cache.size == len(cache).

When the cache is full, i.e. cache.size > cache.maxsize, the cache must choose which item(s) to discard based on a suitable cache algorithm.

This module provides various cache implementations based on different cache algorithms, as well as decorators for easily memoizing function and method calls.


Install cachetools using pip:

pip install cachetools


Copyright (c) 2014 Thomas Kemmer.

Licensed under the MIT License.

File Type Py Version Uploaded on Size
cachetools-0.3.1.tar.gz (md5) Source 2014-05-07 6KB