diff options
| author | ianb <devnull@localhost> | 2005-07-25 16:34:04 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-07-25 16:34:04 +0000 |
| commit | 906b58b9d6bc62a02cc151423b6481ecf409d5ff (patch) | |
| tree | e65633729dd641e4eef4aa56bdeb5c04dcaa2ea3 /paste/webkit | |
| parent | 5efbd3c2dd1c336dc75e0bbbc54462e40dcc6ab6 (diff) | |
| download | paste-906b58b9d6bc62a02cc151423b6481ecf409d5ff.tar.gz | |
Add supplemental information about the servlet to tracebacks
Diffstat (limited to 'paste/webkit')
| -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 ## |
