diff options
author | Ian Bicking <ian@ianbicking.org> | 2005-07-25 16:34:04 +0000 |
---|---|---|
committer | Ian Bicking <ian@ianbicking.org> | 2005-07-25 16:34:04 +0000 |
commit | 172deed0c71ae2b4e8fbc3fcbf82776e6c3727ec (patch) | |
tree | e65633729dd641e4eef4aa56bdeb5c04dcaa2ea3 | |
parent | 6a1c9e954d191e0caaa90ad7613f559acf4da8a6 (diff) | |
download | paste-git-172deed0c71ae2b4e8fbc3fcbf82776e6c3727ec.tar.gz |
Add supplemental information about the servlet to tracebacks
-rw-r--r-- | paste/webkit/wkservlet.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/paste/webkit/wkservlet.py b/paste/webkit/wkservlet.py index 47e9a89..e2a7654 100644 --- a/paste/webkit/wkservlet.py +++ b/paste/webkit/wkservlet.py @@ -18,6 +18,21 @@ class make_application(object): return type()(environ, start_response) return application +class ServletSupplement(object): + + def __init__(self, servlet): + self.servlet = servlet + + def extraData(self): + result = {} + result[('normal', 'Servlet variables')] = vars = {} + hide = self.servlet.__traceback_supplement_hide_vars__ + for name, value in self.servlet.__dict__.items(): + if name in hide: + continue + vars[name] = value + return result + class Servlet(object): # This is nested in Servlet so that transactions can access it as @@ -33,6 +48,7 @@ class Servlet(object): The core WSGI method, and the core of the servlet execution. """ __traceback_hide__ = 'before_and_this' + __traceback_supplement__ = ServletSupplement, self trans = Transaction(environ, start_response) trans.setServlet(self) try: @@ -46,6 +62,13 @@ class Servlet(object): return trans.response().wsgiIterator() wsgi_app = make_application() + + # These variables are hidden in tracebacks (because they are + # boring): (feel free to extend this list in your servlets!) + __traceback_supplement_hide_vars__ = [ + 'config', '_session', '_request', '_response', + '_methodForRequestType', '_actionDict', '_title', + '_transaction'] ## Access ## |