diff options
author | Cyril Roelandt <cyril.roelandt@enovance.com> | 2014-03-18 12:37:15 +0100 |
---|---|---|
committer | Cyril Roelandt <cyril.roelandt@enovance.com> | 2014-03-18 12:37:15 +0100 |
commit | 75df77ea040040f671fa96d710a4d64e7aa82f72 (patch) | |
tree | cf36e8135e8613d14054009b73e14ba291840536 | |
parent | 099b1a74b1952f996757dc0a1a9f5d0dc75e7ff3 (diff) | |
download | paste-git-75df77ea040040f671fa96d710a4d64e7aa82f72.tar.gz |
Python 3: use six.reraise() to re-raise an exception with the traceback
-rw-r--r-- | paste/debug/profile.py | 3 | ||||
-rwxr-xr-x | paste/httpserver.py | 3 | ||||
-rw-r--r-- | paste/modpython.py | 3 | ||||
-rw-r--r-- | paste/recursive.py | 5 | ||||
-rw-r--r-- | paste/util/scgiserver.py | 3 | ||||
-rw-r--r-- | paste/util/template.py | 7 | ||||
-rw-r--r-- | paste/wsgilib.py | 5 |
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 |