#-*- coding: utf-8 -*-
#__#/__) _ _ _ _ _/ _#/ ( (- (/ (/ (- _) / _)#/
"""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
>>> ‘Python is a programming language‘ in r.content
True
... or POST:
>>> payload = dict(key1=‘value1‘, key2=‘value2‘)
>>> r = requests.post(‘http://httpbin.org/post‘, data=payload)
>>> print(r.text)
{
...
"form": {
"key2": "value2",
"key1": "value1"
},
...
}
The other HTTP methods are supported - see `requests.api`. Full documentation
is at .
:copyright: (c) 2017 by Kenneth Reitz.
:license: Apache 2.0, see LICENSE for more details."""
importurllib3importchardetimportwarningsfrom .exceptions importRequestsDependencyWarningdefcheck_compatibility(urllib3_version, chardet_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, <= 1.22
assert major == 1
assert minor >= 21
assert minor <= 22
#Check chardet for compatibility.
major, minor, patch = chardet_version.split(‘.‘)[:3]
major, minor, patch=int(major), int(minor), int(patch)#chardet >= 3.0.2, < 3.1.0
assert major == 3
assert minor < 1
assert patch >= 2
#Check imported dependencies for compatibility.
try:
check_compatibility(urllib3.__version__, chardet.__version__)except(AssertionError, ValueError):
warnings.warn("urllib3 ({0}) or chardet ({1}) doesn‘t match a supported"
"version!".format(urllib3.__version__, chardet.__version__),
RequestsDependencyWarning)#Attempt to enable urllib3‘s SNI support, if possible
try:from urllib3.contrib importpyopenssl
pyopenssl.inject_into_urllib3()exceptImportError:pass
#urllib3‘s DependencyWarnings should be silenced.
from urllib3.exceptions importDependencyWarning
warnings.simplefilter(‘ignore‘, DependencyWarning)from .__version__ import __title__, __description__, __url__, __version__
from .__version__ import __build__, __author__, __author_email__, __license__
from .__version__ import __copyright__, __cake__
from . importutilsfrom . importpackagesfrom .models importRequest, Response, PreparedRequestfrom .api importrequest, get, head, post, patch, put, delete, optionsfrom .sessions importsession, Sessionfrom .status_codes importcodesfrom .exceptions import(
RequestException, Timeout, URLRequired,
TooManyRedirects, HTTPError, ConnectionError,
FileModeWarning, ConnectTimeout, ReadTimeout
)#Set default logging handler to avoid "No handler found" warnings.
importloggingtry: #Python 2.7+
from logging importNullHandlerexceptImportError:classNullHandler(logging.Handler):defemit(self, record):passlogging.getLogger(__name__).addHandler(NullHandler())#FileModeWarnings go off per the default.
warnings.simplefilter(‘default‘, FileModeWarning, append=True)