summaryrefslogtreecommitdiffstats
path: root/Lib/functools.py
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2017-01-09 01:28:20 (GMT)
committerRaymond Hettinger <python@rcn.com>2017-01-09 01:28:20 (GMT)
commit4ee39141e84c511e389080fa3163be043718ea14 (patch)
tree9b8afc8bc79de080d4bde2a4068f9de6d6f15191 /Lib/functools.py
parent04316c4cc8f89e8e87efd055b9626eb9049340c6 (diff)
downloadcpython-4ee39141e84c511e389080fa3163be043718ea14.zip
cpython-4ee39141e84c511e389080fa3163be043718ea14.tar.gz
cpython-4ee39141e84c511e389080fa3163be043718ea14.tar.bz2
Issue #29203: functools.lru_cache() now respects PEP 468
Diffstat (limited to 'Lib/functools.py')
-rw-r--r--Lib/functools.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/Lib/functools.py b/Lib/functools.py
index 45e5f87..030c91b 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -421,7 +421,7 @@ class _HashedSeq(list):
def _make_key(args, kwds, typed,
kwd_mark = (object(),),
fasttypes = {int, str, frozenset, type(None)},
- sorted=sorted, tuple=tuple, type=type, len=len):
+ tuple=tuple, type=type, len=len):
"""Make a cache key from optionally typed positional and keyword arguments
The key is constructed in a way that is flat as possible rather than
@@ -434,14 +434,13 @@ def _make_key(args, kwds, typed,
"""
key = args
if kwds:
- sorted_items = sorted(kwds.items())
key += kwd_mark
- for item in sorted_items:
+ for item in kwds.items():
key += item
if typed:
key += tuple(type(v) for v in args)
if kwds:
- key += tuple(type(v) for k, v in sorted_items)
+ key += tuple(type(v) for v in kwds.values())
elif len(key) == 1 and type(key[0]) in fasttypes:
return key[0]
return _HashedSeq(key)