Viewing file: compat.py (1.22 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
"""Python 2/3 compatibility""" import io import json import sys
# Handle reading and writing JSON in UTF-8, on Python 3 and 2.
if sys.version_info[0] >= 3: # Python 3 def write_json(obj, path, **kwargs): with open(path, 'w', encoding='utf-8') as f: json.dump(obj, f, **kwargs)
def read_json(path): with open(path, 'r', encoding='utf-8') as f: return json.load(f)
else: # Python 2 def write_json(obj, path, **kwargs): with open(path, 'wb') as f: json.dump(obj, f, encoding='utf-8', **kwargs)
def read_json(path): with open(path, 'rb') as f: return json.load(f)
# FileNotFoundError
try: FileNotFoundError = FileNotFoundError except NameError: FileNotFoundError = IOError
if sys.version_info < (3, 6): from toml import load as _toml_load # noqa: F401
def toml_load(f): w = io.TextIOWrapper(f, encoding="utf8", newline="") try: return _toml_load(w) finally: w.detach()
from toml import TomlDecodeError as TOMLDecodeError # noqa: F401 else: from pip._vendor.tomli import load as toml_load # noqa: F401 from pip._vendor.tomli import TOMLDecodeError # noqa: F401
|