]> granicus.if.org Git - python/commitdiff
Flatten the lru cache keyword args tuple for better memory utilization.
authorRaymond Hettinger <python@rcn.com>
Sun, 29 Apr 2012 19:28:02 +0000 (12:28 -0700)
committerRaymond Hettinger <python@rcn.com>
Sun, 29 Apr 2012 19:28:02 +0000 (12:28 -0700)
Lib/functools.py

index ae4175d6a082713a89c0e565563a8ae1b37d0195..1e7795f79203a8cc5e66afbfd9085dd78a2ecc59 100644 (file)
@@ -185,7 +185,9 @@ def lru_cache(maxsize=100, typed=False):
             key = args
             if kwds:
                 sorted_items = tuple(sorted(kwds.items()))
-                key += kwd_mark + sorted_items
+                key += kwd_mark
+                key += tuple(k for k, v in sorted_items)
+                key += tuple(v for k, v in sorted_items)
             if typed:
                 key += tuple(type(v) for v in args)
                 if kwds: