Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
__init__.py181 linesDownload Raw Back to requests
1#   __2#  /__)  _  _     _   _ _/   _3# / (   (- (/ (/ (- _)  /  _)4#          /5 6"""7Requests HTTP Library8~~~~~~~~~~~~~~~~~~~~~9 10Requests is an HTTP library, written in Python, for human beings.11Basic GET usage:12 13   >>> import requests14   >>> r = requests.get('https://www.python.org')15   >>> r.status_code16   20017   >>> b'Python is a programming language' in r.content18   True19 20... or POST:21 22   >>> payload = dict(key1='value1', key2='value2')23   >>> r = requests.post('https://httpbin.org/post', data=payload)24   >>> print(r.text)25   {26     ...27     "form": {28       "key1": "value1",29       "key2": "value2"30     },31     ...32   }33 34The other HTTP methods are supported - see `requests.api`. Full documentation35is at <https://requests.readthedocs.io>.36 37:copyright: (c) 2017 by Kenneth Reitz.38:license: Apache 2.0, see LICENSE for more details.39"""40 41import warnings42 43import urllib344 45from .exceptions import RequestsDependencyWarning46 47try:48    from charset_normalizer import __version__ as charset_normalizer_version49except ImportError:50    charset_normalizer_version = None51 52try:53    from chardet import __version__ as chardet_version54except ImportError:55    chardet_version = None56 57 58def check_compatibility(urllib3_version, chardet_version, charset_normalizer_version):59    urllib3_version = urllib3_version.split(".")60    assert urllib3_version != ["dev"]  # Verify urllib3 isn't installed from git.61 62    # Sometimes, urllib3 only reports its version as 16.1.63    if len(urllib3_version) == 2:64        urllib3_version.append("0")65 66    # Check urllib3 for compatibility.67    major, minor, patch = urllib3_version  # noqa: F81168    major, minor, patch = int(major), int(minor), int(patch)69    # urllib3 >= 1.21.170    assert major >= 171    if major == 1:72        assert minor >= 2173 74    # Check charset_normalizer for compatibility.75    if chardet_version:76        major, minor, patch = chardet_version.split(".")[:3]77        major, minor, patch = int(major), int(minor), int(patch)78        # chardet_version >= 3.0.2, < 6.0.079        assert (3, 0, 2) <= (major, minor, patch) < (6, 0, 0)80    elif charset_normalizer_version:81        major, minor, patch = charset_normalizer_version.split(".")[:3]82        major, minor, patch = int(major), int(minor), int(patch)83        # charset_normalizer >= 2.0.0 < 4.0.084        assert (2, 0, 0) <= (major, minor, patch) < (4, 0, 0)85    else:86        raise Exception("You need either charset_normalizer or chardet installed")87 88 89def _check_cryptography(cryptography_version):90    # cryptography < 1.3.491    try:92        cryptography_version = list(map(int, cryptography_version.split(".")))93    except ValueError:94        return95 96    if cryptography_version < [1, 3, 4]:97        warning = "Old version of cryptography ({}) may cause slowdown.".format(98            cryptography_version99        )100        warnings.warn(warning, RequestsDependencyWarning)101 102 103# Check imported dependencies for compatibility.104try:105    check_compatibility(106        urllib3.__version__, chardet_version, charset_normalizer_version107    )108except (AssertionError, ValueError):109    warnings.warn(110        "urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "111        "version!".format(112            urllib3.__version__, chardet_version, charset_normalizer_version113        ),114        RequestsDependencyWarning,115    )116 117# Attempt to enable urllib3's fallback for SNI support118# if the standard library doesn't support SNI or the119# 'ssl' library isn't available.120try:121    try:122        import ssl123    except ImportError:124        ssl = None125 126    if not getattr(ssl, "HAS_SNI", False):127        from urllib3.contrib import pyopenssl128 129        pyopenssl.inject_into_urllib3()130 131        # Check cryptography version132        from cryptography import __version__ as cryptography_version133 134        _check_cryptography(cryptography_version)135except ImportError:136    pass137 138# urllib3's DependencyWarnings should be silenced.139from urllib3.exceptions import DependencyWarning140 141warnings.simplefilter("ignore", DependencyWarning)142 143# Set default logging handler to avoid "No handler found" warnings.144import logging145from logging import NullHandler146 147from . import packages, utils148from .__version__ import (149    __author__,150    __author_email__,151    __build__,152    __cake__,153    __copyright__,154    __description__,155    __license__,156    __title__,157    __url__,158    __version__,159)160from .api import delete, get, head, options, patch, post, put, request161from .exceptions import (162    ConnectionError,163    ConnectTimeout,164    FileModeWarning,165    HTTPError,166    JSONDecodeError,167    ReadTimeout,168    RequestException,169    Timeout,170    TooManyRedirects,171    URLRequired,172)173from .models import PreparedRequest, Request, Response174from .sessions import Session, session175from .status_codes import codes176 177logging.getLogger(__name__).addHandler(NullHandler())178 179# FileModeWarnings go off per the default.180warnings.simplefilter("default", FileModeWarning, append=True)181 
codekingpro/portable-devtools · Team Ai