annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/requests/compat.py @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 """
jpayne@68 2 requests.compat
jpayne@68 3 ~~~~~~~~~~~~~~~
jpayne@68 4
jpayne@68 5 This module previously handled import compatibility issues
jpayne@68 6 between Python 2 and Python 3. It remains for backwards
jpayne@68 7 compatibility until the next major version.
jpayne@68 8 """
jpayne@68 9
jpayne@68 10 import importlib
jpayne@68 11 import sys
jpayne@68 12
jpayne@68 13 # -------------------
jpayne@68 14 # Character Detection
jpayne@68 15 # -------------------
jpayne@68 16
jpayne@68 17
jpayne@68 18 def _resolve_char_detection():
jpayne@68 19 """Find supported character detection libraries."""
jpayne@68 20 chardet = None
jpayne@68 21 for lib in ("chardet", "charset_normalizer"):
jpayne@68 22 if chardet is None:
jpayne@68 23 try:
jpayne@68 24 chardet = importlib.import_module(lib)
jpayne@68 25 except ImportError:
jpayne@68 26 pass
jpayne@68 27 return chardet
jpayne@68 28
jpayne@68 29
jpayne@68 30 chardet = _resolve_char_detection()
jpayne@68 31
jpayne@68 32 # -------
jpayne@68 33 # Pythons
jpayne@68 34 # -------
jpayne@68 35
jpayne@68 36 # Syntax sugar.
jpayne@68 37 _ver = sys.version_info
jpayne@68 38
jpayne@68 39 #: Python 2.x?
jpayne@68 40 is_py2 = _ver[0] == 2
jpayne@68 41
jpayne@68 42 #: Python 3.x?
jpayne@68 43 is_py3 = _ver[0] == 3
jpayne@68 44
jpayne@68 45 # json/simplejson module import resolution
jpayne@68 46 has_simplejson = False
jpayne@68 47 try:
jpayne@68 48 import simplejson as json
jpayne@68 49
jpayne@68 50 has_simplejson = True
jpayne@68 51 except ImportError:
jpayne@68 52 import json
jpayne@68 53
jpayne@68 54 if has_simplejson:
jpayne@68 55 from simplejson import JSONDecodeError
jpayne@68 56 else:
jpayne@68 57 from json import JSONDecodeError
jpayne@68 58
jpayne@68 59 # Keep OrderedDict for backwards compatibility.
jpayne@68 60 from collections import OrderedDict
jpayne@68 61 from collections.abc import Callable, Mapping, MutableMapping
jpayne@68 62 from http import cookiejar as cookielib
jpayne@68 63 from http.cookies import Morsel
jpayne@68 64 from io import StringIO
jpayne@68 65
jpayne@68 66 # --------------
jpayne@68 67 # Legacy Imports
jpayne@68 68 # --------------
jpayne@68 69 from urllib.parse import (
jpayne@68 70 quote,
jpayne@68 71 quote_plus,
jpayne@68 72 unquote,
jpayne@68 73 unquote_plus,
jpayne@68 74 urldefrag,
jpayne@68 75 urlencode,
jpayne@68 76 urljoin,
jpayne@68 77 urlparse,
jpayne@68 78 urlsplit,
jpayne@68 79 urlunparse,
jpayne@68 80 )
jpayne@68 81 from urllib.request import (
jpayne@68 82 getproxies,
jpayne@68 83 getproxies_environment,
jpayne@68 84 parse_http_list,
jpayne@68 85 proxy_bypass,
jpayne@68 86 proxy_bypass_environment,
jpayne@68 87 )
jpayne@68 88
jpayne@68 89 builtin_str = str
jpayne@68 90 str = str
jpayne@68 91 bytes = bytes
jpayne@68 92 basestring = (str, bytes)
jpayne@68 93 numeric_types = (int, float)
jpayne@68 94 integer_types = (int,)