diff options
Diffstat (limited to 'python/gevent/_util_py2.py')
-rw-r--r-- | python/gevent/_util_py2.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/python/gevent/_util_py2.py b/python/gevent/_util_py2.py index dc74eec..02332e3 100644 --- a/python/gevent/_util_py2.py +++ b/python/gevent/_util_py2.py @@ -1,7 +1,23 @@ -# this produces syntax error on Python3 +import sys __all__ = ['reraise'] -def reraise(type, value, tb): - raise type, value, tb +def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + +exec_("""def reraise(tp, value, tb=None): + try: + raise tp, value, tb + finally: + tb = None +""") |