summaryrefslogtreecommitdiff
path: root/addons/document_webdav/cache.py
diff options
context:
space:
mode:
authorDharmraj Jhala (OpenERP) <dizzy.zala@gmail.com>2014-03-28 10:17:41 +0530
committerDharmraj Jhala (OpenERP) <dizzy.zala@gmail.com>2014-03-28 10:17:41 +0530
commit0b8e582fac9dfa67c8d9ae330930aafee654c6f6 (patch)
tree4e5fa645849329abc0f1d68d0a845afbe2be542a /addons/document_webdav/cache.py
parentfb104246a43b07614730a38ca5da478b3c767845 (diff)
parent143a3912afbe4ef21e5af7f108fafb25a11339e4 (diff)
[MERGE] with parent branch
bzr revid: dizzy.zala@gmail.com-20140328044741-r2tmeujwibtqpwdb
Diffstat (limited to 'addons/document_webdav/cache.py')
-rw-r--r--addons/document_webdav/cache.py41
1 files changed, 0 insertions, 41 deletions
diff --git a/addons/document_webdav/cache.py b/addons/document_webdav/cache.py
deleted file mode 100644
index 95ff9d31f62..00000000000
--- a/addons/document_webdav/cache.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import time
-import heapq
-
-def memoize(maxsize):
- """decorator to 'memoize' a function - caching its results"""
- def decorating_function(f):
- cache = {} # map from key to value
- heap = [] # list of keys, in LRU heap
- cursize = 0 # because len() is slow
- def wrapper(*args):
- key = repr(args)
- # performance crap
- _cache=cache
- _heap=heap
- _heappop = heapq.heappop
- _heappush = heapq.heappush
- _time = time.time
- _cursize = cursize
- _maxsize = maxsize
- if not _cache.has_key(key):
- if _cursize == _maxsize:
- # pop oldest element
- (_,oldkey) = _heappop(_heap)
- _cache.pop(oldkey)
- else:
- _cursize += 1
- # insert this element
- _cache[key] = f(*args)
- _heappush(_heap,(_time(),key))
- wrapper.misses += 1
- else:
- wrapper.hits += 1
- return cache[key]
- wrapper.__doc__ = f.__doc__
- wrapper.__name__ = f.__name__
- wrapper.hits = wrapper.misses = 0
- return wrapper
- return decorating_function
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: