Spaces:
Runtime error
Runtime error
# coding: utf-8 | |
"""Compatibility tricks for Python 3. Mainly to do with unicode. | |
This file is deprecated and will be removed in a future version. | |
""" | |
import platform | |
import builtins as builtin_mod | |
from .encoding import DEFAULT_ENCODING | |
def decode(s, encoding=None): | |
encoding = encoding or DEFAULT_ENCODING | |
return s.decode(encoding, "replace") | |
def encode(u, encoding=None): | |
encoding = encoding or DEFAULT_ENCODING | |
return u.encode(encoding, "replace") | |
def cast_unicode(s, encoding=None): | |
if isinstance(s, bytes): | |
return decode(s, encoding) | |
return s | |
def safe_unicode(e): | |
"""unicode(e) with various fallbacks. Used for exceptions, which may not be | |
safe to call unicode() on. | |
""" | |
try: | |
return str(e) | |
except UnicodeError: | |
pass | |
try: | |
return repr(e) | |
except UnicodeError: | |
pass | |
return "Unrecoverably corrupt evalue" | |
# keep reference to builtin_mod because the kernel overrides that value | |
# to forward requests to a frontend. | |
def input(prompt=""): | |
return builtin_mod.input(prompt) | |
def execfile(fname, glob, loc=None, compiler=None): | |
loc = loc if (loc is not None) else glob | |
with open(fname, "rb") as f: | |
compiler = compiler or compile | |
exec(compiler(f.read(), fname, "exec"), glob, loc) | |
PYPY = platform.python_implementation() == "PyPy" | |
# Cython still rely on that as a Dec 28 2019 | |
# See https://github.com/cython/cython/pull/3291 and | |
# https://github.com/ipython/ipython/issues/12068 | |
def no_code(x, encoding=None): | |
return x | |
unicode_to_str = cast_bytes_py2 = no_code | |