mirror of
https://github.com/python/cpython.git
synced 2025-09-27 18:59:43 +00:00
Minor cleanup: add whitespace, add comments, bring function attribute updates together.
This commit is contained in:
parent
0192ba33b4
commit
1ff50df8bc
1 changed files with 4 additions and 5 deletions
|
@ -161,6 +161,7 @@ def lru_cache(maxsize=100, typed=False):
|
||||||
See: http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used
|
See: http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Users should only access the lru_cache through its public API:
|
# 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
|
# 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:
|
if maxsize == 0:
|
||||||
|
|
||||||
@wraps(user_function)
|
|
||||||
def wrapper(*args, **kwds):
|
def wrapper(*args, **kwds):
|
||||||
# no caching, just do a statistics update after a successful call
|
# no caching, just do a statistics update after a successful call
|
||||||
nonlocal misses
|
nonlocal misses
|
||||||
|
@ -202,7 +202,6 @@ def lru_cache(maxsize=100, typed=False):
|
||||||
|
|
||||||
elif maxsize is None:
|
elif maxsize is None:
|
||||||
|
|
||||||
@wraps(user_function)
|
|
||||||
def wrapper(*args, **kwds):
|
def wrapper(*args, **kwds):
|
||||||
# simple caching without ordering or size limit
|
# simple caching without ordering or size limit
|
||||||
nonlocal hits, misses
|
nonlocal hits, misses
|
||||||
|
@ -218,7 +217,6 @@ def lru_cache(maxsize=100, typed=False):
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
@wraps(user_function)
|
|
||||||
def wrapper(*args, **kwds):
|
def wrapper(*args, **kwds):
|
||||||
# size limited caching that tracks accesses by recency
|
# size limited caching that tracks accesses by recency
|
||||||
nonlocal hits, misses
|
nonlocal hits, misses
|
||||||
|
@ -238,11 +236,12 @@ def lru_cache(maxsize=100, typed=False):
|
||||||
return result
|
return result
|
||||||
result = user_function(*args, **kwds)
|
result = user_function(*args, **kwds)
|
||||||
with lock:
|
with lock:
|
||||||
|
# put result in a new link at the front of the list
|
||||||
last = root[PREV]
|
last = root[PREV]
|
||||||
link = [last, root, key, result]
|
link = [last, root, key, result]
|
||||||
cache[key] = last[NEXT] = root[PREV] = link
|
cache[key] = last[NEXT] = root[PREV] = link
|
||||||
if _len(cache) > maxsize:
|
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]
|
old_prev, old_next, old_key, old_result = root[NEXT]
|
||||||
root[NEXT] = old_next
|
root[NEXT] = old_next
|
||||||
old_next[PREV] = root
|
old_next[PREV] = root
|
||||||
|
@ -265,6 +264,6 @@ def lru_cache(maxsize=100, typed=False):
|
||||||
|
|
||||||
wrapper.cache_info = cache_info
|
wrapper.cache_info = cache_info
|
||||||
wrapper.cache_clear = cache_clear
|
wrapper.cache_clear = cache_clear
|
||||||
return wrapper
|
return update_wrapper(wrapper, user_function)
|
||||||
|
|
||||||
return decorating_function
|
return decorating_function
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue