Viewing file: compat.py (2.09 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
""" 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
# ------- # urllib3 # ------- from urllib3 import __version__ as urllib3_version
# Detect which major version of urllib3 is being used. try: is_urllib3_1 = int(urllib3_version.split(".")[0]) == 1 except (TypeError, AttributeError): # If we can't discern a version, prefer old functionality. is_urllib3_1 = True
# ------------------- # 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,)
|