Spaces:
Running
Running
""" | |
requests.compat | |
~~~~~~~~~~~~~~~ | |
This module previously handled import compatibility issues | |
between Python 2 and Python 3. It remains for backwards | |
compatibility until the next major version. | |
""" | |
import importlib | |
import sys | |
# ------------------- | |
# Character Detection | |
# ------------------- | |
def _resolve_char_detection(): | |
"""Find supported character detection libraries.""" | |
chardet = None | |
for lib in ("chardet", "charset_normalizer"): | |
if chardet is None: | |
try: | |
chardet = importlib.import_module(lib) | |
except ImportError: | |
pass | |
return chardet | |
chardet = _resolve_char_detection() | |
# ------- | |
# Pythons | |
# ------- | |
# Syntax sugar. | |
_ver = sys.version_info | |
#: Python 2.x? | |
is_py2 = _ver[0] == 2 | |
#: Python 3.x? | |
is_py3 = _ver[0] == 3 | |
# json/simplejson module import resolution | |
has_simplejson = False | |
try: | |
import simplejson as json | |
has_simplejson = True | |
except ImportError: | |
import json | |
if has_simplejson: | |
from simplejson import JSONDecodeError | |
else: | |
from json import JSONDecodeError | |
# Keep OrderedDict for backwards compatibility. | |
from collections import OrderedDict | |
from collections.abc import Callable, Mapping, MutableMapping | |
from http import cookiejar as cookielib | |
from http.cookies import Morsel | |
from io import StringIO | |
# -------------- | |
# Legacy Imports | |
# -------------- | |
from urllib.parse import ( | |
quote, | |
quote_plus, | |
unquote, | |
unquote_plus, | |
urldefrag, | |
urlencode, | |
urljoin, | |
urlparse, | |
urlsplit, | |
urlunparse, | |
) | |
from urllib.request import ( | |
getproxies, | |
getproxies_environment, | |
parse_http_list, | |
proxy_bypass, | |
proxy_bypass_environment, | |
) | |
builtin_str = str | |
str = str | |
bytes = bytes | |
basestring = (str, bytes) | |
numeric_types = (int, float) | |
integer_types = (int,) | |