Commit 4dac1b65 authored by Denis Bilenko's avatar Denis Bilenko

fix reraise on py3

based on #362 by @fantix
parent 5d6c9dd9
# this produces syntax error on Python3
__all__ = ['reraise']
def reraise(type, value, tb):
raise type, value, tb
......@@ -34,11 +34,19 @@ if PY3:
string_types = str,
integer_types = int,
xrange = range
def reraise(tp, value, tb=None):
if value.__traceback__ is not tb:
raise value.with_traceback(tb)
raise value
else:
string_types = basestring,
integer_types = (int, long)
xrange = xrange
from gevent._util_py2 import reraise
if sys.version_info[0] <= 2:
import thread
......
......@@ -11,8 +11,7 @@ from urllib import unquote
from gevent import socket
import gevent
from gevent.server import StreamServer
from gevent.hub import GreenletExit
from gevent.hub import PY3
from gevent.hub import GreenletExit, PY3, reraise
__all__ = ['WSGIHandler', 'WSGIServer']
......@@ -434,7 +433,7 @@ class WSGIHandler(object):
try:
if self.headers_sent:
# Re-raise original exception if headers sent
raise exc_info[0], exc_info[1], exc_info[2]
reraise(*exc_info)
finally:
# Avoid dangling circular ref
exc_info = None
......
......@@ -13,6 +13,7 @@ gevent/__init__.py:\d+:.*imported but unused
gevent/__init__.py:\d+: redefinition of unused 'signal' from line
gevent/coros.py:\d+: 'from gevent.lock import *' used; unable to detect undefined names
gevent/coros.py:\d+: '__all__' imported but unused
gevent/hub.py:\d+: 'reraise' imported but unused
gevent/thread.py:\d+: '_local' imported but unused
gevent/threading.py:\d+: '\w+' imported but unused
gevent/wsgi.py:1: 'from gevent.pywsgi import *' used; unable to detect undefined names
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment