diff options
author | Raymond Hettinger <python@rcn.com> | 2010-11-30 19:15:45 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2010-11-30 19:15:45 (GMT) |
commit | 7496b4171e6a34a82ba388fa0ef125d8b87aa2a1 (patch) | |
tree | ed8fc1ddcee597b3273caf464d2397c51bd66be4 /Lib | |
parent | d01df46848da8c500665cfd59b84a1ebf25f25a2 (diff) | |
download | cpython-7496b4171e6a34a82ba388fa0ef125d8b87aa2a1.zip cpython-7496b4171e6a34a82ba388fa0ef125d8b87aa2a1.tar.gz cpython-7496b4171e6a34a82ba388fa0ef125d8b87aa2a1.tar.bz2 |
Add example, tighten text, and minor clean-ups.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/functools.py | 4 | ||||
-rw-r--r-- | Lib/test/test_functools.py | 16 |
2 files changed, 10 insertions, 10 deletions
diff --git a/Lib/functools.py b/Lib/functools.py index e8e9960..c558a5e 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -114,7 +114,7 @@ def cmp_to_key(mycmp): raise TypeError('hash not implemented') return K -_CacheInfo = namedtuple("CacheInfo", "maxsize, size, hits, misses") +_CacheInfo = namedtuple("CacheInfo", "hits misses maxsize currsize") def lru_cache(maxsize=100): """Least-recently-used cache decorator. @@ -166,7 +166,7 @@ def lru_cache(maxsize=100): def cache_info(): """Report cache statistics""" with lock: - return _CacheInfo(maxsize, len(cache), hits, misses) + return _CacheInfo(hits, misses, maxsize, len(cache)) def cache_clear(): """Clear the cache and cache statistics""" diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index c877f88..8f48e9e 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -501,7 +501,7 @@ class TestLRU(unittest.TestCase): def orig(x, y): return 3*x+y f = functools.lru_cache(maxsize=20)(orig) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(maxsize, 20) self.assertEqual(currsize, 0) self.assertEqual(hits, 0) @@ -513,18 +513,18 @@ class TestLRU(unittest.TestCase): actual = f(x, y) expected = orig(x, y) self.assertEqual(actual, expected) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertTrue(hits > misses) self.assertEqual(hits + misses, 1000) self.assertEqual(currsize, 20) f.cache_clear() # test clearing - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 0) self.assertEqual(misses, 0) self.assertEqual(currsize, 0) f(x, y) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 0) self.assertEqual(misses, 1) self.assertEqual(currsize, 1) @@ -532,7 +532,7 @@ class TestLRU(unittest.TestCase): # Test bypassing the cache self.assertIs(f.__wrapped__, orig) f.__wrapped__(x, y) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 0) self.assertEqual(misses, 1) self.assertEqual(currsize, 1) @@ -548,7 +548,7 @@ class TestLRU(unittest.TestCase): for i in range(5): self.assertEqual(f(), 20) self.assertEqual(f_cnt, 5) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 0) self.assertEqual(misses, 5) self.assertEqual(currsize, 0) @@ -564,7 +564,7 @@ class TestLRU(unittest.TestCase): for i in range(5): self.assertEqual(f(), 20) self.assertEqual(f_cnt, 1) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 4) self.assertEqual(misses, 1) self.assertEqual(currsize, 1) @@ -581,7 +581,7 @@ class TestLRU(unittest.TestCase): # * * * * self.assertEqual(f(x), x*10) self.assertEqual(f_cnt, 4) - maxsize, currsize, hits, misses = f.cache_info() + hits, misses, maxsize, currsize = f.cache_info() self.assertEqual(hits, 12) self.assertEqual(misses, 4) self.assertEqual(currsize, 2) |