123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """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
|