Neaten-up a bit.
authorRaymond Hettinger <python@rcn.com>
Tue, 30 Nov 2010 07:13:04 +0000 (07:13 +0000)
committerRaymond Hettinger <python@rcn.com>
Tue, 30 Nov 2010 07:13:04 +0000 (07:13 +0000)
Doc/library/functools.rst
Doc/whatsnew/3.2.rst
Lib/functools.py

index a8fc8569a1dbc9d7d624c0975931b7b629e6b7c0..5b65874035fd071f7b6d49d89ef6c516723c1e2e 100644 (file)
@@ -72,10 +72,10 @@ The :mod:`functools` module defines the following functions:
 
    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
+   works best when more recent calls are the best predictors of upcoming calls
    (for example, the most popular articles on a news server tend to
-   change every day).
+   change each day).  The cache's size limit assurs that caching does not
+   grow without bound on long-running processes such as web servers.
 
    .. versionadded:: 3.2
 
index 91ab849a65ac125be17ebb8f73422e8113396927..2d1f0efe1bbf7b9c1bd76e0e5e64a12a4e6108c6 100644 (file)
@@ -332,15 +332,13 @@ New, Improved, and Deprecated Modules
          c.execute('SELECT phonenumber FROM phonelist WHERE name=?', (name,))
          return c.fetchone()[0]
 
-  XXX: update for Issue 10586 changes to cache statistics API
-
   To help with choosing an effective cache size, the wrapped function is
-  instrumented with two attributes *cache_hits* and *cache_misses*:
+  instrumented with info function:
 
   >>> for name in user_requests:
   ...     get_phone_number(name)
-  >>> print(get_phone_number.cache_hits, get_phone_number.cache_misses)
-  4805 980
+  >>> get_phone_number.cache_info()
+  CacheInfo(maxsize=300, size=300, hits=4805, misses=980)
 
   If the phonelist table gets updated, the outdated contents of the cache can be
   cleared with:
index c223a629d03f86db3a74dcf794d038602619c9ca..e8e99600c6b6bca709d9c0260d4b308a9dec568f 100644 (file)
@@ -121,16 +121,15 @@ def lru_cache(maxsize=100):
 
     Arguments to the cached function must be hashable.
 
-    Significant statistics (maxsize, size, hits, misses) are
-      available through the f.cache_info() named tuple.
-    Clear the cache and statistics using f.cache_clear().
-    The underlying function is stored in f.__wrapped__.
+    View the cache statistics named tuple (maxsize, size, hits, misses) with
+    f.cache_info().  Clear the cache and statistics with f.cache_clear().
+    And access the underlying function with f.__wrapped__.
 
     See:  http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used
 
     """
     # Users should only access the lru_cache through its public API:
-    #   cache_info, cache_clear, and f.__wrapped__
+    #       cache_info, cache_clear, and f.__wrapped__
     # The internals of the lru_cache are encapsulated for thread safety and
     # to allow the implementation to change (including a possible C version).
 
@@ -141,7 +140,7 @@ def lru_cache(maxsize=100):
         cache_popitem = cache.popitem
         cache_renew = cache.move_to_end
         hits = misses = 0
-        kwd_mark = object()             # separate positional and keyword args
+        kwd_mark = object()             # separates positional and keyword args
         lock = Lock()
 
         @wraps(user_function)
@@ -165,7 +164,7 @@ def lru_cache(maxsize=100):
             return result
 
         def cache_info():
-            """Report significant cache statistics"""
+            """Report cache statistics"""
             with lock:
                 return _CacheInfo(maxsize, len(cache), hits, misses)