summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Bicking <ian@ianbicking.org>2005-07-25 16:34:04 +0000
committerIan Bicking <ian@ianbicking.org>2005-07-25 16:34:04 +0000
commit172deed0c71ae2b4e8fbc3fcbf82776e6c3727ec (patch)
treee65633729dd641e4eef4aa56bdeb5c04dcaa2ea3
parent6a1c9e954d191e0caaa90ad7613f559acf4da8a6 (diff)
downloadpaste-git-172deed0c71ae2b4e8fbc3fcbf82776e6c3727ec.tar.gz
Add supplemental information about the servlet to tracebacks
-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 ##