summaryrefslogtreecommitdiffstats
path: root/Doc/library/functools.rst
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2010-07-31 10:11:39 (GMT)
committerRaymond Hettinger <python@rcn.com>2010-07-31 10:11:39 (GMT)
commit9e46ef819c38ec76273d7ffb35bcd14a558d35d4 (patch)
treed18a0bf2fdcf650f268b97945d058effbc357d40 /Doc/library/functools.rst
parent17e3d698b512025d525c1ecb6b0531b575ad5518 (diff)
downloadcpython-9e46ef819c38ec76273d7ffb35bcd14a558d35d4.zip
cpython-9e46ef819c38ec76273d7ffb35bcd14a558d35d4.tar.gz
cpython-9e46ef819c38ec76273d7ffb35bcd14a558d35d4.tar.bz2
Add functools.lfu_cache() and functools.lru_cache().
Diffstat (limited to 'Doc/library/functools.rst')
-rw-r--r--Doc/library/functools.rst51
1 files changed, 51 insertions, 0 deletions
diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst
index a9819f2..b2d69de 100644
--- a/Doc/library/functools.rst
+++ b/Doc/library/functools.rst
@@ -37,6 +37,57 @@ The :mod:`functools` module defines the following functions:
.. versionadded:: 3.2
+.. decorator:: lfu_cache(maxsize)
+
+ Decorator to wrap a function with a memoizing callable that saves up to the
+ *maxsize* most frequent calls. It can save time when an expensive or I/O
+ bound function is periodically called with the same arguments.
+
+ The *maxsize* parameter defaults to 100. Since a dictionary is used to cache
+ results, the positional and keyword arguments to the function must be
+ hashable.
+
+ The wrapped function is instrumented with two attributes, :attr:`hits`
+ and :attr:`misses` which count the number of successful or unsuccessful
+ cache lookups. These statistics are helpful for tuning the *maxsize*
+ parameter and for measuring the cache's effectiveness.
+
+ The wrapped function also has a :attr:`clear` attribute which can be
+ called (with no arguments) to clear the cache.
+
+ A `LFU (least frequently used) cache
+ <http://en.wikipedia.org/wiki/Cache_algorithms#Least-Frequently_Used>`_
+ is indicated when the pattern of calls does not change over time, when
+ more the most common calls already seen are the best predictors of the
+ most common upcoming calls.
+
+ .. versionadded:: 3.2
+
+.. decorator:: lru_cache(maxsize)
+
+ Decorator to wrap a function with a memoizing callable that saves up to the
+ *maxsize* most recent calls. It can save time when an expensive or I/O bound
+ function is periodically called with the same arguments.
+
+ The *maxsize* parameter defaults to 100. Since a dictionary is used to cache
+ results, the positional and keyword arguments to the function must be
+ hashable.
+
+ The wrapped function is instrumented with two attributes, :attr:`hits`
+ and :attr:`misses` which count the number of successful or unsuccessful
+ cache lookups. These statistics are helpful for tuning the *maxsize*
+ parameter and for measuring the cache's effectiveness.
+
+ The wrapped function also has a :attr:`clear` attribute which can be
+ called (with no arguments) to clear the cache.
+
+ A `LRU (least recently used) cache
+ <http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used>`_
+ is indicated when the pattern of calls changes over time, such as
+ when more recent calls are the best predictors of upcoming calls.
+
+ .. versionadded:: 3.2
+
.. decorator:: total_ordering
Given a class defining one or more rich comparison ordering methods, this