|
|
|
|
|
""" |
|
requests.compat |
|
~~~~~~~~~~~~~~~ |
|
|
|
This module handles import compatibility issues between Python 2 and |
|
Python 3. |
|
""" |
|
|
|
from pip._vendor import chardet |
|
|
|
import sys |
|
|
|
|
|
|
|
|
|
|
|
|
|
_ver = sys.version_info |
|
|
|
|
|
is_py2 = (_ver[0] == 2) |
|
|
|
|
|
is_py3 = (_ver[0] == 3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import json |
|
|
|
|
|
|
|
|
|
|
|
if is_py2: |
|
from urllib import ( |
|
quote, unquote, quote_plus, unquote_plus, urlencode, getproxies, |
|
proxy_bypass, proxy_bypass_environment, getproxies_environment) |
|
from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag |
|
from urllib2 import parse_http_list |
|
import cookielib |
|
from Cookie import Morsel |
|
from StringIO import StringIO |
|
|
|
from collections import Callable, Mapping, MutableMapping, OrderedDict |
|
|
|
|
|
builtin_str = str |
|
bytes = str |
|
str = unicode |
|
basestring = basestring |
|
numeric_types = (int, long, float) |
|
integer_types = (int, long) |
|
|
|
elif is_py3: |
|
from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag |
|
from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment |
|
from http import cookiejar as cookielib |
|
from http.cookies import Morsel |
|
from io import StringIO |
|
|
|
from collections import OrderedDict |
|
from collections.abc import Callable, Mapping, MutableMapping |
|
|
|
builtin_str = str |
|
str = str |
|
bytes = bytes |
|
basestring = (str, bytes) |
|
numeric_types = (int, float) |
|
integer_types = (int,) |
|
|