summaryrefslogtreecommitdiff
path: root/paste
diff options
context:
space:
mode:
authorCyril Roelandt <cyril.roelandt@enovance.com>2014-03-18 12:37:15 +0100
committerCyril Roelandt <cyril.roelandt@enovance.com>2014-03-18 12:37:15 +0100
commit6916751bf7d7107f5dce709c02ae8e60c46e1176 (patch)
treecf36e8135e8613d14054009b73e14ba291840536 /paste
parent9789a96ca9aab44bd71fdcfc5c0bed1ef7cf0838 (diff)
downloadpaste-6916751bf7d7107f5dce709c02ae8e60c46e1176.tar.gz
Python 3: use six.reraise() to re-raise an exception with the traceback
Diffstat (limited to 'paste')
-rw-r--r--paste/debug/profile.py3
-rwxr-xr-xpaste/httpserver.py3
-rw-r--r--paste/modpython.py3
-rw-r--r--paste/recursive.py5
-rw-r--r--paste/util/scgiserver.py3
-rw-r--r--paste/util/template.py7
-rw-r--r--paste/wsgilib.py5
7 files changed, 18 insertions, 11 deletions
diff --git a/paste/debug/profile.py b/paste/debug/profile.py
index 8e2d40a..036c805 100644
--- a/paste/debug/profile.py
+++ b/paste/debug/profile.py
@@ -12,6 +12,7 @@ import hotshot
import hotshot.stats
import threading
import cgi
+import six
import time
from cStringIO import StringIO
from paste import response
@@ -200,7 +201,7 @@ class DecoratedProfile(object):
f.close()
if exc_info:
# We captured an exception earlier, now we re-raise it
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
return result
def format_function(self, func, *args, **kw):
diff --git a/paste/httpserver.py b/paste/httpserver.py
index 126c28a..d864cec 100755
--- a/paste/httpserver.py
+++ b/paste/httpserver.py
@@ -22,6 +22,7 @@ import traceback
from six.moves.urllib.parse import unquote
import socket, sys, threading, urlparse, Queue
import posixpath
+import six
import time
import thread
import os
@@ -155,7 +156,7 @@ class WSGIHandlerMixin:
if exc_info:
try:
if self.wsgi_headers_sent:
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
else:
# In this case, we're going to assume that the
# higher-level code is currently handling the
diff --git a/paste/modpython.py b/paste/modpython.py
index a3fef55..692a94f 100644
--- a/paste/modpython.py
+++ b/paste/modpython.py
@@ -49,6 +49,7 @@ This module highly based on Robert Brewer's, here:
http://projects.amor.org/misc/svn/modpython_gateway.py
"""
+import six
import traceback
try:
@@ -176,7 +177,7 @@ class Handler(object):
if exc_info:
try:
if self.started:
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
finally:
exc_info = None
diff --git a/paste/recursive.py b/paste/recursive.py
index 13d33e8..8f28fc3 100644
--- a/paste/recursive.py
+++ b/paste/recursive.py
@@ -23,6 +23,7 @@ Raise ``ForwardRequestException(new_path_info)`` to do a forward
(aborting the current request).
"""
+import six
import warnings
from six.moves import cStringIO as StringIO
@@ -319,7 +320,7 @@ class Includer(Recursive):
response = IncludedResponse()
def start_response(status, headers, exc_info=None):
if exc_info:
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
response.status = status
response.headers = headers
return response.write
@@ -373,7 +374,7 @@ class IncluderAppIter(Recursive):
response = IncludedAppIterResponse()
def start_response(status, headers, exc_info=None):
if exc_info:
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
response.status = status
response.headers = headers
return response.write
diff --git a/paste/util/scgiserver.py b/paste/util/scgiserver.py
index 7963ed6..f65294d 100644
--- a/paste/util/scgiserver.py
+++ b/paste/util/scgiserver.py
@@ -25,6 +25,7 @@ Kudos to the WSGI folk for writing a nice PEP & the Quixote folk for
writing a nice extensible SCGI server for Python!
"""
+import six
import sys
import time
from scgi import scgi_server
@@ -90,7 +91,7 @@ class SWAP(scgi_server.SCGIHandler):
try:
if headers_sent:
# Re-raise original exception if headers sent
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
finally:
exc_info = None # avoid dangling circular ref
elif headers_set:
diff --git a/paste/util/template.py b/paste/util/template.py
index fd9e802..bcd282f 100644
--- a/paste/util/template.py
+++ b/paste/util/template.py
@@ -31,6 +31,7 @@ If there are syntax errors ``TemplateError`` will be raised.
"""
import re
+import six
import sys
import cgi
from six.moves.urllib.parse import quote
@@ -207,7 +208,7 @@ class Template(object):
else:
arg0 = str(e)
e.args = (self._add_line_info(arg0, pos),)
- raise exc_info[0], e, exc_info[2]
+ six.reraise(exc_info[0], e, exc_info[2])
def _exec(self, code, ns, pos):
__traceback_hide__ = True
@@ -217,7 +218,7 @@ class Template(object):
exc_info = sys.exc_info()
e = exc_info[1]
e.args = (self._add_line_info(e.args[0], pos),)
- raise exc_info[0], e, exc_info[2]
+ six.reraise(exc_info[0], e, exc_info[2])
def _repr(self, value, pos):
__traceback_hide__ = True
@@ -235,7 +236,7 @@ class Template(object):
exc_info = sys.exc_info()
e = exc_info[1]
e.args = (self._add_line_info(e.args[0], pos),)
- raise exc_info[0], e, exc_info[2]
+ six.reraise(exc_info[0], e, exc_info[2])
else:
if self._unicode and isinstance(value, str):
if not self.decode_encoding:
diff --git a/paste/wsgilib.py b/paste/wsgilib.py
index d958844..0111113 100644
--- a/paste/wsgilib.py
+++ b/paste/wsgilib.py
@@ -13,6 +13,7 @@ from paste.response import HeaderDict, has_header, header_value, remove_header
from paste.response import error_body_response, error_response, error_response_app
from traceback import print_exception
+import six
import sys
from six.moves import cStringIO as StringIO
from six.moves.urllib.parse import unquote, urlsplit
@@ -131,7 +132,7 @@ class chained_app_iters(object):
except:
got_exc = sys.exc_info()
if got_exc:
- raise got_exc[0], got_exc[1], got_exc[2]
+ six.reraise(got_exc[0], got_exc[1], got_exc[2])
def __del__(self):
if not self._closed:
@@ -327,7 +328,7 @@ def raw_interactive(application, path='', raise_on_wsgi_error=False,
try:
if headers_sent:
# Re-raise original exception only if headers sent
- raise exc_info[0], exc_info[1], exc_info[2]
+ six.reraise(exc_info[0], exc_info[1], exc_info[2])
finally:
# avoid dangling circular reference
exc_info = None