summaryrefslogtreecommitdiff
path: root/paste/cgitb_catcher.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2005-05-14 22:40:47 +0000
committerianb <devnull@localhost>2005-05-14 22:40:47 +0000
commit2d9df0c6e85a20f434778510d10c7fb4c8eb5265 (patch)
treebe0f40e68db3ea0267af25b85813f6747c8df809 /paste/cgitb_catcher.py
parenta7cb65cf7a1b594e8cf35472b6bfe4bda19330cf (diff)
downloadpaste-2d9df0c6e85a20f434778510d10c7fb4c8eb5265.tar.gz
Added start_response exc_info argument
Diffstat (limited to 'paste/cgitb_catcher.py')
-rw-r--r--paste/cgitb_catcher.py42
1 files changed, 2 insertions, 40 deletions
diff --git a/paste/cgitb_catcher.py b/paste/cgitb_catcher.py
index b8f4915..732f7e1 100644
--- a/paste/cgitb_catcher.py
+++ b/paste/cgitb_catcher.py
@@ -19,8 +19,8 @@ def middleware(application, **kw):
def start_application(environ, start_response):
started = []
- def detect_start_response(status, headers):
- started.append(start_response(status, headers))
+ def detect_start_response(status, headers, exc_info=None):
+ started.append(start_response(status, headers, exc_info))
return started[0]
try:
@@ -55,41 +55,3 @@ def middleware(application, **kw):
yield dummy_file.getvalue()
return start_application
-
-def simple_middleware(application, **kw):
-
- def start_application(environ, start_response):
- started = []
-
- def detect_start_response(status, headers):
- started.append(start_response(status, headers))
- return started[0]
-
- try:
- app_iter = application(environ, start_response)
- return catching_iter(app_iter)
- except:
- if not started:
- write = start_response('500 Internal Server Error',
- [('content-type', 'text/html')])
- else:
- write = started[0]
-
- out = String()
- traceback.print_exc(file=out)
- return ['<html><body><pre>%s</pre></body></html>'
- % out.getvalue()]
-
- def catching_iter(iter):
- if not iter:
- raise StopIteration
- try:
- for v in iter:
- yield iter
- except:
- exc = sys.exc_info()
- dummy_file = StringIO()
- traceback.print_exc(file=dummy_file)
- yield dummy_file.getvalue()
-
- return start_application