]> granicus.if.org Git - python/commitdiff
Minor cleanup: add whitespace, add comments, bring function attribute updates together.
authorRaymond Hettinger <python@rcn.com>
Fri, 30 Mar 2012 20:15:48 +0000 (13:15 -0700)
committerRaymond Hettinger <python@rcn.com>
Fri, 30 Mar 2012 20:15:48 +0000 (13:15 -0700)
Lib/functools.py

index 331da3c0c31f4d3e075cc831260e4c29e5ad5b69..299e9d8bf1983e4ca795f3cf11d85e4859f21041 100644 (file)
@@ -161,6 +161,7 @@ def lru_cache(maxsize=100, typed=False):
     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__
     # The internals of the lru_cache are encapsulated for thread safety and
@@ -192,7 +193,6 @@ def lru_cache(maxsize=100, typed=False):
 
         if maxsize == 0:
 
-            @wraps(user_function)
             def wrapper(*args, **kwds):
                 # no caching, just do a statistics update after a successful call
                 nonlocal misses
@@ -202,7 +202,6 @@ def lru_cache(maxsize=100, typed=False):
 
         elif maxsize is None:
 
-            @wraps(user_function)
             def wrapper(*args, **kwds):
                 # simple caching without ordering or size limit
                 nonlocal hits, misses
@@ -218,7 +217,6 @@ def lru_cache(maxsize=100, typed=False):
 
         else:
 
-            @wraps(user_function)
             def wrapper(*args, **kwds):
                 # size limited caching that tracks accesses by recency
                 nonlocal hits, misses
@@ -238,11 +236,12 @@ def lru_cache(maxsize=100, typed=False):
                         return result
                 result = user_function(*args, **kwds)
                 with lock:
+                    # put result in a new link at the front of the list
                     last = root[PREV]
                     link = [last, root, key, result]
                     cache[key] = last[NEXT] = root[PREV] = link
                     if _len(cache) > maxsize:
-                        # purge least recently used cache entry
+                        # purge the least recently used cache entry
                         old_prev, old_next, old_key, old_result = root[NEXT]
                         root[NEXT] = old_next
                         old_next[PREV] = root
@@ -265,6 +264,6 @@ def lru_cache(maxsize=100, typed=False):
 
         wrapper.cache_info = cache_info
         wrapper.cache_clear = cache_clear
-        return wrapper
+        return update_wrapper(wrapper, user_function)
 
     return decorating_function