summaryrefslogtreecommitdiff
path: root/paste/webkit
diff options
context:
space:
mode:
authorianb <devnull@localhost>2005-07-25 16:34:04 +0000
committerianb <devnull@localhost>2005-07-25 16:34:04 +0000
commit906b58b9d6bc62a02cc151423b6481ecf409d5ff (patch)
treee65633729dd641e4eef4aa56bdeb5c04dcaa2ea3 /paste/webkit
parent5efbd3c2dd1c336dc75e0bbbc54462e40dcc6ab6 (diff)
downloadpaste-906b58b9d6bc62a02cc151423b6481ecf409d5ff.tar.gz
Add supplemental information about the servlet to tracebacks
Diffstat (limited to 'paste/webkit')
-rw-r--r--paste/webkit/wkservlet.py23
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 ##