diff options
author | Michele Simionato <michele.simionato@gmail.com> | 2014-07-29 11:57:01 +0200 |
---|---|---|
committer | Michele Simionato <michele.simionato@gmail.com> | 2014-07-29 11:57:01 +0200 |
commit | 807443ef3d043565a00ba475aa8d132006304b77 (patch) | |
tree | e8e2b4a22bc75da4c67c708e91185f2610eeacc7 /sqlplain/memoize.py | |
parent | 90ecdcfcdb3fb64d6f5db609a97d9c18d54652ee (diff) | |
download | micheles-master.tar.gz |
Diffstat (limited to 'sqlplain/memoize.py')
-rw-r--r-- | sqlplain/memoize.py | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/sqlplain/memoize.py b/sqlplain/memoize.py deleted file mode 100644 index 45e0f18..0000000 --- a/sqlplain/memoize.py +++ /dev/null @@ -1,40 +0,0 @@ -from decorator import decorator - -class Memoize(object): - - registry = [] - - @classmethod - def clear(cls, cachetype=object): - for func in cls.registry: - if issubclass(func.cachetype, cachetype): - func.cache.clear() - - def __init__(self, cachetype): - self.cachetype = cachetype - - def call(self, func, *args, **kw): - if kw: - key = args, frozenset(kw.iteritems()) - else: - key = args - try: - return func.cache[key] - except KeyError: - res = func.cache[key] = func(*args, **kw) - return res - - def __call__(self, func): - func.cache = {} - new = decorator(self.call, func) - new.cachetype = self.cachetype - self.registry.append(new) - return new - -memoize = Memoize(object) - -if __name__ == '__main__': # test - - @memoize - def f(): - return 1 |