annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/requests/compat.py @ 69:33d812a61356

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