Sync-up minor code edits with the default branch.
This commit is contained in:
parent
102d874999
commit
8cd2e5f751
|
@ -97,7 +97,7 @@ def cmp_to_key(mycmp):
|
||||||
"""Convert a cmp= function into a key= function"""
|
"""Convert a cmp= function into a key= function"""
|
||||||
class K(object):
|
class K(object):
|
||||||
__slots__ = ['obj']
|
__slots__ = ['obj']
|
||||||
def __init__(self, obj, *args):
|
def __init__(self, obj):
|
||||||
self.obj = obj
|
self.obj = obj
|
||||||
def __lt__(self, other):
|
def __lt__(self, other):
|
||||||
return mycmp(self.obj, other.obj) < 0
|
return mycmp(self.obj, other.obj) < 0
|
||||||
|
@ -140,7 +140,7 @@ def lru_cache(maxsize=100):
|
||||||
tuple=tuple, sorted=sorted, len=len, KeyError=KeyError):
|
tuple=tuple, sorted=sorted, len=len, KeyError=KeyError):
|
||||||
|
|
||||||
hits = misses = 0
|
hits = misses = 0
|
||||||
kwd_mark = object() # separates positional and keyword args
|
kwd_mark = (object(),) # separates positional and keyword args
|
||||||
lock = Lock() # needed because ordereddicts aren't threadsafe
|
lock = Lock() # needed because ordereddicts aren't threadsafe
|
||||||
|
|
||||||
if maxsize is None:
|
if maxsize is None:
|
||||||
|
@ -151,7 +151,7 @@ def lru_cache(maxsize=100):
|
||||||
nonlocal hits, misses
|
nonlocal hits, misses
|
||||||
key = args
|
key = args
|
||||||
if kwds:
|
if kwds:
|
||||||
key += (kwd_mark,) + tuple(sorted(kwds.items()))
|
key += kwd_mark + tuple(sorted(kwds.items()))
|
||||||
try:
|
try:
|
||||||
result = cache[key]
|
result = cache[key]
|
||||||
hits += 1
|
hits += 1
|
||||||
|
@ -170,7 +170,7 @@ def lru_cache(maxsize=100):
|
||||||
nonlocal hits, misses
|
nonlocal hits, misses
|
||||||
key = args
|
key = args
|
||||||
if kwds:
|
if kwds:
|
||||||
key += (kwd_mark,) + tuple(sorted(kwds.items()))
|
key += kwd_mark + tuple(sorted(kwds.items()))
|
||||||
try:
|
try:
|
||||||
with lock:
|
with lock:
|
||||||
result = cache[key]
|
result = cache[key]
|
||||||
|
|
Loading…
Reference in New Issue