| Viewing file:  __init__.py (4.94 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
#   __#  /__)  _  _     _   _ _/   _
 # / (   (- (/ (/ (- _)  /  _)
 #          /
 
 """
 Requests HTTP Library
 ~~~~~~~~~~~~~~~~~~~~~
 
 Requests is an HTTP library, written in Python, for human beings.
 Basic GET usage:
 
 >>> import requests
 >>> r = requests.get('https://www.python.org')
 >>> r.status_code
 200
 >>> b'Python is a programming language' in r.content
 True
 
 ... or POST:
 
 >>> payload = dict(key1='value1', key2='value2')
 >>> r = requests.post('https://httpbin.org/post', data=payload)
 >>> print(r.text)
 {
 ...
 "form": {
 "key1": "value1",
 "key2": "value2"
 },
 ...
 }
 
 The other HTTP methods are supported - see `requests.api`. Full documentation
 is at <https://requests.readthedocs.io>.
 
 :copyright: (c) 2017 by Kenneth Reitz.
 :license: Apache 2.0, see LICENSE for more details.
 """
 
 import warnings
 
 from pip._vendor import urllib3
 
 from .exceptions import RequestsDependencyWarning
 
 charset_normalizer_version = None
 chardet_version = None
 
 
 def check_compatibility(urllib3_version, chardet_version, charset_normalizer_version):
 urllib3_version = urllib3_version.split(".")
 assert urllib3_version != ["dev"]  # Verify urllib3 isn't installed from git.
 
 # Sometimes, urllib3 only reports its version as 16.1.
 if len(urllib3_version) == 2:
 urllib3_version.append("0")
 
 # Check urllib3 for compatibility.
 major, minor, patch = urllib3_version  # noqa: F811
 major, minor, patch = int(major), int(minor), int(patch)
 # urllib3 >= 1.21.1
 assert major >= 1
 if major == 1:
 assert minor >= 21
 
 # Check charset_normalizer for compatibility.
 if chardet_version:
 major, minor, patch = chardet_version.split(".")[:3]
 major, minor, patch = int(major), int(minor), int(patch)
 # chardet_version >= 3.0.2, < 6.0.0
 assert (3, 0, 2) <= (major, minor, patch) < (6, 0, 0)
 elif charset_normalizer_version:
 major, minor, patch = charset_normalizer_version.split(".")[:3]
 major, minor, patch = int(major), int(minor), int(patch)
 # charset_normalizer >= 2.0.0 < 4.0.0
 assert (2, 0, 0) <= (major, minor, patch) < (4, 0, 0)
 else:
 # pip does not need or use character detection
 pass
 
 
 def _check_cryptography(cryptography_version):
 # cryptography < 1.3.4
 try:
 cryptography_version = list(map(int, cryptography_version.split(".")))
 except ValueError:
 return
 
 if cryptography_version < [1, 3, 4]:
 warning = "Old version of cryptography ({}) may cause slowdown.".format(
 cryptography_version
 )
 warnings.warn(warning, RequestsDependencyWarning)
 
 
 # Check imported dependencies for compatibility.
 try:
 check_compatibility(
 urllib3.__version__, chardet_version, charset_normalizer_version
 )
 except (AssertionError, ValueError):
 warnings.warn(
 "urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "
 "version!".format(
 urllib3.__version__, chardet_version, charset_normalizer_version
 ),
 RequestsDependencyWarning,
 )
 
 # Attempt to enable urllib3's fallback for SNI support
 # if the standard library doesn't support SNI or the
 # 'ssl' library isn't available.
 try:
 # Note: This logic prevents upgrading cryptography on Windows, if imported
 #       as part of pip.
 from pip._internal.utils.compat import WINDOWS
 if not WINDOWS:
 raise ImportError("pip internals: don't import cryptography on Windows")
 try:
 import ssl
 except ImportError:
 ssl = None
 
 if not getattr(ssl, "HAS_SNI", False):
 from pip._vendor.urllib3.contrib import pyopenssl
 
 pyopenssl.inject_into_urllib3()
 
 # Check cryptography version
 from cryptography import __version__ as cryptography_version
 
 _check_cryptography(cryptography_version)
 except ImportError:
 pass
 
 # urllib3's DependencyWarnings should be silenced.
 from pip._vendor.urllib3.exceptions import DependencyWarning
 
 warnings.simplefilter("ignore", DependencyWarning)
 
 # Set default logging handler to avoid "No handler found" warnings.
 import logging
 from logging import NullHandler
 
 from . import packages, utils
 from .__version__ import (
 __author__,
 __author_email__,
 __build__,
 __cake__,
 __copyright__,
 __description__,
 __license__,
 __title__,
 __url__,
 __version__,
 )
 from .api import delete, get, head, options, patch, post, put, request
 from .exceptions import (
 ConnectionError,
 ConnectTimeout,
 FileModeWarning,
 HTTPError,
 JSONDecodeError,
 ReadTimeout,
 RequestException,
 Timeout,
 TooManyRedirects,
 URLRequired,
 )
 from .models import PreparedRequest, Request, Response
 from .sessions import Session, session
 from .status_codes import codes
 
 logging.getLogger(__name__).addHandler(NullHandler())
 
 # FileModeWarnings go off per the default.
 warnings.simplefilter("default", FileModeWarning, append=True)
 
 |