You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
"""
 | 
						|
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,)
 |