Save references to wrapped functions.
authorFredrik Tolf <fredrik@dolda2000.com>
Tue, 4 Jun 2013 13:18:52 +0000 (15:18 +0200)
committerFredrik Tolf <fredrik@dolda2000.com>
Tue, 4 Jun 2013 13:18:52 +0000 (15:18 +0200)
wrw/dispatch.py
wrw/util.py

index 4d22b72..1dedbe6 100644 (file)
@@ -24,6 +24,7 @@ def defaulterror(req, excinfo):
 def wraphandler(handler, excinfo):
     def wrapped(req):
         return handler(req, excinfo)
+    wrapped.__wrapped__ = handler
     return wrapped
 
 errorhandler = env.var(defaulterror)
index abf865e..e601be3 100644 (file)
@@ -4,6 +4,7 @@ import req, dispatch, session, form, resp, proto
 def wsgiwrap(callable):
     def wrapper(env, startreq):
         return dispatch.handleenv(env, startreq, callable)
+    wrapper.__wrapped__ = callable
     return wrapper
 
 def formparams(callable):
@@ -20,6 +21,7 @@ def formparams(callable):
             if spec.args[i] not in args:
                 raise resp.httperror(400, "Missing parameter", ("The query parameter `", resp.h.code(spec.args[i]), "' is required but not supplied."))
         return callable(**args)
+    wrapper.__wrapped__ = callable
     return wrapper
 
 def funplex(*funs, **nfuns):
@@ -55,6 +57,7 @@ def persession(data = None):
                         sess[data] = data()
                     sess[callable] = callable(data)
             return sess[callable].handle(req)
+        wrapper.__wrapped__ = callable
         return wrapper
     return dec
 
@@ -87,6 +90,7 @@ class preiter(object):
 def pregen(callable):
     def wrapper(*args, **kwargs):
         return preiter(callable(*args, **kwargs))
+    wrapper.__wrapped__ = callable
     return wrapper
 
 class sessiondata(object):