| """ |
| 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 |
|
|
| |
| |
| |
| from urllib3 import __version__ as urllib3_version |
|
|
| |
| try: |
| is_urllib3_1 = int(urllib3_version.split(".")[0]) == 1 |
| except (TypeError, AttributeError): |
| |
| is_urllib3_1 = True |
|
|
| |
| |
| |
|
|
|
|
| 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() |
|
|
| |
| |
| |
|
|
| |
| _ver = sys.version_info |
|
|
| |
| is_py2 = _ver[0] == 2 |
|
|
| |
| is_py3 = _ver[0] == 3 |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|
| |
| |
| |
| 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,) |
|
|