44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
import sys
|
|
# pylint:disable=unused-argument,import-error
|
|
|
|
PY2 = sys.version_info[0] == 2
|
|
PY3 = sys.version_info[0] >= 3
|
|
|
|
if PY3:
|
|
import builtins
|
|
exec_ = getattr(builtins, "exec")
|
|
|
|
def reraise(tp, value, tb=None):
|
|
if value.__traceback__ is not tb:
|
|
raise value.with_traceback(tb)
|
|
raise value
|
|
|
|
xrange = range
|
|
string_types = (str,)
|
|
text_type = str
|
|
|
|
else:
|
|
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""")
|
|
|
|
import __builtin__ as builtins
|
|
xrange = builtins.xrange
|
|
string_types = (builtins.basestring,)
|
|
text_type = builtins.unicode
|
|
|
|
exec_("""def reraise(tp, value, tb=None):
|
|
try:
|
|
raise tp, value, tb
|
|
finally:
|
|
tb = None
|
|
""")
|