diff options
author | Jay Hutchinson <jlhutch@gmail.com> | 2015-03-24 13:15:47 -0500 |
---|---|---|
committer | Jay Hutchinson <jlhutch@gmail.com> | 2015-03-24 13:15:47 -0500 |
commit | eca02544df4153deed1199af06ccdcdd51bd0f87 (patch) | |
tree | 04bb5fa063ccfeb8c32bfdf92ffd124a1767def5 | |
parent | b1a76a88ad56f41f71231ade3533c416d814a57f (diff) | |
download | pylru-eca02544df4153deed1199af06ccdcdd51bd0f87.tar.gz |
Fixes #13, a bug in lrudecorator.v1.0.9
-rw-r--r-- | pylru.py | 18 | ||||
-rw-r--r-- | setup.py | 2 |
2 files changed, 17 insertions, 3 deletions
@@ -535,8 +535,22 @@ import functools class lrudecorator(object): def __init__(self, size): - self.size = size + self.cache = lrucache(size) def __call__(self, func): - wrapper = FunctionCacheManager(func, self.size) + def wrapper(*args, **kwargs): + kwtuple = tuple((key, kwargs[key]) for key in sorted(kwargs.keys())) + key = (args, kwtuple) + try: + return self.cache[key] + except KeyError: + pass + + value = func(*args, **kwargs) + self.cache[key] = value + return value + + wrapper.cache = self.cache + wrapper.size = self.cache.size + wrapper.clear = self.cache.clear return functools.update_wrapper(wrapper, func) @@ -2,7 +2,7 @@ from distutils.core import setup setup( name = "pylru", - version = "1.0.8", + version = "1.0.9", py_modules=['pylru'], description = "A least recently used (LRU) cache implementation", author = "Jay Hutchinson", |