summaryrefslogtreecommitdiff
path: root/decorators.py
diff options
context:
space:
mode:
authorAurelien Campeas <aurelien.campeas@logilab.fr>2010-04-16 16:10:24 +0200
committerAurelien Campeas <aurelien.campeas@logilab.fr>2010-04-16 16:10:24 +0200
commit5a59bb0cd7df2de64ed0071921498768707b07fc (patch)
treebcdeb79c686bbc618730e3448f6ea098e93a21c3 /decorators.py
parent68d0bf4da2c30b522bec4ce00f53d612333449e4 (diff)
downloadlogilab-common-5a59bb0cd7df2de64ed0071921498768707b07fc.tar.gz
[decorators] fix docstring handling and add a test #23389
Diffstat (limited to 'decorators.py')
-rw-r--r--decorators.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/decorators.py b/decorators.py
index 9e5e085..cb3070f 100644
--- a/decorators.py
+++ b/decorators.py
@@ -14,7 +14,6 @@ import sys, re
def cached(callableobj, keyarg=None):
"""Simple decorator to cache result of method call."""
- #print callableobj, keyarg, callableobj.func_code.co_argcount
if callableobj.func_code.co_argcount == 1 or keyarg == 0:
def cache_wrapper1(self, *args):
@@ -27,6 +26,7 @@ def cached(callableobj, keyarg=None):
value = callableobj(self, *args)
setattr(self, cache, value)
return value
+ cache_wrapper1.__doc__ = callableobj.__doc__
return cache_wrapper1
elif keyarg:
@@ -47,6 +47,7 @@ def cached(callableobj, keyarg=None):
#print 'miss', self, cache, key
_cache[key] = callableobj(self, *args, **kwargs)
return _cache[key]
+ cache_wrapper2.__doc__ = callableobj.__doc__
return cache_wrapper2
def cache_wrapper3(self, *args):
@@ -64,6 +65,7 @@ def cached(callableobj, keyarg=None):
#print 'miss'
_cache[args] = callableobj(self, *args)
return _cache[args]
+ cache_wrapper3.__doc__ = callableobj.__doc__
return cache_wrapper3
def clear_cache(obj, funcname):