From 10429b6a30cff9583626ed94c6d59f7f3108408b Mon Sep 17 00:00:00 2001 From: remittor Date: Sun, 31 Oct 2021 19:59:12 +0300 Subject: [PATCH] Add python packages for support HTTP, TELNET, FTP --- python/certifi-2021.10.8.dist-info/INSTALLER | 1 + python/certifi-2021.10.8.dist-info/LICENSE | 21 + python/certifi-2021.10.8.dist-info/METADATA | 83 + python/certifi-2021.10.8.dist-info/RECORD | 13 + python/certifi-2021.10.8.dist-info/WHEEL | 6 + .../certifi-2021.10.8.dist-info/top_level.txt | 1 + python/certifi/__init__.pyc | Bin 0 -> 224 bytes python/certifi/__main__.pyc | Bin 0 -> 389 bytes python/certifi/cacert.pem | 4362 +++++++++++++++++ python/certifi/core.pyc | Bin 0 -> 1093 bytes .../INSTALLER | 1 + .../LICENSE | 21 + .../METADATA | 267 + .../charset_normalizer-2.0.7.dist-info/RECORD | 33 + .../charset_normalizer-2.0.7.dist-info/WHEEL | 5 + .../entry_points.txt | 3 + .../top_level.txt | 1 + python/charset_normalizer/__init__.pyc | Bin 0 -> 1531 bytes python/charset_normalizer/api.pyc | Bin 0 -> 9596 bytes python/charset_normalizer/assets/__init__.pyc | Bin 0 -> 7951 bytes python/charset_normalizer/cd.pyc | Bin 0 -> 8184 bytes python/charset_normalizer/cli/__init__.pyc | Bin 0 -> 155 bytes python/charset_normalizer/cli/normalizer.pyc | Bin 0 -> 6017 bytes python/charset_normalizer/constant.pyc | Bin 0 -> 13707 bytes python/charset_normalizer/legacy.pyc | Bin 0 -> 3291 bytes python/charset_normalizer/md.pyc | Bin 0 -> 14719 bytes python/charset_normalizer/models.pyc | Bin 0 -> 13188 bytes python/charset_normalizer/py.typed | 0 python/charset_normalizer/utils.pyc | Bin 0 -> 7423 bytes python/charset_normalizer/version.pyc | Bin 0 -> 235 bytes python/idna-3.3.dist-info/INSTALLER | 1 + python/idna-3.3.dist-info/LICENSE.md | 29 + python/idna-3.3.dist-info/METADATA | 236 + python/idna-3.3.dist-info/RECORD | 23 + python/idna-3.3.dist-info/WHEEL | 5 + python/idna-3.3.dist-info/top_level.txt | 1 + python/idna/__init__.pyc | Bin 0 -> 864 bytes python/idna/codec.pyc | Bin 0 -> 3223 bytes python/idna/compat.pyc | Bin 0 -> 703 bytes python/idna/core.pyc | Bin 0 -> 9756 bytes python/idna/idnadata.pyc | Bin 0 -> 23084 bytes python/idna/intranges.pyc | Bin 0 -> 1934 bytes python/idna/package_data.pyc | Bin 0 -> 160 bytes python/idna/py.typed | 0 python/idna/uts46data.pyc | Bin 0 -> 185497 bytes .../pyftpdlib-1.5.6-py3.7.egg-info/PKG-INFO | 245 + .../SOURCES.txt | 67 + .../dependency_links.txt | 1 + .../installed-files.txt | 48 + .../requires.txt | 3 + .../top_level.txt | 1 + python/pyftpdlib/__init__.pyc | Bin 0 -> 2848 bytes python/pyftpdlib/__main__.pyc | Bin 0 -> 3643 bytes python/pyftpdlib/_compat.pyc | Bin 0 -> 1074 bytes python/pyftpdlib/authorizers.pyc | Bin 0 -> 28840 bytes python/pyftpdlib/filesystems.pyc | Bin 0 -> 19553 bytes python/pyftpdlib/handlers.pyc | Bin 0 -> 96068 bytes python/pyftpdlib/ioloop.pyc | Bin 0 -> 28499 bytes python/pyftpdlib/log.pyc | Bin 0 -> 3590 bytes python/pyftpdlib/prefork.pyc | Bin 0 -> 3065 bytes python/pyftpdlib/servers.pyc | Bin 0 -> 15203 bytes python/requests-2.26.0.dist-info/INSTALLER | 1 + python/requests-2.26.0.dist-info/LICENSE | 175 + python/requests-2.26.0.dist-info/METADATA | 120 + python/requests-2.26.0.dist-info/RECORD | 43 + python/requests-2.26.0.dist-info/REQUESTED | 0 python/requests-2.26.0.dist-info/WHEEL | 6 + .../requests-2.26.0.dist-info/top_level.txt | 1 + python/requests/__init__.pyc | Bin 0 -> 3829 bytes python/requests/__version__.pyc | Bin 0 -> 504 bytes python/requests/_internal_utils.pyc | Bin 0 -> 1257 bytes python/requests/adapters.pyc | Bin 0 -> 16762 bytes python/requests/api.pyc | Bin 0 -> 6636 bytes python/requests/auth.pyc | Bin 0 -> 8301 bytes python/requests/certs.pyc | Bin 0 -> 570 bytes python/requests/compat.pyc | Bin 0 -> 1664 bytes python/requests/cookies.pyc | Bin 0 -> 18736 bytes python/requests/exceptions.pyc | Bin 0 -> 5612 bytes python/requests/help.pyc | Bin 0 -> 2798 bytes python/requests/hooks.pyc | Bin 0 -> 929 bytes python/requests/models.pyc | Bin 0 -> 24605 bytes python/requests/packages.pyc | Bin 0 -> 660 bytes python/requests/sessions.pyc | Bin 0 -> 19772 bytes python/requests/status_codes.pyc | Bin 0 -> 4174 bytes python/requests/structures.pyc | Bin 0 -> 4358 bytes python/requests/utils.pyc | Bin 0 -> 23041 bytes python/urllib3-1.26.7.dist-info/INSTALLER | 1 + python/urllib3-1.26.7.dist-info/LICENSE.txt | 21 + python/urllib3-1.26.7.dist-info/METADATA | 1396 ++++++ python/urllib3-1.26.7.dist-info/RECORD | 85 + python/urllib3-1.26.7.dist-info/REQUESTED | 0 python/urllib3-1.26.7.dist-info/WHEEL | 6 + python/urllib3-1.26.7.dist-info/top_level.txt | 1 + python/urllib3/__init__.pyc | Bin 0 -> 2130 bytes python/urllib3/_collections.pyc | Bin 0 -> 10659 bytes python/urllib3/_version.pyc | Bin 0 -> 162 bytes python/urllib3/connection.pyc | Bin 0 -> 13735 bytes python/urllib3/connectionpool.pyc | Bin 0 -> 24631 bytes python/urllib3/contrib/__init__.pyc | Bin 0 -> 148 bytes python/urllib3/contrib/_appengine_environ.pyc | Bin 0 -> 1357 bytes .../contrib/_securetransport/__init__.pyc | Bin 0 -> 165 bytes .../contrib/_securetransport/bindings.pyc | Bin 0 -> 10602 bytes .../contrib/_securetransport/low_level.pyc | Bin 0 -> 8970 bytes python/urllib3/contrib/appengine.pyc | Bin 0 -> 8105 bytes python/urllib3/contrib/ntlmpool.pyc | Bin 0 -> 3554 bytes python/urllib3/contrib/pyopenssl.pyc | Bin 0 -> 15351 bytes python/urllib3/contrib/securetransport.pyc | Bin 0 -> 21407 bytes python/urllib3/contrib/socks.pyc | Bin 0 -> 5518 bytes python/urllib3/exceptions.pyc | Bin 0 -> 12001 bytes python/urllib3/fields.pyc | Bin 0 -> 8091 bytes python/urllib3/filepost.pyc | Bin 0 -> 2709 bytes python/urllib3/packages/__init__.pyc | Bin 0 -> 262 bytes .../urllib3/packages/backports/__init__.pyc | Bin 0 -> 159 bytes .../urllib3/packages/backports/makefile.pyc | Bin 0 -> 1249 bytes python/urllib3/packages/six.pyc | Bin 0 -> 27464 bytes .../packages/ssl_match_hostname/__init__.pyc | Bin 0 -> 525 bytes .../ssl_match_hostname/_implementation.pyc | Bin 0 -> 3242 bytes python/urllib3/poolmanager.pyc | Bin 0 -> 14977 bytes python/urllib3/request.pyc | Bin 0 -> 5509 bytes python/urllib3/response.pyc | Bin 0 -> 20499 bytes python/urllib3/util/__init__.pyc | Bin 0 -> 1058 bytes python/urllib3/util/connection.pyc | Bin 0 -> 3372 bytes python/urllib3/util/proxy.pyc | Bin 0 -> 1266 bytes python/urllib3/util/queue.pyc | Bin 0 -> 989 bytes python/urllib3/util/request.pyc | Bin 0 -> 3402 bytes python/urllib3/util/response.pyc | Bin 0 -> 2276 bytes python/urllib3/util/retry.pyc | Bin 0 -> 16281 bytes python/urllib3/util/ssl_.pyc | Bin 0 -> 11229 bytes python/urllib3/util/ssltransport.pyc | Bin 0 -> 7265 bytes python/urllib3/util/timeout.pyc | Bin 0 -> 8848 bytes python/urllib3/util/url.pyc | Bin 0 -> 10584 bytes python/urllib3/util/wait.pyc | Bin 0 -> 3079 bytes 132 files changed, 7334 insertions(+) create mode 100644 python/certifi-2021.10.8.dist-info/INSTALLER create mode 100644 python/certifi-2021.10.8.dist-info/LICENSE create mode 100644 python/certifi-2021.10.8.dist-info/METADATA create mode 100644 python/certifi-2021.10.8.dist-info/RECORD create mode 100644 python/certifi-2021.10.8.dist-info/WHEEL create mode 100644 python/certifi-2021.10.8.dist-info/top_level.txt create mode 100644 python/certifi/__init__.pyc create mode 100644 python/certifi/__main__.pyc create mode 100644 python/certifi/cacert.pem create mode 100644 python/certifi/core.pyc create mode 100644 python/charset_normalizer-2.0.7.dist-info/INSTALLER create mode 100644 python/charset_normalizer-2.0.7.dist-info/LICENSE create mode 100644 python/charset_normalizer-2.0.7.dist-info/METADATA create mode 100644 python/charset_normalizer-2.0.7.dist-info/RECORD create mode 100644 python/charset_normalizer-2.0.7.dist-info/WHEEL create mode 100644 python/charset_normalizer-2.0.7.dist-info/entry_points.txt create mode 100644 python/charset_normalizer-2.0.7.dist-info/top_level.txt create mode 100644 python/charset_normalizer/__init__.pyc create mode 100644 python/charset_normalizer/api.pyc create mode 100644 python/charset_normalizer/assets/__init__.pyc create mode 100644 python/charset_normalizer/cd.pyc create mode 100644 python/charset_normalizer/cli/__init__.pyc create mode 100644 python/charset_normalizer/cli/normalizer.pyc create mode 100644 python/charset_normalizer/constant.pyc create mode 100644 python/charset_normalizer/legacy.pyc create mode 100644 python/charset_normalizer/md.pyc create mode 100644 python/charset_normalizer/models.pyc create mode 100644 python/charset_normalizer/py.typed create mode 100644 python/charset_normalizer/utils.pyc create mode 100644 python/charset_normalizer/version.pyc create mode 100644 python/idna-3.3.dist-info/INSTALLER create mode 100644 python/idna-3.3.dist-info/LICENSE.md create mode 100644 python/idna-3.3.dist-info/METADATA create mode 100644 python/idna-3.3.dist-info/RECORD create mode 100644 python/idna-3.3.dist-info/WHEEL create mode 100644 python/idna-3.3.dist-info/top_level.txt create mode 100644 python/idna/__init__.pyc create mode 100644 python/idna/codec.pyc create mode 100644 python/idna/compat.pyc create mode 100644 python/idna/core.pyc create mode 100644 python/idna/idnadata.pyc create mode 100644 python/idna/intranges.pyc create mode 100644 python/idna/package_data.pyc create mode 100644 python/idna/py.typed create mode 100644 python/idna/uts46data.pyc create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/PKG-INFO create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/SOURCES.txt create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/dependency_links.txt create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/installed-files.txt create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/requires.txt create mode 100644 python/pyftpdlib-1.5.6-py3.7.egg-info/top_level.txt create mode 100644 python/pyftpdlib/__init__.pyc create mode 100644 python/pyftpdlib/__main__.pyc create mode 100644 python/pyftpdlib/_compat.pyc create mode 100644 python/pyftpdlib/authorizers.pyc create mode 100644 python/pyftpdlib/filesystems.pyc create mode 100644 python/pyftpdlib/handlers.pyc create mode 100644 python/pyftpdlib/ioloop.pyc create mode 100644 python/pyftpdlib/log.pyc create mode 100644 python/pyftpdlib/prefork.pyc create mode 100644 python/pyftpdlib/servers.pyc create mode 100644 python/requests-2.26.0.dist-info/INSTALLER create mode 100644 python/requests-2.26.0.dist-info/LICENSE create mode 100644 python/requests-2.26.0.dist-info/METADATA create mode 100644 python/requests-2.26.0.dist-info/RECORD create mode 100644 python/requests-2.26.0.dist-info/REQUESTED create mode 100644 python/requests-2.26.0.dist-info/WHEEL create mode 100644 python/requests-2.26.0.dist-info/top_level.txt create mode 100644 python/requests/__init__.pyc create mode 100644 python/requests/__version__.pyc create mode 100644 python/requests/_internal_utils.pyc create mode 100644 python/requests/adapters.pyc create mode 100644 python/requests/api.pyc create mode 100644 python/requests/auth.pyc create mode 100644 python/requests/certs.pyc create mode 100644 python/requests/compat.pyc create mode 100644 python/requests/cookies.pyc create mode 100644 python/requests/exceptions.pyc create mode 100644 python/requests/help.pyc create mode 100644 python/requests/hooks.pyc create mode 100644 python/requests/models.pyc create mode 100644 python/requests/packages.pyc create mode 100644 python/requests/sessions.pyc create mode 100644 python/requests/status_codes.pyc create mode 100644 python/requests/structures.pyc create mode 100644 python/requests/utils.pyc create mode 100644 python/urllib3-1.26.7.dist-info/INSTALLER create mode 100644 python/urllib3-1.26.7.dist-info/LICENSE.txt create mode 100644 python/urllib3-1.26.7.dist-info/METADATA create mode 100644 python/urllib3-1.26.7.dist-info/RECORD create mode 100644 python/urllib3-1.26.7.dist-info/REQUESTED create mode 100644 python/urllib3-1.26.7.dist-info/WHEEL create mode 100644 python/urllib3-1.26.7.dist-info/top_level.txt create mode 100644 python/urllib3/__init__.pyc create mode 100644 python/urllib3/_collections.pyc create mode 100644 python/urllib3/_version.pyc create mode 100644 python/urllib3/connection.pyc create mode 100644 python/urllib3/connectionpool.pyc create mode 100644 python/urllib3/contrib/__init__.pyc create mode 100644 python/urllib3/contrib/_appengine_environ.pyc create mode 100644 python/urllib3/contrib/_securetransport/__init__.pyc create mode 100644 python/urllib3/contrib/_securetransport/bindings.pyc create mode 100644 python/urllib3/contrib/_securetransport/low_level.pyc create mode 100644 python/urllib3/contrib/appengine.pyc create mode 100644 python/urllib3/contrib/ntlmpool.pyc create mode 100644 python/urllib3/contrib/pyopenssl.pyc create mode 100644 python/urllib3/contrib/securetransport.pyc create mode 100644 python/urllib3/contrib/socks.pyc create mode 100644 python/urllib3/exceptions.pyc create mode 100644 python/urllib3/fields.pyc create mode 100644 python/urllib3/filepost.pyc create mode 100644 python/urllib3/packages/__init__.pyc create mode 100644 python/urllib3/packages/backports/__init__.pyc create mode 100644 python/urllib3/packages/backports/makefile.pyc create mode 100644 python/urllib3/packages/six.pyc create mode 100644 python/urllib3/packages/ssl_match_hostname/__init__.pyc create mode 100644 python/urllib3/packages/ssl_match_hostname/_implementation.pyc create mode 100644 python/urllib3/poolmanager.pyc create mode 100644 python/urllib3/request.pyc create mode 100644 python/urllib3/response.pyc create mode 100644 python/urllib3/util/__init__.pyc create mode 100644 python/urllib3/util/connection.pyc create mode 100644 python/urllib3/util/proxy.pyc create mode 100644 python/urllib3/util/queue.pyc create mode 100644 python/urllib3/util/request.pyc create mode 100644 python/urllib3/util/response.pyc create mode 100644 python/urllib3/util/retry.pyc create mode 100644 python/urllib3/util/ssl_.pyc create mode 100644 python/urllib3/util/ssltransport.pyc create mode 100644 python/urllib3/util/timeout.pyc create mode 100644 python/urllib3/util/url.pyc create mode 100644 python/urllib3/util/wait.pyc diff --git a/python/certifi-2021.10.8.dist-info/INSTALLER b/python/certifi-2021.10.8.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/python/certifi-2021.10.8.dist-info/LICENSE b/python/certifi-2021.10.8.dist-info/LICENSE new file mode 100644 index 0000000..c2fda9a --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/LICENSE @@ -0,0 +1,21 @@ +This package contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011# +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1# +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/python/certifi-2021.10.8.dist-info/METADATA b/python/certifi-2021.10.8.dist-info/METADATA new file mode 100644 index 0000000..7a6860d --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/METADATA @@ -0,0 +1,83 @@ +Metadata-Version: 2.1 +Name: certifi +Version: 2021.10.8 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://certifiio.readthedocs.io/en/latest/ +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Documentation, https://certifiio.readthedocs.io/en/latest/ +Project-URL: Source, https://github.com/certifi/python-certifi +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 + +Certifi: Python SSL Certificates +================================ + +`Certifi`_ provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +1024-bit Root Certificates +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Browsers and certificate authorities have concluded that 1024-bit keys are +unacceptably weak for certificates, particularly root certificates. For this +reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its +bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key) +certificate from the same CA. Because Mozilla removed these certificates from +its bundle, ``certifi`` removed them as well. + +In previous versions, ``certifi`` provided the ``certifi.old_where()`` function +to intentionally re-add the 1024-bit roots back into your bundle. This was not +recommended in production and therefore was removed at the end of 2018. + +.. _`Certifi`: https://certifiio.readthedocs.io/en/latest/ +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. + + diff --git a/python/certifi-2021.10.8.dist-info/RECORD b/python/certifi-2021.10.8.dist-info/RECORD new file mode 100644 index 0000000..0f1fa6e --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/RECORD @@ -0,0 +1,13 @@ +certifi-2021.10.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2021.10.8.dist-info/LICENSE,sha256=vp2C82ES-Hp_HXTs1Ih-FGe7roh4qEAEoAEXseR1o-I,1049 +certifi-2021.10.8.dist-info/METADATA,sha256=iB_zbT1uX_8_NC7iGv0YEB-9b3idhQwHrFTSq8R1kD8,2994 +certifi-2021.10.8.dist-info/RECORD,, +certifi-2021.10.8.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 +certifi-2021.10.8.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=xWdRgntT3j1V95zkRipGOg_A1UfEju2FcpujhysZLRI,62 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-37.pyc,, +certifi/__pycache__/__main__.cpython-37.pyc,, +certifi/__pycache__/core.cpython-37.pyc,, +certifi/cacert.pem,sha256=-og4Keu4zSpgL5shwfhd4kz0eUnVILzrGCi0zRy2kGw,265969 +certifi/core.py,sha256=V0uyxKOYdz6ulDSusclrLmjbPgOXsD0BnEf0SQ7OnoE,2303 diff --git a/python/certifi-2021.10.8.dist-info/WHEEL b/python/certifi-2021.10.8.dist-info/WHEEL new file mode 100644 index 0000000..6d38aa0 --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.35.1) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/python/certifi-2021.10.8.dist-info/top_level.txt b/python/certifi-2021.10.8.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/python/certifi-2021.10.8.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/python/certifi/__init__.pyc b/python/certifi/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35c038f2b1febb1eb7d837e175c5cc7a4feaea88 GIT binary patch literal 224 zcmZ?b<>g`kg4?BaiFQExF^B^LOhASM5En}Ti4=wu#vF!R#wf;IrYI&xh7_hK<`m{& z22GZij6i8krdu4z`FSO&c_qcSSj#g~i&Cq&j0}tn^$ZR43@rRKS#Gf;=NF|GfebBT z1`@Zp=9rB06sZ5k^lez literal 0 HcmV?d00001 diff --git a/python/certifi/__main__.pyc b/python/certifi/__main__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..090e39486e659396a327aca51a9fde697a3a0aa0 GIT binary patch literal 389 zcmX|)y-ve06oqZ4PEFKSeT@u(0U;!W5HKQykXTR@DKhb;b!nW)c0ldG!pu9AkykP! z6EhnVcKErH&pr3}`t#{{oFHFs-6Q|>{XGnSMZG!p$6R|6NZ=*PLnljIlbqC19$^G% zGk8Hc1-ghuBnEYx15VgJDWV1=i_W=%Qg({>RNQDqW0)!}0C6G`AC4v$~vbJldal6@#YzJu7 z_R?M}{z7x)FPS4J{sI>m?Dcf47;zF;z^j~c{}}ayPbj-jk*Mv2>LW((#~ZxLgJazH zd9D2BGs?&Y;vuiYjgXTMsMXvPVIq`~L)o6}hKFYshP{#0(KzSRR76UcsmgR@Mk11# zHgTH9M&?8rbNt{5#LPW z4i@G?&;i%?U@_2voj~0+*mdEE#Kd@poYEOO!ZDlzdarA%bM$-RdHI%a8?3Y1SzGV1 zcdNbEHrNt|6@}}Ie5bczJ#Cb&F$NHYV(bS}PMTu*^N>FsaPeg@*)^j)d-P=RR&EZo zG~&S|PIlrgp$GHID@m>dG|&29M?#5f4!;u;1wlQ;4Wb$lTR+x`l!;^LjDpv|3%1J; z7-aAf=)F%kIq|-S2j0GSN@l?FJz7Vg+MF*|Eo=jkB{`SbR?D+ApNOoiL0wl{)K*z3 zoAnFQ>I%GXDUVHjPEge$sT`aYaP9CQd>t2=#BH2maCcImyaRzj+xQf8nBjvmru%?- z<|c`BFG)ahtq9z)RW4N)kA)2w8_HBLX6be=Ga!P8ml3&UJqDj6YLGK9kVHOs0cHsT z7!Vi??s0nJ0RX?N9M+2{R1*>{Tr>dwJlI{RSBUM}V1vb=K7*Zhpb=J%FI*~~s6$T~ z&lASfElArNay-eEN#$l+37t<>B1*EV0>@>cs*4=pQk?pm;>wy*xhmfNKa%IAbT8Zl X>6@@n91w!95{fBl++Om-%2MSYf*<-a literal 0 HcmV?d00001 diff --git a/python/charset_normalizer-2.0.7.dist-info/INSTALLER b/python/charset_normalizer-2.0.7.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/python/charset_normalizer-2.0.7.dist-info/LICENSE b/python/charset_normalizer-2.0.7.dist-info/LICENSE new file mode 100644 index 0000000..ad82355 --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/python/charset_normalizer-2.0.7.dist-info/METADATA b/python/charset_normalizer-2.0.7.dist-info/METADATA new file mode 100644 index 0000000..c062df6 --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/METADATA @@ -0,0 +1,267 @@ +Metadata-Version: 2.1 +Name: charset-normalizer +Version: 2.0.7 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Home-page: https://github.com/ousret/charset_normalizer +Author: Ahmed TAHRI @Ousret +Author-email: ahmed.tahri@cloudnursery.dev +License: MIT +Project-URL: Bug Reports, https://github.com/Ousret/charset_normalizer/issues +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/en/latest +Keywords: encoding,i18n,txt,text,charset,charset-detector,normalization,unicode,chardet +Platform: UNKNOWN +Classifier: License :: OSI Approved :: MIT License +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Typing :: Typed +Requires-Python: >=3.5.0 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode_backport +Requires-Dist: unicodedata2 ; extra == 'unicode_backport' + + +

Charset Detection, for Everyone 👋

+ +

+ The Real First Universal Charset Detector
+ + + + + + + + Download Count Total + +

+ +> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

+ >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

+ +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +| ------------- | :-------------: | :------------------: | :------------------: | +| `Fast` | ❌
| ✅
| ✅
| +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `Free & Open` | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1 | MIT | MPL-1.1 +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `Supported Encoding` | 30 | :tada: [93](https://charset-normalizer.readthedocs.io/en/latest/support.html) | 40 + +

+Reading Normalized TextCat Reading Text + +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
+ +## ⭐ Your support + +*Fork, test-it, star-it, submit your ideas! We do listen.* + +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +| ------------- | :-------------: | :------------------: | :------------------: | +| [chardet](https://github.com/chardet/chardet) | 92 % | 220 ms | 5 file/sec | +| charset-normalizer | **98 %** | **40 ms** | 25 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +| ------------- | :-------------: | :------------------: | :------------------: | +| [chardet](https://github.com/chardet/chardet) | 1115 ms | 300 ms | 27 ms | +| charset-normalizer | 460 ms | 240 ms | 18 ms | + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. + +[cchardet](https://github.com/PyYoshi/cChardet) is a non-native (cpp binding) faster alternative. If speed is the most important factor, +you should try it. + +## ✨ Installation + +Using PyPi for latest stable +```sh +pip install charset-normalizer -U +``` + +If you want a more up-to-date `unicodedata` than the one available in your Python setup. +```sh +pip install charset-normalizer[unicode_backport] -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +:tada: Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Normalize any text file* +```python +from charset_normalizer import normalize +try: + normalize('./my_subtitle.srt') # should write to disk my_subtitle-***.srt +except IOError as e: + print('Sadly, we are unable to perform charset normalization.', str(e)) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure chaos, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is chaos/mess and coherence according to **YOU ?** + +*Chaos :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess. + I know that my interpretation of what is chaotic is very subjective, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
+Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © 2019 [Ahmed TAHRI @Ousret](https://github.com/Ousret).
+This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + + diff --git a/python/charset_normalizer-2.0.7.dist-info/RECORD b/python/charset_normalizer-2.0.7.dist-info/RECORD new file mode 100644 index 0000000..a051b37 --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/RECORD @@ -0,0 +1,33 @@ +../../Scripts/normalizer.exe,sha256=YcJOWpkWho1fYbNYhyuGRwcSAX4Cbi0usnePUc1H0Wc,106360 +charset_normalizer-2.0.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-2.0.7.dist-info/LICENSE,sha256=6zGgxaT7Cbik4yBV0lweX5w1iidS_vPNcgIT0cz-4kE,1070 +charset_normalizer-2.0.7.dist-info/METADATA,sha256=IBf9rYJsfiUkX_1wIFO3ABSfIPbgA-k1gqrq_VfypyY,11350 +charset_normalizer-2.0.7.dist-info/RECORD,, +charset_normalizer-2.0.7.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +charset_normalizer-2.0.7.dist-info/entry_points.txt,sha256=5AJq_EPtGGUwJPgQLnBZfbVr-FYCIwT0xP7dIEZO3NI,77 +charset_normalizer-2.0.7.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=BVLv4gxL3YZ0xFHfrJacXqdV5YUm98fACgSaEtynXZc,1491 +charset_normalizer/__pycache__/__init__.cpython-37.pyc,, +charset_normalizer/__pycache__/api.cpython-37.pyc,, +charset_normalizer/__pycache__/cd.cpython-37.pyc,, +charset_normalizer/__pycache__/constant.cpython-37.pyc,, +charset_normalizer/__pycache__/legacy.cpython-37.pyc,, +charset_normalizer/__pycache__/md.cpython-37.pyc,, +charset_normalizer/__pycache__/models.cpython-37.pyc,, +charset_normalizer/__pycache__/utils.cpython-37.pyc,, +charset_normalizer/__pycache__/version.cpython-37.pyc,, +charset_normalizer/api.py,sha256=aTYqVTGki22DYJDVqiUyEheBjwo2BKBQNJwa_7SU3KY,17092 +charset_normalizer/assets/__init__.py,sha256=FPnfk8limZRb8ZIUQcTvPEcbuM1eqOdWGw0vbWGycDs,25485 +charset_normalizer/assets/__pycache__/__init__.cpython-37.pyc,, +charset_normalizer/cd.py,sha256=xdMt8glWp1uX84nBJMynjBqr4g951q0jTQ1BX82TJNE,11003 +charset_normalizer/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/cli/__pycache__/__init__.cpython-37.pyc,, +charset_normalizer/cli/__pycache__/normalizer.cpython-37.pyc,, +charset_normalizer/cli/normalizer.py,sha256=H_2C2e81PqNCmUaXuwBJ5Lir_l0wwzELSxjPXcUL9O4,9453 +charset_normalizer/constant.py,sha256=W4u2KeC-RBJP4jxfTK_rOHUERMnejoY21VhIeFOgQKw,19387 +charset_normalizer/legacy.py,sha256=XKeZOts_HdYQU_Jb3C9ZfOjY2CiUL132k9_nXer8gig,3384 +charset_normalizer/md.py,sha256=iCAG4l121wZfZIgJhEDROnAaLcGsvlLNjXMitEBfOZY,17164 +charset_normalizer/models.py,sha256=wObDc9qaxz85xkqh6UozTpL0lLkQuvklO47e81lR89E,13332 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=6vfdA59u0VQD3_dDXf2B8viuUWPo9xIfKq4b0nXX6Mo,9026 +charset_normalizer/version.py,sha256=l3uyLlrnBh9G0hbagT5ZkEBPiFCyYfNhUn1Ea_qbRus,79 diff --git a/python/charset_normalizer-2.0.7.dist-info/WHEEL b/python/charset_normalizer-2.0.7.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/python/charset_normalizer-2.0.7.dist-info/entry_points.txt b/python/charset_normalizer-2.0.7.dist-info/entry_points.txt new file mode 100644 index 0000000..a67f60b --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +normalizer = charset_normalizer.cli.normalizer:cli_detect + diff --git a/python/charset_normalizer-2.0.7.dist-info/top_level.txt b/python/charset_normalizer-2.0.7.dist-info/top_level.txt new file mode 100644 index 0000000..66958f0 --- /dev/null +++ b/python/charset_normalizer-2.0.7.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/python/charset_normalizer/__init__.pyc b/python/charset_normalizer/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1e501ab18dbb22417de6810ee40dc76dc586110b GIT binary patch literal 1531 zcmcIk&2QsG6nDN8x9N64pgnMSoSI161a=RLq9xjNDI(G~MQ!0=MKTk65|27#TQlR7 za9F`!_*=LYq!kr{@-MjJ<|`-u1x~zilBS5gV#!bQzJD|C41e_%65nzxzu*^nK@^>$C^;ojcFLmSR0>93;#E;|YNGDcMZ;+b+p)!#vz6=0 zd|Nb~rr2?Ia=yaviCt$`+;{FHUv=K{Yo}Jbp1dkqmi;^+Qc=A>iliW%eM6=F@?W2Q z7Em~$gu|yyDh*$RY)+*@e&q_EP)$7@$&Nh$&L)z`1?Yfi2q=#gETRM?B|d2SwT7vT z1dtGt@H~tzLhzRPfreh>vvAh2k0QHbJczFnkpbDmugo}WAK_2S! zg$^Rb7fE`1D-1JdKAIv{>M0XvSJ`^vzC zam&^2WTB~AJK%j1t`&TIN7vdrxcM%9o&J(u!Oi#Sb^4QGAiYX|O)nw+{pQ>B5@pwr z{$}{=^v7KCb8dNw!mIRk2aew)zIl~izrWYX-=DVj5bhZZ_)Z4yXQsmLb6$)d(iUQ@aTg_ADV_6 z1OhwuZ1CC1(C%^O(NNJI91YJN<^Wy{pC67+5Az-qrlqi{5u)nYe-&`r+vUtQldATc@OYGMxvtp+_>ivKZc5xHmMj}$7MaBDW=XT`&Jx-_QKs*r)SxoKODaC*v1vGFD8}{ng%4V{f^w?#yx5by>)? d>vrNrR)31g6Hfako-%OCg$ITAYP*Hq(my{BAE*ET literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/api.pyc b/python/charset_normalizer/api.pyc new file mode 100644 index 0000000000000000000000000000000000000000..334cd5f9d85c4ed82af5af4899715c849720b676 GIT binary patch literal 9596 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 XJv_r2#e8h;e@E_IoWyEI?6m#^i_8$) literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/cd.pyc b/python/charset_normalizer/cd.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9e7137e52bceeb29b700c7a04c187b1a86273c9 GIT binary patch literal 8184 zcmd5>-EZ93btgF_=R+e|8p*Qdk6qg9cs<*V?DeMJjqCVRa(1(}oW|a4%gUKhb2$<% zayWA@$CeaMQB>}(jbaNI*oQVX3b_wOn}@tNZ$*Fr{S!*GPkku-+V;tPXn*J48ERxZ zivWG81adC#H_tuicYf#a>iBp?!(Z0>L+`)e(X@Y~hv8olh0D0amab_`V|u8$^lOBA zWVnV-Xh%i2D9ct@ipp*|s<@SC%pHrWZWZ-5D~99IggYV2rEp&~ z=}tyd?o?EBYqG8!PDeBDj4W5e{n4yDE6Zcyf#{%nFq(7cqC@VX=&*Y@I^rJDHUFqz z@sG}Ftoqbo<80!g>AsQI?L*xpn?l{2esOzm-x`~KXm0DS^GeGM+b>&=vAUYuKR#IF zz|#Ud$mSke?pwn({1faDY7es`SmhhTT6PpGzro%_-ARm{ozwhT=AiBvJC3@y{UUpd zo%m8`?_k6Ue~jJ$Jx)F~+1u>YLks&l#q`@+{kNXei7eIitoCuc$^FQ0CtkSVH)H1W zx{(#H#l3do^K9%EM~%-Gf@Xr=<&gIpO|QA;*UikN%FMhGh$JiB>Lfwj_QK4%)9Zx( zbDXb+0b|#Hu=u;5E-qdBc=2|=nb~cMr)C-fKv9g)?4GfD}&|b|Bp}yA+=+)KC4FNf{na4M?@jVR?OgZq{ zUZd?rer9t&>G5`x-jx1qTo$eZF7XT85-ruXbv~KsOyAc3SWk?d0yB2ZRC}gB)9+b* zJ=Ix(nP2LCBhVh}%zCVCgo#c1ylpIKcYo9`q{dD$DW!!~%3x*0)lN zmDWrAUiWfRNpZHUjHk<~^+;bY^3NH5Q|p38cT0mNS3bbj@GMJ@weIE5v}EiH?F+qS zurXGBSbC%{V87d>ALCosD-QmCAYak(gov8~$ zt@`tFg01=My>^pS!)eEfBYK@q%xNA}$iw*N-ceiC;kk(UpY$_3SZ&9g&f4}lkGbF^ z?dO;2_CL5SUFQTg`572^FmX-e5)N*wID@+f`#Pkc&*9w<17X%JZl?O58(kA`s;|B; z|9*Mt?=_sSF@Gl8*Ie_s*M#~HG|d>TYLaDSW5V~_s#)+OSm?!hc7B=p_m?}H$y(fg z|AXZl!OF4-691bWuelC^h-I2r_(=n=6nSB=<@3``Hs9HNQMnMph?;TKxpa#-CYq9)j;j6Q7}WTgU^e+k93|uln&!?__$ASu95HQrEgLQfWj}L-m4aTs?K$H>G zO+JRrWEQj`QnJl#uha3{tZwl$)KtzV%SyvyR>>7nWaYdp<*aT}zz6nV6u@q%*0^|bA@dU6i@7#`~5!i4%?mKI~cRvU> zoiJ#xL$XN>MBz!$?1diBXE`P6O1yX00^ziVFvDUTNU}y#;*>-ONRAB*;AqLUZjdwB z8k0ZHRSzczoh99pg27Rdn!6Kwgev4Ax%))NZw9TvX9MLUjUPFQ+VD+x58)&95H;L1 zy9D*FK%q_DhI-ou{}8qLK@hIx2eE>ORNDbRdZvq$vINB(lnScEOepQU%p&p29yaPP zrZ|dqn_p)|R$4U%EoHR)9$E~v{D@U(#Ht3x9^3jWd002eEB?PbE7ullK`Uuwl|aO2 z&zwEmxYuzlzt?Qs1MGCZ{r=gk^gXZRwSD1d#_9@4%UVDWTT|CUc&q>j=?toN=UC^N z{Rv!(*9IM_hy;2i$Z|PZ3a{c;*QE-)Y-anTm7Fu|p6@aS2*NV02;;(k$*}brPPs-W zdjnPX_{}DjF9Z6w6(dpDMIcOnNCM)5V!rte|E{!G0YUHAz zKKjP)&Xi9rT?oBsg?SgBV%UG;(zZ@~{Wes0xX;46znK-ef8Pfc$@empk=zTZv*b-x z$xy)^hg?arFSRWtA$OWc3lMcB^z-+BX}3~he~mc@5~~;a6rQ9@&&1IwYO zNw|XBQLlYK}d%v2q8Bj&OyBZ`5L_T zECnDt28A6IhQR)fC;CQ}eESpqF0dpmkk_B1zUR8fRhb#;7n}$V=TD3|P2vxFjn=b* zY_Sl?7?M8?`aXtn4WCt?#}sJj%w!f2!z63pF&SJ|-Pj-)gnMyMKoe7A4+II$VDLOO?~ zTlAJ7JPAV!KB9mKUd0Joj^_+cU<7SIQAFaLTG@2sX0r#v0jlA&cpN!Vj0Pfkh$W~J zB!+|Ah@|dFRl;OH`-s zcx~pqhhA+g?sRtK+;F6vT{Ta!QO%gMd_UJ!bK3yCF5uOQGgDeqnc zB9vALw2Le`LQ`xwm0PK3toR6SeASU`Qlig4(xd~tes836C+-lX43bS4HgJsluY>Mi z<4S(xP4b&qp3)T~D|;;{)=Rtm)$T5z6EBxeVBk0Y`4R#!8AMcm=!HFBhIsrWdLgO+ z!`%QSqQI1YOly@SV(=R%y9e`C8_-4`-v@hDT?sr#nuoG$D4=x@bY#|7#s3Ul#ChDbQc0fxUQQrtF+izi=qeb94sn?^ z!!FPTrG;%36rE44z6pYM9>8MC{woNa zkh@7KGqZu2&1axlsd+)`0)|tQ@-wPd_oVj$$3sC30Xs-=u9;_KL?;ZAf5mJn zonhN>>!h?Qi2)}s)lx-$Cd$-y(BLjcKutl#2`P5z|2aN1r7a@FV%^?Aj!rAJ0Mq*`GXRirM_(p==%?)P8uNY1<-dm@-GYEs`l2O%JbYCghxJj*WlcR(*fO7 zSzJf4b+}79+T8Iphk0BG9J)B_1f@17n;m#y71j&nUJ(L7c?P-P(J}n{kX7zeU^2fE z!{(GK+Vw3GsQ4o49L&J4qp)>Kz7c?P&!S?~T_}ou2cGG>G#y3$P&^6bL~D^~13Jt|KF?t0W*d%;bG4eJ9GL`?X!k2%zgairMQdUOD z?2ENHWLY&_Z3OLR*b{&erN;$yp+5?$iIz$|{tpzO!3A6|7pJnT`dBQOKFLav|mmv%6A})EDu7_N?J*5 zP(t3liU2cj>5px=soD9nq=-<}k~#K|`c>rDtLfOb(H~F8VLuxGS@%hMG94%C$bSLq zIR?sUr-hwzT1BRPoK=T5fwpn=6|0=v3O8FhGw3APUwVzWtUAyZp_mvc$bsw+#s zpQo^31)yL}uMKYJ1jth*GP^{$sSIU^>+{YX*vs%qp)H2sTST}?xknh3!Zu|(SJad9 z9ppa-scZ*sf|A;liAV3D0}!WGB7cCaij=+3-`$fS+a*ABuB6c~#fd;4qzhBy6_!?z zaWtpn&vX?qy+nGxLy9?|W^cV@UZd7EOmpYP{q5Dsm;9HkXZ2 z)InS}f+gOiYDz1~Fp?85QUUfdm1LAXA&r?gse;i>g3;8dK{v>ga*D&R2&jHNob7u_G;h%fQQ}l9BY*~O zkw+yDYvMjZn1-;KNZ|x|TA*5~Ky6e%BYX07jIHa}0n;leE!FG%1b#D{K3p}0`X(~g zjKffcHbM$k(T%cnSaBQ*PMNyQhF=1!;lv|3xol2Y$H{TKHd0qU+&Xb~w*;nxR3qp) zB^cG25Hz|*#JHp_Ha^Yxn0FGjnbk`Ilx3ELawGD?j{F)Ui4I&y!go{FGLI}%jhVTE z&B@cwtX3G~6OTM}sUJV4iRk4=6knRaG1O(H3+mg@MN(@)pCpK=;M@)S*Xg`kf?K6^i6Hthh=2h`Aj1KOi&=m~3PUi1CZpd2KczG$)edC(XCP((0K^O@%K!iX literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/cli/normalizer.pyc b/python/charset_normalizer/cli/normalizer.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a213339387c539d28aaddf00e1f973bc415b294 GIT binary patch literal 6017 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 BdmaD) literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/constant.pyc b/python/charset_normalizer/constant.pyc new file mode 100644 index 0000000000000000000000000000000000000000..982ded38723cef98793d365e0b701104a7a74f3a GIT binary patch literal 13707 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 literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/md.pyc b/python/charset_normalizer/md.pyc new file mode 100644 index 0000000000000000000000000000000000000000..65b9c43aa27f74b09240e717362b139be85cf0cb GIT binary patch literal 14719 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 literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/py.typed b/python/charset_normalizer/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/python/charset_normalizer/utils.pyc b/python/charset_normalizer/utils.pyc new file mode 100644 index 0000000000000000000000000000000000000000..11f482772f65ad4871fed659f74f918b829cad95 GIT binary patch literal 7423 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 literal 0 HcmV?d00001 diff --git a/python/charset_normalizer/version.pyc b/python/charset_normalizer/version.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1acfe7e80130e4557d4a0bf40cac79e81ab5013a GIT binary patch literal 235 zcmZ?b<>g`kf?K6^iT*(PF^B^L%s_?%5EqL9i4=w?h7`sq##F`yOestY8Kam}n1dNK zS*irMTq_Fli&GWKQj3Z+^Ygf>SdH`y^vrKD>iKE1++vT9PsvY?kH5to9}iUl=3.5 +License-File: LICENSE.md + +Internationalized Domain Names in Applications (IDNA) +===================================================== + +Support for the Internationalised Domain Names in Applications +(IDNA) protocol as specified in `RFC 5891 `_. +This is the latest version of the protocol and is sometimes referred to as +“IDNA 2008”. + +This library also provides support for Unicode Technical Standard 46, +`Unicode IDNA Compatibility Processing `_. + +This acts as a suitable replacement for the “encodings.idna” module that +comes with the Python standard library, but which only supports the +older superseded IDNA specification (`RFC 3490 `_). + +Basic functions are simply executed: + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + + +Installation +------------ + +To install this library, you can use pip: + +.. code-block:: bash + + $ pip install idna + +Alternatively, you can install the package using the bundled setup script: + +.. code-block:: bash + + $ python setup.py install + + +Usage +----- + +For typical usage, the ``encode`` and ``decode`` functions will take a domain +name argument and perform a conversion to A-labels or U-labels respectively. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('ドメイン.テスト') + b'xn--eckwd4c7c.xn--zckzah' + >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) + ドメイン.テスト + +You may use the codec encoding and decoding methods using the +``idna.codec`` module: + +.. code-block:: pycon + + >>> import idna.codec + >>> print('домен.испытание'.encode('idna')) + b'xn--d1acufc.xn--80akhbyknj4f' + >>> print(b'xn--d1acufc.xn--80akhbyknj4f'.decode('idna')) + домен.испытание + +Conversions can be applied at a per-label basis using the ``ulabel`` or ``alabel`` +functions if necessary: + +.. code-block:: pycon + + >>> idna.alabel('测试') + b'xn--0zwm56d' + +Compatibility Mapping (UTS #46) ++++++++++++++++++++++++++++++++ + +As described in `RFC 5895 `_, the IDNA +specification does not normalize input from different potential ways a user +may input a domain name. This functionality, known as a “mapping”, is +considered by the specification to be a local user-interface issue distinct +from IDNA conversion functionality. + +This library provides one such mapping, that was developed by the Unicode +Consortium. Known as `Unicode IDNA Compatibility Processing `_, +it provides for both a regular mapping for typical applications, as well as +a transitional mapping to help migrate from older IDNA 2003 applications. + +For example, “Königsgäßchen” is not a permissible label as *LATIN CAPITAL +LETTER K* is not allowed (nor are capital letters in general). UTS 46 will +convert this into lower case prior to applying the IDNA conversion. + +.. code-block:: pycon + + >>> import idna + >>> idna.encode('Königsgäßchen') + ... + idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed + >>> idna.encode('Königsgäßchen', uts46=True) + b'xn--knigsgchen-b4a3dun' + >>> print(idna.decode('xn--knigsgchen-b4a3dun')) + königsgäßchen + +Transitional processing provides conversions to help transition from the older +2003 standard to the current standard. For example, in the original IDNA +specification, the *LATIN SMALL LETTER SHARP S* (ß) was converted into two +*LATIN SMALL LETTER S* (ss), whereas in the current IDNA specification this +conversion is not performed. + +.. code-block:: pycon + + >>> idna.encode('Königsgäßchen', uts46=True, transitional=True) + 'xn--knigsgsschen-lcb0w' + +Implementors should use transitional processing with caution, only in rare +cases where conversion from legacy labels to current labels must be performed +(i.e. IDNA implementations that pre-date 2008). For typical applications +that just need to convert labels, transitional processing is unlikely to be +beneficial and could produce unexpected incompatible results. + +``encodings.idna`` Compatibility +++++++++++++++++++++++++++++++++ + +Function calls from the Python built-in ``encodings.idna`` module are +mapped to their IDNA 2008 equivalents using the ``idna.compat`` module. +Simply substitute the ``import`` clause in your code to refer to the +new module name. + +Exceptions +---------- + +All errors raised during the conversion following the specification should +raise an exception derived from the ``idna.IDNAError`` base class. + +More specific exceptions that may be generated as ``idna.IDNABidiError`` +when the error reflects an illegal combination of left-to-right and +right-to-left characters in a label; ``idna.InvalidCodepoint`` when +a specific codepoint is an illegal character in an IDN label (i.e. +INVALID); and ``idna.InvalidCodepointContext`` when the codepoint is +illegal based on its positional context (i.e. it is CONTEXTO or CONTEXTJ +but the contextual requirements are not satisfied.) + +Building and Diagnostics +------------------------ + +The IDNA and UTS 46 functionality relies upon pre-calculated lookup +tables for performance. These tables are derived from computing against +eligibility criteria in the respective standards. These tables are +computed using the command-line script ``tools/idna-data``. + +This tool will fetch relevant codepoint data from the Unicode repository +and perform the required calculations to identify eligibility. There are +three main modes: + +* ``idna-data make-libdata``. Generates ``idnadata.py`` and ``uts46data.py``, + the pre-calculated lookup tables using for IDNA and UTS 46 conversions. Implementors + who wish to track this library against a different Unicode version may use this tool + to manually generate a different version of the ``idnadata.py`` and ``uts46data.py`` + files. + +* ``idna-data make-table``. Generate a table of the IDNA disposition + (e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix B.1 of RFC + 5892 and the pre-computed tables published by `IANA `_. + +* ``idna-data U+0061``. Prints debugging output on the various properties + associated with an individual Unicode codepoint (in this case, U+0061), that are + used to assess the IDNA and UTS 46 status of a codepoint. This is helpful in debugging + or analysis. + +The tool accepts a number of arguments, described using ``idna-data -h``. Most notably, +the ``--version`` argument allows the specification of the version of Unicode to use +in computing the table data. For example, ``idna-data --version 9.0.0 make-libdata`` +will generate library data against Unicode 9.0.0. + + +Additional Notes +---------------- + +* **Packages**. The latest tagged release version is published in the + `Python Package Index `_. + +* **Version support**. This library supports Python 3.5 and higher. As this library + serves as a low-level toolkit for a variety of applications, many of which strive + for broad compatibility with older Python versions, there is no rush to remove + older intepreter support. Removing support for older versions should be well + justified in that the maintenance burden has become too high. + +* **Python 2**. Python 2 is supported by version 2.x of this library. While active + development of the version 2.x series has ended, notable issues being corrected + may be backported to 2.x. Use "idna<3" in your requirements file if you need this + library for a Python 2 application. + +* **Testing**. The library has a test suite based on each rule of the IDNA specification, as + well as tests that are provided as part of the Unicode Technical Standard 46, + `Unicode IDNA Compatibility Processing `_. + +* **Emoji**. It is an occasional request to support emoji domains in this library. Encoding + of symbols like emoji is expressly prohibited by the technical standard IDNA 2008 and + emoji domains are broadly phased out across the domain industry due to associated security + risks. For now, applications that wish need to support these non-compliant labels may + wish to consider trying the encode/decode operation in this library first, and then falling + back to using `encodings.idna`. See `the Github project `_ + for more discussion. + diff --git a/python/idna-3.3.dist-info/RECORD b/python/idna-3.3.dist-info/RECORD new file mode 100644 index 0000000..458a196 --- /dev/null +++ b/python/idna-3.3.dist-info/RECORD @@ -0,0 +1,23 @@ +idna-3.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +idna-3.3.dist-info/LICENSE.md,sha256=otbk2UC9JNvnuWRc3hmpeSzFHbeuDVrNMBrIYMqj6DY,1523 +idna-3.3.dist-info/METADATA,sha256=BdqiAf8ou4x1nzIHp2_sDfXWjl7BrSUGpOeVzbYHQuQ,9765 +idna-3.3.dist-info/RECORD,, +idna-3.3.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +idna-3.3.dist-info/top_level.txt,sha256=jSag9sEDqvSPftxOQy-ABfGV_RSy7oFh4zZJpODV8k0,5 +idna/__init__.py,sha256=KJQN1eQBr8iIK5SKrJ47lXvxG0BJ7Lm38W4zT0v_8lk,849 +idna/__pycache__/__init__.cpython-37.pyc,, +idna/__pycache__/codec.cpython-37.pyc,, +idna/__pycache__/compat.cpython-37.pyc,, +idna/__pycache__/core.cpython-37.pyc,, +idna/__pycache__/idnadata.cpython-37.pyc,, +idna/__pycache__/intranges.cpython-37.pyc,, +idna/__pycache__/package_data.cpython-37.pyc,, +idna/__pycache__/uts46data.cpython-37.pyc,, +idna/codec.py,sha256=6ly5odKfqrytKT9_7UrlGklHnf1DSK2r9C6cSM4sa28,3374 +idna/compat.py,sha256=0_sOEUMT4CVw9doD3vyRhX80X19PwqFoUBs7gWsFME4,321 +idna/core.py,sha256=RFIkY-HhFZaDoBEFjGwyGd_vWI04uOAQjnzueMWqwOU,12795 +idna/idnadata.py,sha256=fzMzkCea2xieVxcrjngJ-2pLsKQNejPCZFlBajIuQdw,44025 +idna/intranges.py,sha256=YBr4fRYuWH7kTKS2tXlFjM24ZF1Pdvcir-aywniInqg,1881 +idna/package_data.py,sha256=szxQhV0ZD0nKJ84Kuobw3l8q4_KeCyXjFRdpwIpKZmw,21 +idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +idna/uts46data.py,sha256=o-D7V-a0fOLZNd7tvxof6MYfUd0TBZzE2bLR5XO67xU,204400 diff --git a/python/idna-3.3.dist-info/WHEEL b/python/idna-3.3.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/python/idna-3.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/python/idna-3.3.dist-info/top_level.txt b/python/idna-3.3.dist-info/top_level.txt new file mode 100644 index 0000000..c40472e --- /dev/null +++ b/python/idna-3.3.dist-info/top_level.txt @@ -0,0 +1 @@ +idna diff --git a/python/idna/__init__.pyc b/python/idna/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aadb0939a155c0133ccabede24e03af2793215b0 GIT binary patch literal 864 zcmbu7&5qMB5XX~#q)n6bBWb%U-k?Z;1PCOA5bVNXCA0!@vnp9`#NRpA~hCO^?@4KG&9h2W9bHPh@S6>~#1HbU3 zPkbNaPSKHF(v>~ZlYP>c0SV-Q4CIguWk^CfA|n}*NX8_V2}$IbjOBz(De-rHp>2qkL43Yu%V5sDidwR&42Y!me{w*m0nO>G0N z+UKGDBs$d9<0sT`$x1tJEV^Qikx#dBZPWIB^CvC1+SWUpwOUmhp|&@o+nAYKqG4*w ztELK7%dh~StR&3Ul rsQJAc!_``VVh1ShY&lYu{p%%aBN=8-e=;lXx`(&5n)|7{JDn=x9{7^k!hzd zq;iBTzflsc$V55A@>{vK)c)`)Kp!6BAB?tdD*LnHAd$-ZWRS=GG)jgw9Qd;J;D@`9 ze*5Xs@7p&!G;>@WY+S;cEuoM`z=RQ)!jl&MxU{9yHIJjM?pwkV{GN?=svt^Z)~+#I zI5_4B7x!LO_7&W6M>$yzaVPgJ#YL1ycoy1crW}y@5Ymo?8mZ8iW4(ekYoRDi!ERe{ zG)Ki-tT4CPCcDcDmYpQyJyk;Lih z!s+iur+xD=PBXwo;d7vqE2rCsUX+7L9V?M3?KYE17szUW>@t2fU=BZjoD=Ua3;Ff( zU_HOpPv1Ge{BgXpoW;33JBT{Bqg9zL$0Ci+(LHrqgLS*_ksql+9B;! zNI8Wd&E;RP@lRadLLP6k5f^-97aYDQxUi3-HwuUP!oFan&BDqwe!-v_G_q=pFeHuK zZ{IHXl5z9Q$Sa&Jp4)}DiK{WAaN%y@3h%rzatk+i2&eWPaRY-F=gNr& z1DOgSGin+tzSfUZzq+4{FX9B{=-8L3S`JZ6?oG>4SjmP-j_w<8;KF5mtd?L%%$m}N zh^!jn%COs&5SETeD`#(^FeaW_W$3Ti)75mSM;^?otf8@4tHEk)WARCzwDzvu_B}X? zE5k7o&yhHeLh+S;Khcbb7YIBE~m7869+C}9n+TjduU76yF?Qxs*Xdm zU>JT)RlA;pjCwZ!Q!KPGFYWW7sad89>Gkjxt+(SR)PGimpUOx)wZe0#U}cv=>SNN= zIRTrKQo+_0tl0vJ+*o6R<>scbW@(9$J9lz7_k{T)J)x|&;`EmAUBxLk>ZgRxfvOo# zlTsPDU=LPa9H<&bJha|7+Ir(2B6u{vq8$B5$y7x@MXsgz3Zl$4)uST}(0u{f5a?XH zh&Zvhnpu^oXcdzrtaouzM$ZWY!=%X^{F(X(?;++NRlL)OU56>dz4j2w(eN$`Wnxxv z^7R3R^^#&_I^}lyy+NEvSfGitSM~g59loV_GW_b@A2?x$=lf4~o>rwz9(YFYgYv<0 bk?5L{6Q01V;IUb=YBuMai_OJ(KF|LGE@P;Q literal 0 HcmV?d00001 diff --git a/python/idna/compat.pyc b/python/idna/compat.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e247aa7d2b8d452b411251d13e861d9fdce634a4 GIT binary patch literal 703 zcma)3&5G1O5bn<3Br`iQ;6-n_M*JD{pe!PetA_!}Wyi~qOD0vW!K6D>_XrX3;QAQ8 zfUne7Px}gR0pmR4}>y*Lo#|_~o4=g>1ZJHWdpHAUmTDCSo@ zTNKjCdsl3TB5>hKjV^wtTCLcNyLyM6O9<_rRO72Xc^xpHF`JZy6<@@q z>ilfIj{O)vPe_`v{O>&gZ|rf{;#&CIyKJKwrZ4aaj{WCsmyBE*n*4Lr31=*S%%%J$ zK``u~{Ct1?x?JUtm&<24Xf(OfHs9N}YYpbA?r|U-@`1F~jqdnJw@Yo;{m@~L$|AfW z(!>|L#jXF|G(Eoe;E#(g*e+%+YBZsXJ&eXBb{txDL6L9bujWEy$;G?TqB)$-W!|od l>XAHD@@;O+^FKw0^Q6yv4f_sX_|G;zl*&{tf<<^I`~!Z5m$U!? literal 0 HcmV?d00001 diff --git a/python/idna/core.pyc b/python/idna/core.pyc new file mode 100644 index 0000000000000000000000000000000000000000..30b88bb6e2b351ab87939c9c952c6836bd812197 GIT binary patch literal 9756 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 literal 0 HcmV?d00001 diff --git a/python/idna/idnadata.pyc b/python/idna/idnadata.pyc new file mode 100644 index 0000000000000000000000000000000000000000..001d7c398a59cc0268ebd169a4d626916c33a711 GIT binary patch literal 23084 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 literal 0 HcmV?d00001 diff --git a/python/idna/intranges.pyc b/python/idna/intranges.pyc new file mode 100644 index 0000000000000000000000000000000000000000..37ce3e4a7abb434b39ebc5a83a2b0524cd50543c GIT binary patch literal 1934 zcmZuyOK;pZ5GE;Uy;<9h^J?rS2#DlR3vjo290~-^18I<63>QcO6g6DP@{+q2td%wt z;e6k4pUltq7@DhpO@E$Y>~C6} zwh)uY=+$o+6x(2mE0OaJj&G2Qaj+4L!;O$L9q4F@=}<>19Ev5TqPIeI)XeYUMn^~V zQ{A_LI;VP&%wP>o9eK@JXwIp5$h)n)^`OtGFJN(AEnugo#0wT*NY8P`dOu`)x{#^N zv&zbHD6_)qkv7$e9H&aldP2hGopPdwb)Fx_P_4#kp39;hZ)-!ld0C94sf((I#h@%I zJ*X|*e&TCTjwiL%FgAK(bfpWM+N>&^%+)pccAWz))vchkdCL3i%n)?erx`~*i&Bj{(xSW@x z1GrWhb+zI8AHVD>$F^(O|)8g|5| ze8i?g@o8{iEVrWJNBBKuzidy#CRE}oYh}C4tTns|ml%yC2h3uT?FzH@>IP&1$=aPi zK!Iu0h1D3aSg_sQ*#U?eR%3Bf~ntjMY!>>$&r{Vd(y%PE&+YP8e`>A>cP z&?+kpoX+e#>PaS7A3(fH;9~(s$f^WTS-X|Yj_XvVv0Ayv=fMTJE?g&_OyI)JCrA>GOxnH3 zdx|@TD%#Dqh6(WmH1T1&UY>$A`zEv6@yyK+YGXk9*1=!QT!Q64_tgDOrS~=`he%3s z@4L;lYPx5#7bwm&&^mp-nNp()4y*jae1zQn+~T^{0hkuUH? zF8F1Bop*(~f}J>UkjmELB2>W()=;^k_#xeE zZ9m#|$PT5xM|vv6m7~`Wo@%SjI4i*Bq1>XFx8x8nZAI^BDNAgeyp}B)=qcN3r(1o` zVna82`7Dln>Ro3$!&7YCZ2L`eJ+y{$V(33Ao-x;GPI+-1&*;Pjld^IlDWVRt(T;UI z`ER~2oDmR@y-l;?Yq)6XCwhD?=z?~OJQQ;vA<@wgCh@GBNfK2KlEhqZk35{9cny)o x5YjFn$3#^hzK_&}+hv)12cLv-hJAN+T&gg`kf?K6^iK0OIF^B^Lj6jA15EpX*i4=w?h7`tN22G|aW@9~LKTXD4-0|^c zsYS(^`FZj2D;bKIfU3a6FS8V@n3UAAn1afZjQl)f^BAAZq?qE&l2qM-#N_P6^wi>* j%#^%DeJC$JC9xz?ub}c4hfQvNN@-529mwX-K+FIDp1Uap literal 0 HcmV?d00001 diff --git a/python/idna/py.typed b/python/idna/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/python/idna/uts46data.pyc b/python/idna/uts46data.pyc new file mode 100644 index 0000000000000000000000000000000000000000..accced5da42142844c178a4e6373b76e234104cd GIT binary patch literal 185497 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 mwRkonnzPOLC%h@+Mz%$KC+#o~MYCrOuRG@d`__ + - `Documentation `__ + - `Download `__ + - `Blog `__ + - `Mailing list `__ + - `What's new `__ + + About + ===== + + Python FTP server library provides a high-level portable interface to easily + write very efficient, scalable and asynchronous FTP servers with Python. It is + the most complete `RFC-959 `__ FTP server + implementation available for `Python `__ programming + language and it's used in projects like + `Google Chromium `__ and + `Bazaar `__ and included in + `Debian `__, + `Fedora `__ and + `FreeBSD `__ package repositories. + + Features + ======== + + - Extremely **lightweight**, **fast** and **scalable** (see + `why `__ and + `benchmarks `__). + - Uses **sendfile(2)** (see `pysendfile `__) + system call for uploads. + - Uses epoll() / kqueue() / select() to handle concurrency asynchronously. + - ...But can optionally skip to a + `multiple thread / process `__ + model (as in: you'll be free to block or use slow filesystems). + - Portable: entirely written in pure Python; works with Python from **2.6** to + **3.5** by using a single code base. + - Supports **FTPS** (`RFC-4217 `__), + **IPv6** (`RFC-2428 `__), + **Unicode** file names (`RFC-2640 `__), + **MLSD/MLST** commands (`RFC-3659 `__). + - Support for virtual users and virtual filesystem. + - Extremely flexible system of "authorizers" able to manage both "virtual" and + "real" users on on both + `UNIX `__ + and + `Windows `__. + - `Test coverage `__ + close to 100%. + + Performances + ============ + + Despite being written in an intepreted language, pyftpdlib has transfer rates + superior to most common UNIX FTP servers. It also scales better since whereas + vsftpd and proftpd use multiple processes to achieve concurrency, pyftpdlib + will only use one process and handle concurrency asynchronously (see + `the C10K problem `__). Here are some + `benchmarks `__ + made against my Linux 3.0.0 box, Intel core-duo 3.1 Ghz: + + pyftpdlib vs. proftpd 1.3.4 + --------------------------- + + +-----------------------------------------+----------------+----------------+-------------+ + | **benchmark type** | **pyftpdlib** | **proftpd** | **speedup** | + +-----------------------------------------+----------------+----------------+-------------+ + | STOR (client -> server) | 585.90 MB/sec | 600.49 MB/sec | -0.02x | + +-----------------------------------------+----------------+----------------+-------------+ + | RETR (server -> client) | 1652.72 MB/sec | 1524.05 MB/sec | **+0.08** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (connect, login) | 0.19 secs | 9.98 secs | **+51x** | + +-----------------------------------------+----------------+----------------+-------------+ + | STOR (1 file with 300 idle clients) | 585.59 MB/sec | 518.55 MB/sec | **+0.1x** | + +-----------------------------------------+----------------+----------------+-------------+ + | RETR (1 file with 300 idle clients) | 1497.58 MB/sec | 1478.19 MB/sec | 0x | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (RETR 10M file) | 3.41 secs | 3.60 secs | **+0.05x** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (STOR 10M file) | 8.60 secs | 11.56 secs | **+0.3x** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (QUIT) | 0.03 secs | 0.39 secs | **+12x** | + +-----------------------------------------+----------------+----------------+-------------+ + + pyftpdlib vs. vsftpd 2.3.5 + -------------------------- + + +-----------------------------------------+----------------+----------------+-------------+ + | **benchmark type** | **pyftpdlib** | **vsftpd** | **speedup** | + +-----------------------------------------+----------------+----------------+-------------+ + | STOR (client -> server) | 585.90 MB/sec | 611.73 MB/sec | -0.04x | + +-----------------------------------------+----------------+----------------+-------------+ + | RETR (server -> client) | 1652.72 MB/sec | 1512.92 MB/sec | **+0.09** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (connect, login) | 0.19 secs | 20.39 secs | **+106x** | + +-----------------------------------------+----------------+----------------+-------------+ + | STOR (1 file with 300 idle clients) | 585.59 MB/sec | 610.23 MB/sec | -0.04x | + +-----------------------------------------+----------------+----------------+-------------+ + | RETR (1 file with 300 idle clients) | 1497.58 MB/sec | 1493.01 MB/sec | 0x | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (RETR 10M file) | 3.41 secs | 3.67 secs | **+0.07x** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (STOR 10M file) | 8.60 secs | 9.82 secs | **+0.07x** | + +-----------------------------------------+----------------+----------------+-------------+ + | 300 concurrent clients (QUIT) | 0.03 secs | 0.01 secs | +0.14x | + +-----------------------------------------+----------------+----------------+-------------+ + + For more benchmarks see `here `__. + + Quick start + =========== + + .. code-block:: python + + >>> from pyftpdlib.authorizers import DummyAuthorizer + >>> from pyftpdlib.handlers import FTPHandler + >>> from pyftpdlib.servers import FTPServer + >>> + >>> authorizer = DummyAuthorizer() + >>> authorizer.add_user("user", "12345", "/home/giampaolo", perm="elradfmwMT") + >>> authorizer.add_anonymous("/home/nobody") + >>> + >>> handler = FTPHandler + >>> handler.authorizer = authorizer + >>> + >>> server = FTPServer(("127.0.0.1", 21), handler) + >>> server.serve_forever() + [I 13-02-19 10:55:42] >>> starting FTP server on 127.0.0.1:21 <<< + [I 13-02-19 10:55:42] poller: + [I 13-02-19 10:55:42] masquerade (NAT) address: None + [I 13-02-19 10:55:42] passive ports: None + [I 13-02-19 10:55:42] use sendfile(2): True + [I 13-02-19 10:55:45] 127.0.0.1:34178-[] FTP session opened (connect) + [I 13-02-19 10:55:48] 127.0.0.1:34178-[user] USER 'user' logged in. + [I 13-02-19 10:56:27] 127.0.0.1:34179-[user] RETR /home/giampaolo/.vimrc completed=1 bytes=1700 seconds=0.001 + [I 13-02-19 10:56:39] 127.0.0.1:34179-[user] FTP session closed (disconnect). + + `other code samples `__ + + Donate + ====== + + A lot of time and effort went into making pyftpdlib as it is right now. + If you feel pyftpdlib is useful to you or your business and want to support its + future development please consider donating me + (`Giampaolo Rodola' `_) some money. + I only ask for a small donation, but of course I appreciate any amount. + + .. image:: https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif + :target: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZSSF7G42VA2XE + :alt: Donate via PayPal + + Don't want to donate money? Then maybe you could + `write me a recommendation on Linkedin `_. + In case you're using pyftpdlib into a software of yours + `mail me `_ and I'll add your + software to the + `adoptions list `__. + + Trademarks + ========== + + Some famous trademarks which adopted pyftpdlib (`complete list `__). + + .. image:: docs/images/chrome.jpg + :target: http://www.google.com/chrome + .. image:: docs/images/debian.png + :target: http://www.debian.org + .. image:: docs/images/fedora.png + :target: http://fedoraproject.org/ + .. image:: docs/images/freebsd.gif + :target: http://www.freebsd.org + .. image:: docs/images/openerp.jpg + :target: http://openerp.com + .. image:: docs/images/bazaar.jpg + :target: http://bazaar-vcs.org + .. image:: docs/images/bitsontherun.png + :target: http://www.bitsontherun.com + .. image:: docs/images/openvms.png + :target: http://www.openvms.org/ + .. image:: docs/images/smartfile.png + :target: https://www.smartfile.com/ + +Keywords: ftp,ftps,server,ftpd,daemon,python,ssl,sendfile,asynchronous,nonblocking,eventdriven,rfc959,rfc1123,rfc2228,rfc2428,rfc2640,rfc3659 +Platform: Platform Independent +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Topic :: Internet :: File Transfer Protocol (FTP) +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System :: Filesystems +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Provides-Extra: ssl diff --git a/python/pyftpdlib-1.5.6-py3.7.egg-info/SOURCES.txt b/python/pyftpdlib-1.5.6-py3.7.egg-info/SOURCES.txt new file mode 100644 index 0000000..3584d19 --- /dev/null +++ b/python/pyftpdlib-1.5.6-py3.7.egg-info/SOURCES.txt @@ -0,0 +1,67 @@ +.coveragerc +.git-pre-commit +.gitignore +CREDITS +HISTORY.rst +LICENSE +MANIFEST.in +Makefile +README.rst +make.bat +setup.cfg +setup.py +tox.ini +demo/anti_flood_ftpd.py +demo/basic_ftpd.py +demo/keycert.pem +demo/md5_ftpd.py +demo/multi_proc_ftp.py +demo/multi_thread_ftp.py +demo/throttled_ftpd.py +demo/tls_ftpd.py +demo/unix_daemon.py +demo/unix_ftpd.py +demo/winnt_ftpd.py +docs/Makefile +docs/README +docs/adoptions.rst +docs/api.rst +docs/benchmarks.rst +docs/conf.py +docs/faqs.rst +docs/index.rst +docs/install.rst +docs/make.bat +docs/rfc-compliance.rst +docs/tutorial.rst +docs/images/freebsd.gif +pyftpdlib/__init__.py +pyftpdlib/__main__.py +pyftpdlib/_compat.py +pyftpdlib/authorizers.py +pyftpdlib/filesystems.py +pyftpdlib/handlers.py +pyftpdlib/ioloop.py +pyftpdlib/log.py +pyftpdlib/prefork.py +pyftpdlib/servers.py +pyftpdlib.egg-info/PKG-INFO +pyftpdlib.egg-info/SOURCES.txt +pyftpdlib.egg-info/dependency_links.txt +pyftpdlib.egg-info/requires.txt +pyftpdlib.egg-info/top_level.txt +pyftpdlib/test/README +pyftpdlib/test/__init__.py +pyftpdlib/test/__main__.py +pyftpdlib/test/keycert.pem +pyftpdlib/test/runner.py +pyftpdlib/test/test_authorizers.py +pyftpdlib/test/test_filesystems.py +pyftpdlib/test/test_functional.py +pyftpdlib/test/test_functional_ssl.py +pyftpdlib/test/test_ioloop.py +pyftpdlib/test/test_misc.py +pyftpdlib/test/test_servers.py +scripts/ftpbench +scripts/generate_manifest.py +scripts/print_announce.py \ No newline at end of file diff --git a/python/pyftpdlib-1.5.6-py3.7.egg-info/dependency_links.txt b/python/pyftpdlib-1.5.6-py3.7.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/python/pyftpdlib-1.5.6-py3.7.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/python/pyftpdlib-1.5.6-py3.7.egg-info/installed-files.txt b/python/pyftpdlib-1.5.6-py3.7.egg-info/installed-files.txt new file mode 100644 index 0000000..5c51099 --- /dev/null +++ b/python/pyftpdlib-1.5.6-py3.7.egg-info/installed-files.txt @@ -0,0 +1,48 @@ +..\..\..\Scripts\ftpbench +..\pyftpdlib\__init__.py +..\pyftpdlib\__main__.py +..\pyftpdlib\__pycache__\__init__.cpython-37.pyc +..\pyftpdlib\__pycache__\__main__.cpython-37.pyc +..\pyftpdlib\__pycache__\_compat.cpython-37.pyc +..\pyftpdlib\__pycache__\authorizers.cpython-37.pyc +..\pyftpdlib\__pycache__\filesystems.cpython-37.pyc +..\pyftpdlib\__pycache__\handlers.cpython-37.pyc +..\pyftpdlib\__pycache__\ioloop.cpython-37.pyc +..\pyftpdlib\__pycache__\log.cpython-37.pyc +..\pyftpdlib\__pycache__\prefork.cpython-37.pyc +..\pyftpdlib\__pycache__\servers.cpython-37.pyc +..\pyftpdlib\_compat.py +..\pyftpdlib\authorizers.py +..\pyftpdlib\filesystems.py +..\pyftpdlib\handlers.py +..\pyftpdlib\ioloop.py +..\pyftpdlib\log.py +..\pyftpdlib\prefork.py +..\pyftpdlib\servers.py +..\pyftpdlib\test\README +..\pyftpdlib\test\__init__.py +..\pyftpdlib\test\__main__.py +..\pyftpdlib\test\__pycache__\__init__.cpython-37.pyc +..\pyftpdlib\test\__pycache__\__main__.cpython-37.pyc +..\pyftpdlib\test\__pycache__\runner.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_authorizers.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_filesystems.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_functional.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_functional_ssl.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_ioloop.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_misc.cpython-37.pyc +..\pyftpdlib\test\__pycache__\test_servers.cpython-37.pyc +..\pyftpdlib\test\keycert.pem +..\pyftpdlib\test\runner.py +..\pyftpdlib\test\test_authorizers.py +..\pyftpdlib\test\test_filesystems.py +..\pyftpdlib\test\test_functional.py +..\pyftpdlib\test\test_functional_ssl.py +..\pyftpdlib\test\test_ioloop.py +..\pyftpdlib\test\test_misc.py +..\pyftpdlib\test\test_servers.py +PKG-INFO +SOURCES.txt +dependency_links.txt +requires.txt +top_level.txt diff --git a/python/pyftpdlib-1.5.6-py3.7.egg-info/requires.txt b/python/pyftpdlib-1.5.6-py3.7.egg-info/requires.txt new file mode 100644 index 0000000..a49fed0 --- /dev/null +++ b/python/pyftpdlib-1.5.6-py3.7.egg-info/requires.txt @@ -0,0 +1,3 @@ + +[ssl] +PyOpenSSL diff --git a/python/pyftpdlib-1.5.6-py3.7.egg-info/top_level.txt b/python/pyftpdlib-1.5.6-py3.7.egg-info/top_level.txt new file mode 100644 index 0000000..74144e6 --- /dev/null +++ b/python/pyftpdlib-1.5.6-py3.7.egg-info/top_level.txt @@ -0,0 +1 @@ +pyftpdlib diff --git a/python/pyftpdlib/__init__.pyc b/python/pyftpdlib/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..159f032a515332cae74690ef13751881fc24c105 GIT binary patch literal 2848 zcmaJ@+in{-5S1IJ7ZrKyYk`3tDhaSwmL12jU>k88r!~+ThV7t*FW6E`N+P(@3 z`Ahl>eeCb#wSUpR^pJazqR3gp>-Fw%c+Sk38GifhS-pnq&tLz(|N6^X?H~6~d2Qg~ z6@JZExbfOejc?p+@K0_&;ZJU!@Xf1Q`zibHi(0Lo&4)JQu^ja2^38XhgS`V{W}Zf4 ztx`2H^yd14jL=h|gZjdlWRk@q5veuAXgG=EIqqp>rAlQwddvmh*SQ$VRB)1MxnV$b zLSrd3)6sZNYDiJcj1h*^#KzuuAYwIJY+AQtK?4^3CQ@GQ%VKGPLTPeeft&a1b;5O9 zaSXsUCu0H_TzOvi-iU}rk;uR&QfVqY6L5onE=|U4GzK0xPRJ@y9^*?a^amRh@4fpU za+}J3PK&h2v@i&r3zUPJBkE*YSrw_cBU39hY;Z52wF;Aqvn^PQGH~sHPFXZ2D-!`s zshBN+Cly5#Z3+(+Tbju@rbr8B%Qg5`Kt)oFWoaZF$()KqSonZD4cK&X1`x&|)sVzW zfGhqdh~QMbzP`xmFXf;zxj>SaZ3rnfqDsEYB=cUnS#H^ZyE5(OBYVTFAXLWQjwKT7 zR8`P2gm6cW1(E>8ab_7=%~CTInp6fcIxQP2Ll2)@MI7GCzy}dv6FXK~J_v1s*OMff zpHweOG%TgY!mL5S#+K1JOisV#jGR!S0t^IIU;w~G`W%>m&a87WF}|vdPV$zDL6Pk4?l#K~P+3l!4N7Uj>E1(!K?f84$W2AY)^!a*R#A48 z-WoO%B>rHo8Kc=9A0N|DtArK}ZxK}E+NaW%R#LHURav6tl0}DDXPq~v%74{roUONC zfS{w*?OW{?lYns^I+3;-?%vpwG6<#?#9yLU)86PIIpROBg z-LX`q^919pRk%piK=FBQ?DsDi1K$eQ;zRHrhs8e?$2kQkS^KF0jK$O-l~T1! zf2T)>hlh`N$W)Ap)u+Q;+RcSXBx0$u;M7?(j~`i{F!TEaZ4uq2b$)W)Cgcfo%=GD8 zrQ(rAMdKzXypLNV*PxVgS68i_cAu{GWUbe|`z6A=&wKkXJGb}6F~v7T*S*~Vqg4#@ zwGn-}#*35NJ-xj;y`-jlZc?m9Bi~em5BR<4@9eMoIOyEwJ}ytMFKI=r-C!yc9Ti>E zjm_oDwSpKEpC9#TFt@@S_4c>75fPB!<_IF%?ybSFd+;cRTqAizqFA}%(85us3`$Uc zc-jm0f)@|pd|%cRT`I0()}+Hxp#9^kQNm;#0NwFJb8K;X>UU9pc03ulmy1&DR%+^= zw>RH?7KU6!Vdx&9YCP1#Ft3_0yur(v7=+U%T_}r?_oC+1%LN_#Y+gkUjta literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/__main__.pyc b/python/pyftpdlib/__main__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..940501757216c6489a97a3e67127c012c0f22e6c GIT binary patch literal 3643 zcma)9NpBp-74Gio*_w+eidtw%R>_tuj-sI{If<4ywiZgZ09zs?#&$YP8qKL1vPZp) zs%l8FF+9=72+$#i9LbA;0Qm($4*3~D--4WU&C#cPuVx`*I7oU>+j~{@_E&H2Pfd9i zzQ6tXAO5iumi13sj6N5WyJ+f<=(y!u+~!Vf`?eV!-!Ws!FPYKxU0&jDTuv%}#kMdn z$JM0f*UY>U*Avh8%)A;;B$NK6nb+c}WZIuL^Ll(Nnek_A>obdceBxV+PY9=Te6Qrs z@<~4Rt>vE(bA0-RBmW>y>{&SDJhvLh^51#Sbtp9pnbKj(Sr})jU}2i2J4x14?9u89 zQ$lVD$=WhYnBEkul_d%7jU(EsSd`xJyi2URqc^jZH51I*y36Be-Fpk^ttW47^bNbH z1_3S#0-A0J-P-0oOph)1l4R#z52t063ki@1vY&%QY*y2)ENw>{L7Z)DMCk_bb>N>H zu3AK3^f{Q^MN?Mgyp4utPX52>pscLj9peqDpDwe#aj7w zIvHs3O8?1{vk>6>oBYli7h7us%YJlo?TcuAO+{KXyJ71^xFHl!LsPE>K@vu35G;0g zimA3yXfU92mNYVr&az$Gv#0F}nrG)%{;L@l|Kt1*d-1Fl1ac0fj08tI1gItJ=*Tw|8LDQxj)9DQXo8?<#)NAyEVp+pZFTIvrJYVm zyL$+m*QH$><||Xc@-naRDzCjR8w=U#Z&|H?)(A{q8i z@}H6O|Jq9DzOnQveY{`pSNP9QTYC;px%zbH48QrJf-~QN!u%UseaCP0onT(SvuEvA z0XqxaU-<1ecK5IR&Tb8mbAbE{<9Y1Gjp0n%atnYOe441!r;k6j+_1^OGvxm>0=eJZ>w4(No$?f9}OlM5?QihDaFw7!&9Aad^ z;SH(*s?||~sU|{)TcMPbh#yev=9Ol%n@L@ia3Xq)u=3rNr_WaNYa?=mWoa*2M<)Fd zVmGeexZY^Eg{ybELY~95@;r4z0^51D+1!>$MumrDE=8baPdv)+Y{)RxiWw9OTP>j! zgB}>Y9)eQ_@8Ll^6iSMaH?uU}A$clci{66)xgjM^isO+KEs)vqE03OjvHb8^erF^H zJ&9v9NuoAGDGmv=dQys1AMR;DKWRSIY^I@ZhMXe{t9+5Jd2(-+4FPl!7&WYSL#3iE zdU(?mT!2A^DOv&{N9KQ)CQxge!$0=zcC4H03U$2dvPP596zLZ;!)w0V^Z$-b~C>erCVVf zfm6BBOURLk26)5;u-G64NUA~_PT{25cUo|WrA71eJrT>0x0CHJSN#&^`E7_cW@e$; zYp@7K&QR8Chx{*GX|7x`$Pvfj%0(n5@)BshH3U(|=_nCdPdBa>HL%hRr4q&DQH4<0_O3?#k7MF}-b;hCcWgj7X!=qJGJsKO;rktNz$Hr^G0Vk$}%u0xXI2aSz?rP-<4YR&#Pw&oSC literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/_compat.pyc b/python/pyftpdlib/_compat.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c82593e1b3052b7ecc697b91fe81b06df04ad49c GIT binary patch literal 1074 zcmZ`&&u`N(6t3&MXk>7icU%v12^UL$q)d<1Z{rLMZ@DTdr78fIg;2BK) z9SlVYqL`8bC%Ez?A&iVXiZ>DU#w78XuU=E1*1n>oMgv+0A22+sCn0Mj5nD-`Y&B_# zyEHt{Xe zSv-?!4DaF@H^aDGn4uK$k&=`6QD?`&ZFlCK=nP7Nx@S-_lw%jeaNf;5nA!((ia;Um z{sLpMRxY_Re|PAU9%aY9CHnT`-W%TUX>QnqGRw!=fN9t|G9@kGeVSM2>y!(Nr!9v~ zz#yywus6sZK}GKF^c4Mo3;T&d0_mRA3#gEI@DP*)Ot{0gv2q%(RH+&)E$(lCyP$9_ zaD&28R}^l?0Ld3efV+TOp9=ne;7aZ074!|%+p1OxyIrJm_iv~3xX+!GM{3Mw9x|PvH}zR0FVVO=V)hY%pJX4_ey#g%pE|$~Iokb5=V;-7Im_aI literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/authorizers.pyc b/python/pyftpdlib/authorizers.pyc new file mode 100644 index 0000000000000000000000000000000000000000..db07a65a780003ccbd3be80f261f811098879878 GIT binary patch literal 28840 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 H>~a1t;rkD! literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/handlers.pyc b/python/pyftpdlib/handlers.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0bf140aa6b262f9af6dfc1c36d1924f254a07452 GIT binary patch literal 96068 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

?M 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 literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/log.pyc b/python/pyftpdlib/log.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bc5fbafa123839c664e7183459b27d09bdc785c GIT binary patch literal 3590 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 literal 0 HcmV?d00001 diff --git a/python/pyftpdlib/prefork.pyc b/python/pyftpdlib/prefork.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3cbee45efc3b34cd83efcfd9199ce80b011dc68 GIT binary patch literal 3065 zcmZ`*-EJGl6`olxmrH6zDVEU+ZE8%@1T_Vja2m8J3e~9VD2)o2Hbk{@7Yf)VXDF?> z+@)uSq9`nT5gDj^mq!pUd)YofA7pQP6Xy|n(|$8c+LDtju`}HHIdjf;zH{dMc6GHz z@a+8MpP$=ng#1T;EFTwteuFpt5)CIl;gnku^{MGC-!gs4FPYxaTOFO&V(#^`|oFi8N(n6-H_E6|^L+2F)uc;yeob(^nJ&__m`YK1T0E z$?>s}J-u%ERPpB#-gF<0f`tQDdRqR}Rpg4!Nt@V2SQ~Zf+DqboUVo^R47+0`ipkoaf@oa){|AvC&Na<{f5Crs#KqasXsS+<_@j@H z9*5ndG*sf=DCiA>W07L2uSPt=_(+O=A_vXUR8}Bi6L0!GG{kbLO)cuuI(5+3=q>bS z&1)xESf+_)oN$UioGNlk2NhZ80H0f&MAnQOKV0!t!=oc0_gn$ zdgZF>Rdo(B-6oe5>uYoJkj!Y|wv1e@WOPnJFvxC{Te%~Hm?uN2sq$(aP52eSZ+LkL zh~<@G!pD(FWgRop){WLzYS!eH@nWx5KQD#A-&WyJ#b%Ai8+_%e z-c#>Lq1SW@K|jS=j4T)5q&aN3DJ}Q_?Q9FSwg}ihe;e z!{hW_^wxmN_mp)>W~5+jM&=eJA^AJ`8|hOWe=ppbb^g98X8`OI^7-bhlv!EnlFsZ5 z5k08N&oaABo_}@-X|wYA*DuMJRPImLm2*{@lOt>9%yf+Z435w-{x3>qE+rSYGxxNr zs;9MqC9fu@Ul8m^=9syEb)S)iJDisUj{f)a)0f&Y&Kze#s+U#fRDKP8SGkkfnS-&q z9-G^g#J|MXn*M@qC1`TXtg9^6nHjTg-Pr5u@p*}o=ciejS3f4Ra#qghz{buUwa#mo z8ZRreVQ)378hcN(D(pQyBMg8u>jwhE*|u$m~01e<{Q22`V2eWT*iEltLr7D*VG8!*Lrs94aA z6FCf`sL=8*9}A`u7O*rtj)O=$F;3!p7eXe?Y)Dn0#%Y7WK4^n4iPXy`p*qn36d(pe z;K144@kq@(KkjlL_t?;DxcC7^yIcn?^{>q{@psMtQyD z15G+{&k*UgUwS&9>PP1*oufAJrcE@(tvaI_ase{K9i5vf$w*MjkdiaV0fUF2L_A7j#C?sl}dJ0UV`PQ$!}jEg(oHGBbpMXohzcE#x0F*7Z#htB2%w~}i) zmQ8KkQWrnD$*bm0l=OlqebBtN_u|8XjIj7FPJ`tQHUNt7HZWVz;{(3EWC75*_~@Hk zG-;Lufpl;Ol5TAJ@po=oQqxoj7w;V;395#8x^VrHQrirHu6;8eH8$iAU@Y$a6fvgV zXzqP;2g|aavBS8Z11p<&`JxqC_YQDdWU1@9wn@_JMOU%2y8eK5g&) zuJ!Qo?k9O=637^*pRD8Op}%duYPf|RR4nV5wdgIYj@HFkvBNFP`;dk+b-B}c zC$DrmJn3~h@_l?8Af>id-bRzV-7pT)UKkejgQLe*P^l$S6(Cno!3{@&GDSvSLZxcF xW1LqwOVviUQ3``+fhJnO)Md z+n`JA?3p=d&gDP<<@^8t@an`w&A{j4@BP(#KU*=3f96g0si1Hf-{?)#Fg&ASc&2By z&4wwzR>P8CyJ5?3p;3_EVxuU(rAA49%Z;-9RvH!0_6qIlcCAq}4U~&0k2S`mTxySR zPc$Z^Tt<1aF)8H=%2SOgDOXXRZcIzLhVo2fM#^I-&o*YIJl;OEJ=d5+dBU4qw;G4N zDZjWmzg21+`Ig~LdlT=Y#;-lL8%J?J#8{0qHOKH<9cqF zU4iN(&MJG6Idj)BLChprV^yu!@qE?Z;e6MEwjb?a3ftTdb{w>NZ5Opp)D9n<0qOh; zwc17;ccTmE&aDUWMsIZydyS&I-F3ruc&@v%7I(dNuzD_tqMjd}d+8gm{)TUyf9ZU! zw(=m<+y~0L$|v3K2cGX?eCMpQA`E~z=d8-7Zwb9Mj|?kni;Ih3&j-ROuG8@!r28?l z9gYuf2cresAQQ$7{7#&4FL!Ds6AitSjxY~4O-Oo{)CJ!{5b&tSa@YaQ$nmX~-;FtD zZA2CpYu87Ina*TQ`4~0S5>|TvCJ1}6NRocd zhrXbkVFyxKTdaLdt-kazG`UeXlgbq#OQ=vT-MoDZvq5PRgRKSY&33p>F~gIh=dboy zI2=UT^G#~k1 z{-|NEMqZ1v%|1|<+79(m@D11>gSH2D$AZnVVQ-%GN?!SW6Bei9Ro^#YacbTeek*>} z8>h~HY&L4%q&J0UW3U1<_#KDRJmk&ctqJcr?}&F4rAhCYcN}$7-U;s{ey6=>yi@p{ z@e0t~&#Q4v!2K7?Fs?!S#gq#tf|B#&R5g?QP|g=!&x0a~E}hAlCfgY0--AfTQO&_e z6!OJ%-!C}}@lH2r3Cn;QZ)!!YMX(MD;2UrFUBBa{!%(f@72gThplxJCC+hmGU@d?E z+`M!DWy%+RUm0O;J@Nu7R-u|P!Mw*c6>f{F8qr5u7u9pl)6(R7>2$6@GL+x;@4FDz z2rGu2f!tubw_VyCDzPXI!6~9h#gw^mtb)}Zs3$A({HTR{v{?0_;nI$wN){kNby&lP zd-Z_E=?%Vj7ZT45W+_q}{7+`l%&mzEQ@$^{qTHQCnt zVc%iD>wfLE;j%Fo(kL*%>53X->0=MqRuLC|O8ByT4c{onB{nwAfiVCO{J=7e zfi*Ci)}Vl^y>8%Ih>HWuvmRUO{J`2P5kAG`xH2#a2p`*zP4(`;+$|1@dsVOa#6%Cq zUTq+yP7UR;ftfxX9~4*;aV)vv|0;>6Q@J=jDu_7=M(HN9csiBE(-|9*3}D5$2Mkfq zNZ1TjQ;Yotk(UKRu`>>_SRFPy0CRRUV#`NDH{1)d5RDXpOa~Z16uL%rvR_YyZJ`?N z2JGrT6dVYN)4C^I-2}utFlE3=h(rssPS>R8n%<2y9%|vx5yikKZ2-wILjIOc^(2H8kPg7?Bl6n(bZlpaV zQdB9hi3;vR7eCnWJEMJ&;4%uucdZ9iC0n48#WswtatTYXU%S1ubocu5^%c$avIuHg ztuZ)n{xT3~qk?ig)2%&%gg}cL$)N^VL`1y%ns! z8$lPI?P5RObw5H?iZ9>QI6hkJ?x`lNwwJoOoV=H?%+0pIzS)&L!+al z_4zPt!|%87jcCuIUkqv_PY;I;uD04?li0s_b;u0Z!>cq6CkGU5=xrEQuFT;ek=stO!J76 zT3q^=GpSoiNwY{Y1}0*$13U0JWGtt{{Qz(3h1mU>AraHsee2*LvJR3k=1R;>>#-?2 zR<{$o?RSL5lA4|d`TTQ6uduF(7v9f@-_I#&_0z{ciI+&nsODjGY$oW*`z_pwziszl zzw5_6)p1r-4-TF9Tq8844iMM-snP_ok3FNF~NJP~!;^!=7x~a`?6Ap#Imfz=+ zXf6$_WEQOc@gY?YHoegj7D7{+*4(`QJ-CLkhxd(LD>fb*aJ|iesgA~0$BJ#w{=lTU z+$?Ms)eR3OmnE-wEPdvcju~s#ys>L{3LdU_^R8F!SYBnf;8o+&R!PNi8E;kMD$H{{ zD0sD3jom`$qBkbBKTT_EsQoEw$EEgE`g9CW{~S*zP&i`HSj*kC z%xv-r;DOxF4D7T#<;@Z>Y)(Hm^CySoNnvv)eKxxZq%M(|lX!c|J1o7;j%Wj?2* z{=`WAvuXX`NxdWWCs{9Q=DDSP%shq-U&c53E-pK>XpAjC!YzbQ9YIyWi0!SKx}(EP zJ0xb-VzmC-x;_RQP!!)`K+1YY4{0qW=3>2=)S68lb%I5L`jpTLicn@$5GYMv$pHFw zr9ze1QB3d72Ff_70c*5?Yxnr#hn)T-E{18Dv*skO)428*Mi?Gwpb5C3;>C*y4Y}>; z(&DfK8rH7z*Mf)r(hJeqOD{xXMnC>at74-FeQtXBi7I+At3mT~7(IZ$mUzhjB za-4=24?)|E>L9jgRCB+ifBZnb11G_OlfXHRF@^${LvCuTM4Eaw^Lz=LfWQV&g}>d6 zIb)SnTE2=omHzbd@+~L3le+Sjzav#stV(ZKQ-4O4u@8!hN->74s=N?eG$vB2Gzp2L zq}-$}1#8t9kkZjSwaC`oN%bl(G$V=u=cGXYu`xR&do#5^ih5LxN~1QUYhr~_QXmU9 z#zEF*MppG(>})F2+Nl?nlvCm~N}4bn=piE;L8qA!MG?cO3%q<2mwHiyfO5)&>Z^Fz zK-4d~pDwT{5xvhy2fNh_{}a3sy@`uqR;s1KtW`0`%~`8}D@#O4yyA-*Vkeeo%{g4B z<+p^V^C)M3{kf;f)rz7C$=x*W4>v{Z^siAE*kNg4!O=pbe#=&u>9%>+mZdHatmwFA>Y2xY5B6$LjJ3kN*n@$s{!NtJ*xvZS99Yzfh^9XeB{vaIu31oYf0HUQ_BTcw zq7~V|QvZoL{F96`j+sn7N&9|ci_x7 z;{q|s4X8t3qJnT9TL6IY5;0Z>UXEZFl!sk7`NR-a;EXzOKb#2Bf2I@QR6*SIGdM4p zPk`uc6owrHo<=)az_@N_CyzXEhWYHYHWGw;L0l^hpIT{>;XD4$YUnEOCgHd0A;O9o zk9NK+QS9pg$d~~`u#$pUSofigFufg2QsT5oE-c^t*2?v}Z#m~!y1BG6+D#O!BZwM7 z>w+Nb%5C}d~Ks_Kq5~MU~k}Ad;2)H(6)2zfVLf#*fL5yip!e=Vt7q z5S(jaBpqCXtFZ)jVfgUkYY2*sRDt7q5xrCN3Sy7W#l7za;GjBw~M_FqOE-s$XsL{`w9^} z2z5Z#MU1esjybROI+6_2BC_BwLJN%S#s)b0EaLoI61bFvi*)hERYnq!p1{IrdK^D) zEv8Yj^!2OA&~)2D%pH~)l7BD(7pVy5@$$_W@&(s{Opv=XItB2aLRPQ^NQ9>24$0cHdutQ$$nK7-vuf%Z$TT*zT8Msa^zlXxJ$9U%YhbQZ5NVE14q(!oCn) zcp-u_8+fn15I7evUK9Y>KZeMwkM0>l&UB5|3jJ54vyGl6x<^QdG14y2NbeFRS%~VR z{VvsK)a#h2x{OOw`>xyW`GR%Tbv`8;SM$6`poE}AUE<}-xFjV&R!mVlw*_kaWacx< zFsTjIpZJT)!MpXc4q{woKb4G}NecW#)i$ON5+AN~xDMb*avnq&6A~F{QoDe~{ubRv z=W#Kfso1j!x>x`bgcvmdjfy>oJIChJS^P05!#~3Gn$UP_VQ! zHp@y$D|nGl(A#EttAHo=UX?bTZFa_S2OJ@2;Uv()7?8rxG*Up#IBS3tO78&YEE7@O zP22p3ZWB-JO~zAuzz8x6%zmq?eu+0{_-5ynprWe!l!5C_8=mo}GM`yJ>(rIPJnDu1 zOV_~q;7EoXVRE)ZWC7EZC4+rInj3=NO_T47OArnTxiJV-KQxTNHL7VV-&2QCmz1E| z;2NkGanqPe&2R=|)fF}=w!&T~ZpJ)@naw!MLtw*==w-ZTfD1ME zF%km6Tdn~1778VBBYrIloH}Vv5&%~w@uX(Wn*C!#zD!q;^}El3&N=fHjI&evVTLCS za7cPKBR2OCFWD>T-B0nPaH8g}y4A0zy9(2z2ZP?*0onsn;R%5ujKOY})G~$=N~+&s ziLSePn-_*bpB^7lIALR)Cqd-U4VFw?KWFymKeJ5PoPBE~v=`~)yWmWTbTQu6UtR`; z$xyB6Y9OYN8IP2;U@HI!HBN{Ly)<8rWU@5#jz9uLK80PsU@;Enae<5B%#6Zl*mWd; zx}+EtsGB$Hg{2kkpwws8IXqKmaY@FT&3iB;Y48EAq8GNBP4V7@*(I{9o@M*z*}eiz z2xm9m5p}GUD@8@??%OPVpBIu^wC)IlGQzDGI2L#FG71szDu)W>O{?}?#je=nMO@3Z zmkqOasq#{#(n5>;Lv?r=--t2a&!nO)q@rykp=~6fpYe)b2`S}@SN1AMAy+-PMEFHw z+8f937!N4ncifxurtv$W4IbUHLJ!zuw5) zx#S}{n8K1@MjRoQoX9<0*sX>69|~bzyZzJ1?-a-8Z~-4O*uJ|Od~`DK)Qi+3t+;1x1CHjvq$QaQ)9YAQ4W2qP9aL@o!=oGW*#rl9hoV9r zmCQp7vqpzos9-JipWQ|{ij)twf!dL4PER6bF%yKy4q=~e4r>Lq)NKtbo#nTIwuaD&+x%A=C^%ox12i3n&KZa_%zsy~TmKSI)|B3#e(rlz7%}8+Q>+P16Y*n_|YR{(Y@ko&HARJdmbE_n7hMtBT`(au}+z`C4&py2a9o`zz!Tr-I z|B6c?Lo5I>r^9yvIy!(FaE_Pi6-{Zus-&V&KPe&t1-o9s*&VkH(LwN+FUy?N9W+Z> zC$W*QNX+;kvvbeZxiJ(>1D2ZR3bq=S8ur_owE8FZ^Upqc%kvrBC}uXV;Tur|n8*0Y z{P5qo2?Mif0@-2Xh{Ax{E&;VM*xfLZuP}|i12kEPk<~z)>dhEuN)g;<935vVY3Du5 zvv%!Ab{6a&Ses?wO>47)-(p-H@T95r*xoG-O1tHc%!e`RYSB-m#TX*^M0vxE4m6)>u@=oMR8)GwwY?i^Djh%KBfXtNye2$mUV6Bsq^?;9y1hnBi6Q z-NPTo$2gC@<4?fkVCMF2WoJG zm1D*e&{CIQBlU5nHGW2B@|U{3MoRknk$GFY^p&b~fR3l%0vAlkY+f_8qMoIVQN+U!=}wYFIauk>l`w{J~uVD3y&}ngr4b|GR!QFsb|3H>qGpk zJ-VrIHR+J1$i!YVnQDa#TR?&n>FhzF33pVxpm7bT#%8!1F5?(QmqPsEto*{Y)NUda zl95^qrt=F+Nr9&&kPwJmn`J|xyuF~%p#a!!91#!BfA=HLIl)KJbh|{JTtdi|+vm{7(2!}cPFSvOOdl*#m z_M}B64}$XyhgGrqC-;&4i@Y%!XVLYY%jWFX;kN+&;rr8xuq5I5K)@szMlw(24SGKUNZA`$9&7=E!il8az;Vwj6K z3N2WSOOlJYHL3@Zfp~;>*CYc0#v*Gxp$3%^#_=-#0Q~2aW+Jei=byE5z#0k zMe&`Rw{9in+smR#6&KhjUSGa@?ad5{i-_&AoBgy-rkeRwMD>3{y3?f~-I+6oiYv}h zX_^P*?ZAsUwj#~R^FnJzKPYd&NE!GAu7U*EqUMCo>O5K$J?w!z2f|97u>On&mLnAE ze~G{rq+*N<=?>Ub!I5d+1M8)+?xm4^zK_V@TwNw#hsa9qx zZ&v1DVh&ZNDrLpi94-IYC|$-kB78X*Zt=?`)gwZ3 zlG2L&&rPOfp2JIOjh7+ih3FjY6j=sen$KtSdn5m2u{aVASgKDxl{1L_)K76q3b)`z z3V#69-UrUrY(lJ%6oY6PpoXi`AZ0k0As0-bcA66+AOIHt5kjs7SV+!Ej)1gKmw!0( z%lJkMxQuSRU)U>RvrG6bW2R*-dBIji>QJ>VM+9X zsDh{MD^Kp6;n>vw*jMhV1qbXszDm2O(`-DOtNsWVxGeBT$WyAvi^R;QSfUVU59=+K zXwmd>pE67AULP-_VUQ%F&eC1PEh55gH)iTW{UK||d7&oJr;9GLG+f#;Z#nM~p~)FF wsa(`&<1Rgq7SUB)n5o$J2UvXI&jw5`PyfL9fx+vo=~;R=)X~!xd>iY30Q?4bO#lD@ literal 0 HcmV?d00001 diff --git a/python/requests-2.26.0.dist-info/INSTALLER b/python/requests-2.26.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/python/requests-2.26.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/python/requests-2.26.0.dist-info/LICENSE b/python/requests-2.26.0.dist-info/LICENSE new file mode 100644 index 0000000..67db858 --- /dev/null +++ b/python/requests-2.26.0.dist-info/LICENSE @@ -0,0 +1,175 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/python/requests-2.26.0.dist-info/METADATA b/python/requests-2.26.0.dist-info/METADATA new file mode 100644 index 0000000..ca8fd13 --- /dev/null +++ b/python/requests-2.26.0.dist-info/METADATA @@ -0,0 +1,120 @@ +Metadata-Version: 2.1 +Name: requests +Version: 2.26.0 +Summary: Python HTTP for Humans. +Home-page: https://requests.readthedocs.io +Author: Kenneth Reitz +Author-email: me@kennethreitz.org +License: Apache 2.0 +Project-URL: Documentation, https://requests.readthedocs.io +Project-URL: Source, https://github.com/psf/requests +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Natural Language :: English +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.* +Description-Content-Type: text/markdown +Requires-Dist: urllib3 (<1.27,>=1.21.1) +Requires-Dist: certifi (>=2017.4.17) +Requires-Dist: chardet (<5,>=3.0.2) ; python_version < "3" +Requires-Dist: idna (<3,>=2.5) ; python_version < "3" +Requires-Dist: charset-normalizer (~=2.0.0) ; python_version >= "3" +Requires-Dist: idna (<4,>=2.5) ; python_version >= "3" +Provides-Extra: security +Provides-Extra: socks +Requires-Dist: PySocks (!=1.5.7,>=1.5.6) ; extra == 'socks' +Requires-Dist: win-inet-pton ; (sys_platform == "win32" and python_version == "2.7") and extra == 'socks' +Provides-Extra: use_chardet_on_py3 +Requires-Dist: chardet (<5,>=3.0.2) ; extra == 'use_chardet_on_py3' + +# Requests + +**Requests** is a simple, yet elegant, HTTP library. + +```python +>>> import requests +>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) +>>> r.status_code +200 +>>> r.headers['content-type'] +'application/json; charset=utf8' +>>> r.encoding +'utf-8' +>>> r.text +'{"type":"User"...' +>>> r.json() +{'disk_usage': 368627, 'private_gists': 484, ...} +``` + +Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data — but nowadays, just use the `json` method! + +Requests is one of the most downloaded Python package today, pulling in around `14M downloads / week`— according to GitHub, Requests is currently [depended upon](https://github.com/psf/requests/network/dependents?package_id=UGFja2FnZS01NzA4OTExNg%3D%3D) by `500,000+` repositories. You may certainly put your trust in this code. + +[![Downloads](https://pepy.tech/badge/requests/month)](https://pepy.tech/project/requests/month) +[![Supported Versions](https://img.shields.io/pypi/pyversions/requests.svg)](https://pypi.org/project/requests) +[![Contributors](https://img.shields.io/github/contributors/psf/requests.svg)](https://github.com/psf/requests/graphs/contributors) + +## Installing Requests and Supported Versions + +Requests is available on PyPI: + +```console +$ python -m pip install requests +``` + +Requests officially supports Python 2.7 & 3.6+. + +## Supported Features & Best–Practices + +Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today. + +- Keep-Alive & Connection Pooling +- International Domains and URLs +- Sessions with Cookie Persistence +- Browser-style TLS/SSL Verification +- Basic & Digest Authentication +- Familiar `dict`–like Cookies +- Automatic Content Decompression and Decoding +- Multi-part File Uploads +- SOCKS Proxy Support +- Connection Timeouts +- Streaming Downloads +- Automatic honoring of `.netrc` +- Chunked HTTP Requests + +## API Reference and User Guide available on [Read the Docs](https://requests.readthedocs.io) + +[![Read the Docs](https://raw.githubusercontent.com/psf/requests/master/ext/ss.png)](https://requests.readthedocs.io) + +## Cloning the repository + +When cloning the Requests repository, you may need to add the `-c +fetch.fsck.badTimezone=ignore` flag to avoid an error about a bad commit (see +[this issue](https://github.com/psf/requests/issues/2690) for more background): + +```shell +git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git +``` + +You can also apply this setting to your global Git config: + +```shell +git config --global fetch.fsck.badTimezone ignore +``` + +--- + +[![Kenneth Reitz](https://raw.githubusercontent.com/psf/requests/master/ext/kr.png)](https://kennethreitz.org) [![Python Software Foundation](https://raw.githubusercontent.com/psf/requests/master/ext/psf.png)](https://www.python.org/psf) + + diff --git a/python/requests-2.26.0.dist-info/RECORD b/python/requests-2.26.0.dist-info/RECORD new file mode 100644 index 0000000..bd19ebf --- /dev/null +++ b/python/requests-2.26.0.dist-info/RECORD @@ -0,0 +1,43 @@ +requests-2.26.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +requests-2.26.0.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142 +requests-2.26.0.dist-info/METADATA,sha256=hWaDQ1HOaMvAc-KaJFZgv1-fov-CKxGSwEIsZGhiBB8,4753 +requests-2.26.0.dist-info/RECORD,, +requests-2.26.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +requests-2.26.0.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110 +requests-2.26.0.dist-info/top_level.txt,sha256=fMSVmHfb5rbGOo6xv-O_tUX6j-WyixssE-SnwcDRxNQ,9 +requests/__init__.py,sha256=h2SCZm8MM-UeAS48UuY7Lz97fEqsma6g6oVsKUi0eyw,4907 +requests/__pycache__/__init__.cpython-37.pyc,, +requests/__pycache__/__version__.cpython-37.pyc,, +requests/__pycache__/_internal_utils.cpython-37.pyc,, +requests/__pycache__/adapters.cpython-37.pyc,, +requests/__pycache__/api.cpython-37.pyc,, +requests/__pycache__/auth.cpython-37.pyc,, +requests/__pycache__/certs.cpython-37.pyc,, +requests/__pycache__/compat.cpython-37.pyc,, +requests/__pycache__/cookies.cpython-37.pyc,, +requests/__pycache__/exceptions.cpython-37.pyc,, +requests/__pycache__/help.cpython-37.pyc,, +requests/__pycache__/hooks.cpython-37.pyc,, +requests/__pycache__/models.cpython-37.pyc,, +requests/__pycache__/packages.cpython-37.pyc,, +requests/__pycache__/sessions.cpython-37.pyc,, +requests/__pycache__/status_codes.cpython-37.pyc,, +requests/__pycache__/structures.cpython-37.pyc,, +requests/__pycache__/utils.cpython-37.pyc,, +requests/__version__.py,sha256=PZEyPTSIN_jRIAIB51wV7pw81m3qAw0InSR7OrKZUnE,441 +requests/_internal_utils.py,sha256=Zx3PnEUccyfsB-ie11nZVAW8qClJy0gx1qNME7rgT18,1096 +requests/adapters.py,sha256=WelSM1BCQXdbjEuDsBxqKDADeY8BHmxlrwbNnLN2rr4,21344 +requests/api.py,sha256=hjuoP79IAEmX6Dysrw8t032cLfwLHxbI_wM4gC5G9t0,6402 +requests/auth.py,sha256=OMoJIVKyRLy9THr91y8rxysZuclwPB-K1Xg1zBomUhQ,10207 +requests/certs.py,sha256=dOB5rV2DZ13dEhq9BUa_4hd5kAqg59e_zUZB00faYz8,453 +requests/compat.py,sha256=0fzHbLvfnFi2WR0o7XkrvXlElG0_VgQmmOgiooaXh_Y,1852 +requests/cookies.py,sha256=Y-bKX6TvW3FnYlE6Au0SXtVVWcaNdFvuAwQxw-G0iTI,18430 +requests/exceptions.py,sha256=AiGbnc4Z7wjlpETMcTwmsmYvZVep8Qmsd46_yp0h0mY,3238 +requests/help.py,sha256=ywPNssPohrch_Q_q4_JLJM1z2bP0TirHkA9QnoOF0sY,3968 +requests/hooks.py,sha256=QReGyy0bRcr5rkwCuObNakbYsc7EkiKeBwG4qHekr2Q,757 +requests/models.py,sha256=BtTPURThE_VpZZmUfDguGhZj5qUmqmY9rk9pIU3w3X4,34859 +requests/packages.py,sha256=kr9J9dYZr9Ef4JmwHbCEUgwViwcCyOUPgfXZvIL84Os,932 +requests/sessions.py,sha256=57O4ud9yRL6eLYh-dtFbqC1kO4d_EwZcCgYXEkujlfs,30168 +requests/status_codes.py,sha256=gT79Pbs_cQjBgp-fvrUgg1dn2DQO32bDj4TInjnMPSc,4188 +requests/structures.py,sha256=msAtr9mq1JxHd-JRyiILfdFlpbJwvvFuP3rfUQT_QxE,3005 +requests/utils.py,sha256=Ws5IP5Z7KdFkWNlMkk8L6M3iXaDwBt6CLwgWq8yXSF4,31382 diff --git a/python/requests-2.26.0.dist-info/REQUESTED b/python/requests-2.26.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/python/requests-2.26.0.dist-info/WHEEL b/python/requests-2.26.0.dist-info/WHEEL new file mode 100644 index 0000000..01b8fc7 --- /dev/null +++ b/python/requests-2.26.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.36.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/python/requests-2.26.0.dist-info/top_level.txt b/python/requests-2.26.0.dist-info/top_level.txt new file mode 100644 index 0000000..f229360 --- /dev/null +++ b/python/requests-2.26.0.dist-info/top_level.txt @@ -0,0 +1 @@ +requests diff --git a/python/requests/__init__.pyc b/python/requests/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96b5d4ed1600568f7084057eb019817facb5b5cc GIT binary patch literal 3829 zcmbVOOLH5!5uOKM8c}cAmi&a}wI$jz_3&G^WlOgF$a=LdNm=irR2h#5NE&l6!vLUV zdZ|4`$uU*?6QpDQNDeura-1A<@+CiDPwAc+(%NzksSJw^pwVb_qq{#~xv$SL;QMFu zC-2&bVf+gRoeyUo!(WA#VK9Rl%w$$zQZs2SYB8JT0$b#0&NNzsz|9AFQJ_WBcw>ZP zIfIw#j(lMn_+u6={$PaG_Z`U|kaT_}DZ7$RD#;40_(y~GvJ&fow%i)#z1)0P;0`Yy z*vZ;i*rkv6Z(Fd_U(@y6Ivilm;b2Gd$mY2t%QUjx-?qw${X=xf~<=fwqjK@dvBMS3ye4+DRK zPKZnNQZgP1z7m(|<)l9f{VViJ(mxSQiYYoJDzqZ5(yIyYWN=MP(`j*?UKdqb6*F{3 z%+gsgN9V*mofkLgjYRHLa8ul(x5RCFI~k7!cf?(KH|dW<%z+EauBHU555_uq>X?C*b??;ZweHWF9`_PY#SDI5Td&JI&7U zN9-&+_h*PIv(}BudG8lUI%kdlzR8tVh4~ZX=*Dbvph0|m^l4Q3jKy-`y;f|_0%bxOU zO=M@?aXaW zrj`-3pEP8&BRwI&G7@;AEG-mI0HJEr@e>SHeC-J z(hv2NtZM#2C(IwwPC~%Ov@-$cE+!U8#wTO~O#{Y6YTU$hDwj^ocPHj2QvQB6pDEmT zoQ+*hBE8FH8gs!Rz6{P#a-y0Ij2vg=I#HaHx1A7Hy@vm`N}e@?fUv066mX!P_M_0j z)7RudCz9O-l6wp`0by13qs6M@EYzY#OZq#zdVx&UDiF)LJ7lXxzUE;FHjp*$>yK4u zA@FNFRD6LfHM|$V!x z<{wOLwT%Ol*>y`+K?V>VYqD)@+WYo?Za=ScZTr9knoDT@z_bm^Naxx%%hxUS7WK4q ztWeLZAnO=|A+40U+V@vS6R7k0MajX^_O&>^&P-Y%m6&U{cq1J*l{M zL#P`s@IL|ziXFL-E`SJtC_%tkr4Z*;Bk*xW)fw>dgP@Zwm z%7+?npaiTMXvzR^@HuhJvr}F(uIq=sc3ptYcm%4XRtJm}pw8d&!Kv0gP^i8F zVwjHEZ2c6cKh9tt&hlGcs zIIs?&FyJ{bnlp3`o)Xj9a{xmBeNr&^)Y-A?hFoL$!+aYqu6YP2=0yD7Mc2Sze0r9A~mn60Iz~*k41Z7wbB#k z0$=Ia7G6URp~gNSvGW}wcpBFNBB`h2(q0M%D$Zd~CaGw}qsKSu#;ceKClN{s=5IXW zW`};vx;HSP`hggh1t;5Y7OZ|aeR&x;AKzqYle%y$BhjUqFEb{UV-Z*3qz0EEPl$I6 zptBRY7#CkGt-I^1FP{Op^)y-$q^(i`42HgdzqsJW;GDo@PvqSyKv9M zIlN-!7?>N|ji!zZj0arvxELiqDKMs}xI)yAi|c6zt-xo6g4`L*)OYJVE^hdON1&?r zw`;F()(0cv!Hp>T#tU0(oWZ!JRosJ5tu(&|oF}4? zl!Q_u{Kma6lh;{lb1}m%ISNw=3?$hqF^lB|Bojyokl2Q_ii>dQp4O6fU@&=JNq9F- zqRfaNzJntGaMBSb5dtMGAFnKV3FPQ-Hdj4n`xGiDD|kExeA^E+m+~sGPWIk%DALADLg7vms$$cc4I`RRMhe#HI z#HB1_lzfD|$H*%mdygu)g#2YBh?Vjwk`*M+kUU570?A7xzX1{#gJ@?59wPE<9QD9q zz5)h>8;T?J1eT-YF_tC4G0?#aLMF&ldH}vP1HM=Rmiir#oK-SQW*I wvSkj#uLLku&ReDh@Q)Jx(3ap*D8q^Zw$>N`)?jiyjG9xxEt}It)H!Vb2M?4Xvj6}9 literal 0 HcmV?d00001 diff --git a/python/requests/__version__.pyc b/python/requests/__version__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a0a46a8dc99968de45e09534e7f2bf5c2388b87a GIT binary patch literal 504 zcmZ8eO>5jR5S2Ik;dQz+w1-{-)u|9@y~c%>h7i)^5=aOk-IFi~uV=az>$M$84y+IT z2mJ?yUYlF4`77I7^9Op)DdQwAZAa+w-jhbmjP^$(k5T-rzQorKV>gXxgEZTtZC(=q z6AT>TKu2_7O{_szbfG7D&=-9ehyl35g`pUN_la$-uUw7i6&h>m7pF^`7CAqhOiuad zLi59F5$DFQU#8ZUW_vttulgEeuqi^37+)22KlHy+sGHGig>5`1+ba2UZQ`SA)et_)=@FFVjhxhhUi3<+h)7%#&+-0 zt04!-gTRpsC*FcLXpWqC1x{4CXAq<$d&<@2`uV={d~|Y>Gn7BNXY#X*u|Mf>loXW@ zarqT)ifx$UDyeysY?3D3q)oQTI8(P&rY6t%W}>EQ_MB~|YJSF+`OUAngKsN-OY!KI_nn^Ujn(TjNEjWDwGUDDl)apu{m&-HTl>zC7f} zuPa?vLO}~g32Ov=7aTNzUgvO4r&xffpl-o=@tW_@U3!e$v@$I7zc@CzOoyrVMcdyU zUfOlK4%!qxxFMx&B7LcKnV=sDp+oCFu82@zdlvYQi96l1?-TP%NSxTSpVB@5nd3P} zJsb6Xf(Y@O-#^t?V1yJHU7HJGci%u6UKb87q*FC`FYLJpeG6m@okKh%YOMngCP+dE zJ#v8(aXQ4&29F>NI$Xgq_!tIEX%*#?h?0WC;kp6`F^qu{(@NK`#FI*6I!~Z`aqsN@ z!-t|Xv8Z5cgcwt}YwckbFD@rTuDv!sNK=9%U>qSeOk+wIrZF23!eg1k{8-G8+AjRU z+->y#`+c?ED!AIVeW4) z=^6W)sSFvN-2C=2;G8wufY9d%mqvj9WxyI7MjYcH5vBv8WhI>~@s3~R5yy3lhK5KJ z-Jyf^i-Cd_Wd-HsN_^4zAa-zch!JQSh+SiYcpO0#cg0f-_;h4y?PwI%VrOj~FSrS| z{N$5I%ZZz!=J0QT4U2o;gQE$1;GA`CM#ei|jU7FpDT4T6$%px|&`998osj$K0e}LZ zRD3(HqIKkAw%`fRdBzvq-9hW4C68q+XTz*0lr4*5n2t{~j?p+!R9U1h-uX{D;@8ET W^YI^3uLEKwt7S1^SQz1q}45=tB?`X}|A3 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 KIkhK%v;P1$pwHX@ literal 0 HcmV?d00001 diff --git a/python/requests/cookies.pyc b/python/requests/cookies.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df2c3910c7cb051289eafd7df2d79afd50c940d9 GIT binary patch literal 18736 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 nOeXRSgY*I6M8j8hNO;iISvAHiv7I)YOT+aBR? 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 literal 0 HcmV?d00001 diff --git a/python/requests/exceptions.pyc b/python/requests/exceptions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e73d93e2e391d3a6528db53e829f3de4d1b41bfe GIT binary patch literal 5612 zcmb`LU2ogS6^5w~OR{3wik;Yr<0P}rr_-#GCI#B2MQc0BHd!Ru!1lIXl5@C18tU%ur_o4606?qv~xB|Djse-Yd;z9HI@7-mO9cM`L-vAkrxKK`R+eI&E`(u(`*om*q5vq1`+oH z&7!_!T1G59U|ZRRZm|zn>NNjJ(Xm!arl0NXynd=wsCs0{Kb34pGwevGTSDBFMX6i) z#yLRrh|1TEZuJ|d>U5{TTTR;8U7qH!n+p>kR|b=;D% zR7CmPGF15#dq>l1^VE4$)|(O9h|2r2(WN)0MO2NZPM!DVH?>oo`=?UL5oPMzc=LJS zMIQIPvCN%0=_WhzqCVTpAotK!K}rwtxa1xS_ut4Ko?+6+ZLgAg)_AR+REFVDQ8yHg z(WKtznn#gJrgS`%O3_0|8m{Z%{;mrzSGDvHk}6k+I;kC<(7!pIo}=sbe6F?Y{>}N< z&%~o$A&+;5qo^MS4}ZG*!rR}~UL-#q^4<|YlzKOV(Dw>KF&wFB-101bdKMd}JX5Nb zX7O#}JHEJ;M$)A7oe5fvFati2uA4MnH;qQ@&$#YaG5510b=MVP&vngRl2%6ClfDld z-Oy~-N~%Ts^k|I>FrPV^yws>v%f|A(P^FMqrzUM|ilJ&AUnOZj503Hh#OK>zyfT44 zUff_L7+f5xNd$IYtyL9WLy-g2JZ%OeG)zStVlKL2+ zB>>zm0Fkx=YHV-6$YUsA5FbNx0e8P!pdoEVQ{V9hGK{0~cbIGQiIPPy3I=nhY39tw zJnHpnN{uK{q%nWu`9AB>0k$7Tebep{W`ak1@A8SEkas#+IApgov)q3>WlM4~X>V?- z(<$6$lwE{J?oT{aQ>3jtH2Zz>@gINCQCaSZ)X2Cgq%=w+f<>W8q)HCLi1MjAmMZgV zHWyN+MHWM3ins^27ktc-{WL$2bQL9War^!+qrX3&^uMY|TlN1;;W3QYsq<+knD7J( z!Uz%xiw7enc*L0(nErC#52FaZ;e#*^Oc6mrWi>%w0_yq%y`)Inp?|scf}HH3I2hmA zU}g?yFfv3j1t}dM-wybZWIPXlD@dBbpA;ZTTS2yW!tf>Bwj`fnlskbZ7G?M2R!ysGYv=V0Ep>xPwBN4-c{hdF5r>2!fR%DaNqbw?neyu zV^1LTsIt}JK=#8E3><@Lg~x!iQ@|r_h1bgPo?)t$YTO~hzS$?I#gb;F{}1XXK%*i% zuQ5nlq0VKfuPK9*J68!7e8}e%oD)(+;{W2yRRHZ407+W`o_pMngCi-P2E9;V^rT7t z*F>4mm=g6hO*y@^C6ifGwjY~$G@^A*2A?*v3WsYz-Yay0v}G5t_>)2OL>9ZS`WeT% z%1o4k4p5ztu1?Hi5$&xgshkr9O43%83)_*Be1N>HW7H|BpC6K+k#q^)40@ABC!l5x z>EkppqE_ZaE9x7d>=&p>TTwT+D1oQ2mmbGD3J36Gq&%saA0B!=c3|9WQ{3DHgkOLn zZ3T7y%RtE!FA#j+mz$x;_5YL=CJyozR$x@&9~Zz#+kt(CA@dSrB?tR_gB{S@2@1q; zCggLeS_ zuFw(Euhy7ZUU%nX<@?_L!@`2Ytd5fwg~R0aR8oKbg&Bb64S-p2D_T%0TEr<@JDKHy zsgX^!si>M$R6ixn-%>tI&!!?pQ7NDpZ77u~N*C%HZD>AArguietToLPibkfQ@J{NP z`xM1gG7q<+>f^L@&JWNtQq;d6dTo$2ewn@+`Beig^aE_FrI|{*-L6i))ARLof4-W2 LNzoquYqa-o=orM_ literal 0 HcmV?d00001 diff --git a/python/requests/help.pyc b/python/requests/help.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ce380b4d6d1ffd47c3f6a59a3870fb4a7297b1f1 GIT binary patch literal 2798 zcmZ`5O>f*p)Ea6ZiU1)Xpdy+?4IjmdWH~#NtT$fUjAzqs z*dS22f;b>f9N@@5;lLefICAP=Kpc2)?A?YS);sUbJimGKzCCZv&j$wl{uq6ce7Rs4 zf8t{L^I`HPjLJ0)gBg**Ohz(uNFrk5+{&!T(%6n{jh)ER*o|C`y~xwpk9=k`CuLp|@L^UIern|8{*(V}Sp zCvD{YI^$dfnM*L1VaM|QTJt5Kpasj(GV_@KwGmxlEfxTNg3YlI@I}7D<`2ntrXc*{ zsn%@A=(LYl?-p#7aoQ_#nWTA|AJDzg0TsL~grt3*m0aAYI^9R;#*V4lrATub?~n4H zOpAQ;5jYd+b8&pcMFpfdhGnZ97bVZDD(m4!{1F&7jJIJ_-vW@vPv+0Yi7^2i4vDw| zYXWOC9{_~_WtUmf8rTCzLsvs@-&z44J%=b9THlmqg!2@-CA1Q#UaGnp$u z@qqH>jAAqY#GDutleK;%;EN#n9c;PBvXdMS#%WG@@*qglbLd=*pzF?1gk zf4_Dg%KCJo!P%4*IoIN3QA;XDQv0n}fOjA|RX-{D z)S0~k+>U2KpejzwERnDpR$VPZd5sg4jTRjH*Q&1mD`!8=lS~=Pt(8>4V-=P6QGS>g z5AqICHhNQejRQM@@~20ri={R%{&#jjsnq0Vi?XV5rIyNZIi8hDn(r6N876~507~;3 z^+cgU!84vz0FHR3>_L&D676$Gto(aDmHUe!o`M4V>lRzzW&CKjR^;}pyC0-`yHzUr z%`)j7CI`IQ75uXic)xlHOTAl;)xtS5Uchpt0E{`G_-0`G@VI6Ok8LhClz`YoJOezl zYR5i24?|b`-!K`k)b(E1A2WX>C)nSfwGC-OzkIprZ-kNhUEL3*eG1hMeZU#Gsd++} z#caS4`26HRW9gq&Zp`2$vb51Rg z>gsiSw)W)0VD7|c)&x6EOZ>*XiN6BfoH@YV!rn1y$who8k;9)j6Ed+U*2JB7AZsbb z-V$POIllfL&$&n>raR_ko$Q#e$(e@Rg&4b#CXx@8*JOYQ!F!?&U{kaJc8Ff6g{Hwy zgMLh|JrvkrJE4GYpCO(Epn_Uj44pVy7*)_p;#q5sF4u%!KM@s|F{Ixx${GYk1SMTWovt56DIM;8~1kZY;DGyAKiUxepuAiSep{N>1}Rsp$JVTbtbvAK}*?lDSpEH6lLb(D~dnXYfti?AXfD z5}>P9MXnq+8kUvTtG4~T7lv>z`3l5UDAOR~6@bc*W2D1nyZ}8HSFX^sr-|$|NmzOX3zGU7un*@RVo}9729zuWYU}-Q$ufg?W z2pk670M+)F2JY*qk5)|7$t-M@r@1_(@r@vgJQh) zs#gLvx`pfT{r>(=`}zb|y$}%U=B@SjmdFUJ82XtH!CC}vN$-H`4-hI`MiR|&g}(#+ zAK3QPu7Sw$xu>30@MPxr%hL*PqoYUjpb9Flhb#Xpo`+S)z2S;lt-`r?vib>Co>lmC zeOv01nQQ>Bfw^0zma;6yOwDL9hGbuYl(dv06SU}2&J0WHI8A|bo~C;sxZfA1ZVZ@a z#;8_Q`$I9SLnltXVw==1s-xj&ruw=LY^o+sJvVbhq=i0$cr(-0eA#{ v2gmR!doO#fpl+loFS0aM4M;d0-P8?edwI&?$D3Dw##R$j+R2O~KaTzZeADuK literal 0 HcmV?d00001 diff --git a/python/requests/models.pyc b/python/requests/models.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15efddc9c5397fab1429b1bac82facdd5baf0d83 GIT binary patch literal 24605 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 literal 0 HcmV?d00001 diff --git a/python/requests/packages.pyc b/python/requests/packages.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69e4a6773777db5064158aaa1180b6464fa520a2 GIT binary patch literal 660 zcmZ9JPjAyO6u_U8G|7@SR6DFfLTJ|>2#28|p$egClR!df5=b3UQRKys)@_=!w#(Wc zxb(t>@32W+_yYSJoXwFFcTSvevK1ko<@d+W{yjhYsMQL<$oIuZ`o#wLQ3YG^jq}V* z`O7E=01pN)5+k<5fcM!(GhL~)egczbbvE(NVFPrExuLD;^6x9w4??Ppnk6{OT zFfaNrKkWmOaVv?I$Nz8+YffZ1-)c^D%enrK6J6fHi0xciHSfA_x_u4Z;HT*vUTK#P zi&Ega{YI>KG2B<>K0}3>(!1G+3W+K;`6I)dO9yGn>tkuE-Mq|bF13?$skC=SVEAD$Td7f596TPp>u!&yP*I8 literal 0 HcmV?d00001 diff --git a/python/requests/sessions.pyc b/python/requests/sessions.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ca8f7d725f9d129922b1b77657815077120853c GIT binary patch literal 19772 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 literal 0 HcmV?d00001 diff --git a/python/requests/status_codes.pyc b/python/requests/status_codes.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2726ed83bd253d0dfbd94235e69c2c5569b1249 GIT binary patch literal 4174 zcmaJ^S#TUj8J?Nl)k>>dwq+$?GJuU)V;w%gK^P?jI~ZaNRd$goN3PLm{@&e*W~bLZ zy}C-yi(QZu2_%G&00v~LI6^`3PVoY~aKm%+7M}dfZHnXjdoMY%vs?2`_ut+B)&Ku@ z&tt>GB?rGhHJ=F=#~kO+-0A$zqVXu6>?Z(nLWf-P61VPM_FRW@l&1pqQIYy-fJ!t- zLo`eyG)iMMP7}0;_R>C@r2RBS572}3HhMc9pm)$ibeP^tWjaFd zqoXuUGc-$cbc~ME2|7vdrw`C6dYC>)^YkG)O&_KOdW0UOkI-ZEQ946s>2dnl%`=yC z!lQHa@fY07dHMuBal^S>5QXawv^;;&DSt8?@f@dgsV4lTrAU&_E{IrO)Pofg1 zBJ)GP9yS_rTJoWDzu#T~cRQ|b3mp<)hI@HZfWF;+qT@$hL(`H?$I0_T2 z0N;^jp6BE}r$hhVO?ikF)jyub4+N7O3XI1xM$xP|CiY7wBf-_zf zL7Y~kIdE^fs$-5!S@Bc`Y^<<~55s3dcL=6nyI?=s2$hb*q&re<6UuorWH&!(<%AjS zghGcf*c*<`$X%l`4yCAB`82&Ej%y?a{3JMTd^)Q9r z$%ZLd68mZziwYIlOxY^~nGgZOP$*NdFANT)QU`TOaV54A1|W$yc71~fTYKH^=gh?J zlrp0|nw4q>x&$aU(N(LPgk~IWM18=HpqwB}v@m@w5_B9~4hd6jYMUH7tVT0!@8zc5 z-LXcvQHP~=9uk`j{BJ3kJb<#a921F@EoSSi`J1_EIKwj&b%Cg$fCt*yWd?V2z+uF8 zZ7_u>Sg_)Nb%+fph(%rFXz5Ak*k9kU!)9-<-J1%zqn)VNab3u!HpO-W0y(`ZNh{Uz zRhe>{jV2RML_SnO$_h9QGvE4>oN2`nGlNyNITjvSV*H(F^Isw(r`*BR?(o*l@U z$!40NG}(X)>L`|Bpf?)AjPIhGQg0ZJd8o}1@u$MHDy&;GxF@T`?7Obnoe9w4Uh|;b zgjjE&M7LbqG7bU;5&KZaR%O%IehKP4(>4`T#+r?)3Q2T# z&J^1e4DQ>xTiqGz5iYu(8Rr^_B8Y+WO0WvkAthcjf?9CKRMofbX zSNu$vJj$K`v805?afkw5<6?$3hzFNj_6N&6l9F7@0+cg&t6ks}D!durMZ(epNX%8l zp>;3vE=WWbi%`Kb$Th=vbvXc|BnICgN+jx8$4V5>emI}Ql)yjRV(9q5aI05fDy?o|2A=qvU zh6+QKVUyvP48LOdHN$The#`JXhTk*%f#Ht~Zvf(>xGluf3^NR~408;}7>+ZXU^vO} zBEw4zUt)Nf;mZuKFnopKRfg9XzRK`5hOaZ+WcUWdHyOUgu+4Cb;oA(~VfZe?_ZYs< z@H)c}7=Fm`BZeO{{FLEm3_oZ11;bw${>tz-hQBlXgW;bH|6;hq@Nb6yF#MO{e*grk zy#k{s;I@m+%kvF6f{W~ruPc3c_?>+guzpTE+wLvrjC1AmqIb=?=B^*#a?v|-&C{OF zZFyVH^_=T$dE0q%Z@Jl2i@II7<+MhwPCe;dEj{UwN4Xo$bB^vKXJtS=gLi(vL;3CE z=bVbmA0jvUb-#A5gZp)G+V7+uK3Omu9{|M*W$%u=c*mWMV1)hQgTN`^xriq_2q1U6 zEkwIp&I3@H*<5oezvXPX6>pLm6)tRgNBz5)SX-INBw)+AGJ+*oFzI{-pC4B}a|0togs+YZuXFkHX6B5Ws%Npl!ku}VUnH@**x104ot`+gcs^cU%JvIgV3Dnb7eI5c#4*V30%L5#D%H5pUEzr27U7k9@i+Y}V7M{B9 zwmroTb}v{_Wlueand*yxva4R=wsjXvSI-01@pO!xdXwy~edPi51DdJS(Dt(uW;;^b1iWmZr13b%OP4u5yeHvOk@eQhRU mVIO8>F9P!3P{DKG;-A|!mfuBrtM&I9+szZR`g0|(f9(Gg$T-;m literal 0 HcmV?d00001 diff --git a/python/requests/structures.pyc b/python/requests/structures.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6482ef09e45bb4256e13ec501fe97bc80417072 GIT binary patch literal 4358 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 PmD`1k$W-ph+^+uxA00n% literal 0 HcmV?d00001 diff --git a/python/urllib3-1.26.7.dist-info/INSTALLER b/python/urllib3-1.26.7.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/python/urllib3-1.26.7.dist-info/LICENSE.txt b/python/urllib3-1.26.7.dist-info/LICENSE.txt new file mode 100644 index 0000000..429a176 --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/python/urllib3-1.26.7.dist-info/METADATA b/python/urllib3-1.26.7.dist-info/METADATA new file mode 100644 index 0000000..f35bc20 --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/METADATA @@ -0,0 +1,1396 @@ +Metadata-Version: 2.1 +Name: urllib3 +Version: 1.26.7 +Summary: HTTP library with thread-safe connection pooling, file post, and more. +Home-page: https://urllib3.readthedocs.io/ +Author: Andrey Petrov +Author-email: andrey.petrov@shazow.net +License: MIT +Project-URL: Documentation, https://urllib3.readthedocs.io/ +Project-URL: Code, https://github.com/urllib3/urllib3 +Project-URL: Issue tracker, https://github.com/urllib3/urllib3/issues +Keywords: urllib httplib threadsafe filepost http https ssl pooling +Platform: UNKNOWN +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Software Development :: Libraries +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +Provides-Extra: brotli +Requires-Dist: brotlipy (>=0.6.0) ; extra == 'brotli' +Provides-Extra: secure +Requires-Dist: pyOpenSSL (>=0.14) ; extra == 'secure' +Requires-Dist: cryptography (>=1.3.4) ; extra == 'secure' +Requires-Dist: idna (>=2.0.0) ; extra == 'secure' +Requires-Dist: certifi ; extra == 'secure' +Requires-Dist: ipaddress ; (python_version == "2.7") and extra == 'secure' +Provides-Extra: socks +Requires-Dist: PySocks (!=1.5.7,<2.0,>=1.5.6) ; extra == 'socks' + + +urllib3 is a powerful, *user-friendly* HTTP client for Python. Much of the +Python ecosystem already uses urllib3 and you should too. +urllib3 brings many critical features that are missing from the Python +standard libraries: + +- Thread safety. +- Connection pooling. +- Client-side SSL/TLS verification. +- File uploads with multipart encoding. +- Helpers for retrying requests and dealing with HTTP redirects. +- Support for gzip, deflate, and brotli encoding. +- Proxy support for HTTP and SOCKS. +- 100% test coverage. + +urllib3 is powerful and easy to use: + +.. code-block:: python + + >>> import urllib3 + >>> http = urllib3.PoolManager() + >>> r = http.request('GET', 'http://httpbin.org/robots.txt') + >>> r.status + 200 + >>> r.data + 'User-agent: *\nDisallow: /deny\n' + + +Installing +---------- + +urllib3 can be installed with `pip `_:: + + $ python -m pip install urllib3 + +Alternatively, you can grab the latest source code from `GitHub `_:: + + $ git clone git://github.com/urllib3/urllib3.git + $ python setup.py install + + +Documentation +------------- + +urllib3 has usage and reference documentation at `urllib3.readthedocs.io `_. + + +Contributing +------------ + +urllib3 happily accepts contributions. Please see our +`contributing documentation `_ +for some tips on getting started. + + +Security Disclosures +-------------------- + +To report a security vulnerability, please use the +`Tidelift security contact `_. +Tidelift will coordinate the fix and disclosure with maintainers. + + +Maintainers +----------- + +- `@sethmlarson `__ (Seth M. Larson) +- `@pquentin `__ (Quentin Pradet) +- `@theacodes `__ (Thea Flowers) +- `@haikuginger `__ (Jess Shapiro) +- `@lukasa `__ (Cory Benfield) +- `@sigmavirus24 `__ (Ian Stapleton Cordasco) +- `@shazow `__ (Andrey Petrov) + +👋 + + +Sponsorship +----------- + +If your company benefits from this library, please consider `sponsoring its +development `_. + + +For Enterprise +-------------- + +.. |tideliftlogo| image:: https://nedbatchelder.com/pix/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png + :width: 75 + :alt: Tidelift + +.. list-table:: + :widths: 10 100 + + * - |tideliftlogo| + - Professional support for urllib3 is available as part of the `Tidelift + Subscription`_. Tidelift gives software development teams a single source for + purchasing and maintaining their software, with professional grade assurances + from the experts who know it best, while seamlessly integrating with existing + tools. + +.. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-urllib3?utm_source=pypi-urllib3&utm_medium=referral&utm_campaign=readme + + +Changes +======= + +1.26.7 (2021-09-22) +------------------- +* Fixed a bug with HTTPS hostname verification involving IP addresses and lack + of SNI. (Issue #2400) +* Fixed a bug where IPv6 braces weren't stripped during certificate hostname + matching. (Issue #2240) + + +1.26.6 (2021-06-25) +------------------- + +* Deprecated the ``urllib3.contrib.ntlmpool`` module. urllib3 is not able to support + it properly due to `reasons listed in this issue `_. + If you are a user of this module please leave a comment. +* Changed ``HTTPConnection.request_chunked()`` to not erroneously emit multiple + ``Transfer-Encoding`` headers in the case that one is already specified. +* Fixed typo in deprecation message to recommend ``Retry.DEFAULT_ALLOWED_METHODS``. + + +1.26.5 (2021-05-26) +------------------- + +* Fixed deprecation warnings emitted in Python 3.10. +* Updated vendored ``six`` library to 1.16.0. +* Improved performance of URL parser when splitting + the authority component. + + +1.26.4 (2021-03-15) +------------------- + +* Changed behavior of the default ``SSLContext`` when connecting to HTTPS proxy + during HTTPS requests. The default ``SSLContext`` now sets ``check_hostname=True``. + + +1.26.3 (2021-01-26) +------------------- + +* Fixed bytes and string comparison issue with headers (Pull #2141) + +* Changed ``ProxySchemeUnknown`` error message to be + more actionable if the user supplies a proxy URL without + a scheme. (Pull #2107) + + +1.26.2 (2020-11-12) +------------------- + +* Fixed an issue where ``wrap_socket`` and ``CERT_REQUIRED`` wouldn't + be imported properly on Python 2.7.8 and earlier (Pull #2052) + + +1.26.1 (2020-11-11) +------------------- + +* Fixed an issue where two ``User-Agent`` headers would be sent if a + ``User-Agent`` header key is passed as ``bytes`` (Pull #2047) + + +1.26.0 (2020-11-10) +------------------- + +* **NOTE: urllib3 v2.0 will drop support for Python 2**. + `Read more in the v2.0 Roadmap `_. + +* Added support for HTTPS proxies contacting HTTPS servers (Pull #1923, Pull #1806) + +* Deprecated negotiating TLSv1 and TLSv1.1 by default. Users that + still wish to use TLS earlier than 1.2 without a deprecation warning + should opt-in explicitly by setting ``ssl_version=ssl.PROTOCOL_TLSv1_1`` (Pull #2002) + **Starting in urllib3 v2.0: Connections that receive a ``DeprecationWarning`` will fail** + +* Deprecated ``Retry`` options ``Retry.DEFAULT_METHOD_WHITELIST``, ``Retry.DEFAULT_REDIRECT_HEADERS_BLACKLIST`` + and ``Retry(method_whitelist=...)`` in favor of ``Retry.DEFAULT_ALLOWED_METHODS``, + ``Retry.DEFAULT_REMOVE_HEADERS_ON_REDIRECT``, and ``Retry(allowed_methods=...)`` + (Pull #2000) **Starting in urllib3 v2.0: Deprecated options will be removed** + +* Added default ``User-Agent`` header to every request (Pull #1750) + +* Added ``urllib3.util.SKIP_HEADER`` for skipping ``User-Agent``, ``Accept-Encoding``, + and ``Host`` headers from being automatically emitted with requests (Pull #2018) + +* Collapse ``transfer-encoding: chunked`` request data and framing into + the same ``socket.send()`` call (Pull #1906) + +* Send ``http/1.1`` ALPN identifier with every TLS handshake by default (Pull #1894) + +* Properly terminate SecureTransport connections when CA verification fails (Pull #1977) + +* Don't emit an ``SNIMissingWarning`` when passing ``server_hostname=None`` + to SecureTransport (Pull #1903) + +* Disabled requesting TLSv1.2 session tickets as they weren't being used by urllib3 (Pull #1970) + +* Suppress ``BrokenPipeError`` when writing request body after the server + has closed the socket (Pull #1524) + +* Wrap ``ssl.SSLError`` that can be raised from reading a socket (e.g. "bad MAC") + into an ``urllib3.exceptions.SSLError`` (Pull #1939) + + +1.25.11 (2020-10-19) +-------------------- + +* Fix retry backoff time parsed from ``Retry-After`` header when given + in the HTTP date format. The HTTP date was parsed as the local timezone + rather than accounting for the timezone in the HTTP date (typically + UTC) (Pull #1932, Pull #1935, Pull #1938, Pull #1949) + +* Fix issue where an error would be raised when the ``SSLKEYLOGFILE`` + environment variable was set to the empty string. Now ``SSLContext.keylog_file`` + is not set in this situation (Pull #2016) + + +1.25.10 (2020-07-22) +-------------------- + +* Added support for ``SSLKEYLOGFILE`` environment variable for + logging TLS session keys with use with programs like + Wireshark for decrypting captured web traffic (Pull #1867) + +* Fixed loading of SecureTransport libraries on macOS Big Sur + due to the new dynamic linker cache (Pull #1905) + +* Collapse chunked request bodies data and framing into one + call to ``send()`` to reduce the number of TCP packets by 2-4x (Pull #1906) + +* Don't insert ``None`` into ``ConnectionPool`` if the pool + was empty when requesting a connection (Pull #1866) + +* Avoid ``hasattr`` call in ``BrotliDecoder.decompress()`` (Pull #1858) + + +1.25.9 (2020-04-16) +------------------- + +* Added ``InvalidProxyConfigurationWarning`` which is raised when + erroneously specifying an HTTPS proxy URL. urllib3 doesn't currently + support connecting to HTTPS proxies but will soon be able to + and we would like users to migrate properly without much breakage. + + See `this GitHub issue `_ + for more information on how to fix your proxy config. (Pull #1851) + +* Drain connection after ``PoolManager`` redirect (Pull #1817) + +* Ensure ``load_verify_locations`` raises ``SSLError`` for all backends (Pull #1812) + +* Rename ``VerifiedHTTPSConnection`` to ``HTTPSConnection`` (Pull #1805) + +* Allow the CA certificate data to be passed as a string (Pull #1804) + +* Raise ``ValueError`` if method contains control characters (Pull #1800) + +* Add ``__repr__`` to ``Timeout`` (Pull #1795) + + +1.25.8 (2020-01-20) +------------------- + +* Drop support for EOL Python 3.4 (Pull #1774) + +* Optimize _encode_invalid_chars (Pull #1787) + + +1.25.7 (2019-11-11) +------------------- + +* Preserve ``chunked`` parameter on retries (Pull #1715, Pull #1734) + +* Allow unset ``SERVER_SOFTWARE`` in App Engine (Pull #1704, Issue #1470) + +* Fix issue where URL fragment was sent within the request target. (Pull #1732) + +* Fix issue where an empty query section in a URL would fail to parse. (Pull #1732) + +* Remove TLS 1.3 support in SecureTransport due to Apple removing support (Pull #1703) + + +1.25.6 (2019-09-24) +------------------- + +* Fix issue where tilde (``~``) characters were incorrectly + percent-encoded in the path. (Pull #1692) + + +1.25.5 (2019-09-19) +------------------- + +* Add mitigation for BPO-37428 affecting Python <3.7.4 and OpenSSL 1.1.1+ which + caused certificate verification to be enabled when using ``cert_reqs=CERT_NONE``. + (Issue #1682) + + +1.25.4 (2019-09-19) +------------------- + +* Propagate Retry-After header settings to subsequent retries. (Pull #1607) + +* Fix edge case where Retry-After header was still respected even when + explicitly opted out of. (Pull #1607) + +* Remove dependency on ``rfc3986`` for URL parsing. + +* Fix issue where URLs containing invalid characters within ``Url.auth`` would + raise an exception instead of percent-encoding those characters. + +* Add support for ``HTTPResponse.auto_close = False`` which makes HTTP responses + work well with BufferedReaders and other ``io`` module features. (Pull #1652) + +* Percent-encode invalid characters in URL for ``HTTPConnectionPool.request()`` (Pull #1673) + + +1.25.3 (2019-05-23) +------------------- + +* Change ``HTTPSConnection`` to load system CA certificates + when ``ca_certs``, ``ca_cert_dir``, and ``ssl_context`` are + unspecified. (Pull #1608, Issue #1603) + +* Upgrade bundled rfc3986 to v1.3.2. (Pull #1609, Issue #1605) + + +1.25.2 (2019-04-28) +------------------- + +* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull #1583) + +* Change ``parse_url`` to percent-encode invalid characters within the + path, query, and target components. (Pull #1586) + + +1.25.1 (2019-04-24) +------------------- + +* Add support for Google's ``Brotli`` package. (Pull #1572, Pull #1579) + +* Upgrade bundled rfc3986 to v1.3.1 (Pull #1578) + + +1.25 (2019-04-22) +----------------- + +* Require and validate certificates by default when using HTTPS (Pull #1507) + +* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull #1487) + +* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use + encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull #1489) + +* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext`` + implementations. (Pull #1496) + +* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue #303, Pull #1492) + +* Fixed issue where OpenSSL would block if an encrypted client private key was + given and no password was given. Instead an ``SSLError`` is raised. (Pull #1489) + +* Added support for Brotli content encoding. It is enabled automatically if + ``brotlipy`` package is installed which can be requested with + ``urllib3[brotli]`` extra. (Pull #1532) + +* Drop ciphers using DSS key exchange from default TLS cipher suites. + Improve default ciphers when using SecureTransport. (Pull #1496) + +* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue #1483) + +1.24.3 (2019-05-01) +------------------- + +* Apply fix for CVE-2019-9740. (Pull #1591) + +1.24.2 (2019-04-17) +------------------- + +* Don't load system certificates by default when any other ``ca_certs``, ``ca_certs_dir`` or + ``ssl_context`` parameters are specified. + +* Remove Authorization header regardless of case when redirecting to cross-site. (Issue #1510) + +* Add support for IPv6 addresses in subjectAltName section of certificates. (Issue #1269) + + +1.24.1 (2018-11-02) +------------------- + +* Remove quadratic behavior within ``GzipDecoder.decompress()`` (Issue #1467) + +* Restored functionality of ``ciphers`` parameter for ``create_urllib3_context()``. (Issue #1462) + + +1.24 (2018-10-16) +----------------- + +* Allow key_server_hostname to be specified when initializing a PoolManager to allow custom SNI to be overridden. (Pull #1449) + +* Test against Python 3.7 on AppVeyor. (Pull #1453) + +* Early-out ipv6 checks when running on App Engine. (Pull #1450) + +* Change ambiguous description of backoff_factor (Pull #1436) + +* Add ability to handle multiple Content-Encodings (Issue #1441 and Pull #1442) + +* Skip DNS names that can't be idna-decoded when using pyOpenSSL (Issue #1405). + +* Add a server_hostname parameter to HTTPSConnection which allows for + overriding the SNI hostname sent in the handshake. (Pull #1397) + +* Drop support for EOL Python 2.6 (Pull #1429 and Pull #1430) + +* Fixed bug where responses with header Content-Type: message/* erroneously + raised HeaderParsingError, resulting in a warning being logged. (Pull #1439) + +* Move urllib3 to src/urllib3 (Pull #1409) + + +1.23 (2018-06-04) +----------------- + +* Allow providing a list of headers to strip from requests when redirecting + to a different host. Defaults to the ``Authorization`` header. Different + headers can be set via ``Retry.remove_headers_on_redirect``. (Issue #1316) + +* Fix ``util.selectors._fileobj_to_fd`` to accept ``long`` (Issue #1247). + +* Dropped Python 3.3 support. (Pull #1242) + +* Put the connection back in the pool when calling stream() or read_chunked() on + a chunked HEAD response. (Issue #1234) + +* Fixed pyOpenSSL-specific ssl client authentication issue when clients + attempted to auth via certificate + chain (Issue #1060) + +* Add the port to the connectionpool connect print (Pull #1251) + +* Don't use the ``uuid`` module to create multipart data boundaries. (Pull #1380) + +* ``read_chunked()`` on a closed response returns no chunks. (Issue #1088) + +* Add Python 2.6 support to ``contrib.securetransport`` (Pull #1359) + +* Added support for auth info in url for SOCKS proxy (Pull #1363) + + +1.22 (2017-07-20) +----------------- + +* Fixed missing brackets in ``HTTP CONNECT`` when connecting to IPv6 address via + IPv6 proxy. (Issue #1222) + +* Made the connection pool retry on ``SSLError``. The original ``SSLError`` + is available on ``MaxRetryError.reason``. (Issue #1112) + +* Drain and release connection before recursing on retry/redirect. Fixes + deadlocks with a blocking connectionpool. (Issue #1167) + +* Fixed compatibility for cookiejar. (Issue #1229) + +* pyopenssl: Use vendored version of ``six``. (Issue #1231) + + +1.21.1 (2017-05-02) +------------------- + +* Fixed SecureTransport issue that would cause long delays in response body + delivery. (Pull #1154) + +* Fixed regression in 1.21 that threw exceptions when users passed the + ``socket_options`` flag to the ``PoolManager``. (Issue #1165) + +* Fixed regression in 1.21 that threw exceptions when users passed the + ``assert_hostname`` or ``assert_fingerprint`` flag to the ``PoolManager``. + (Pull #1157) + + +1.21 (2017-04-25) +----------------- + +* Improved performance of certain selector system calls on Python 3.5 and + later. (Pull #1095) + +* Resolved issue where the PyOpenSSL backend would not wrap SysCallError + exceptions appropriately when sending data. (Pull #1125) + +* Selectors now detects a monkey-patched select module after import for modules + that patch the select module like eventlet, greenlet. (Pull #1128) + +* Reduced memory consumption when streaming zlib-compressed responses + (as opposed to raw deflate streams). (Pull #1129) + +* Connection pools now use the entire request context when constructing the + pool key. (Pull #1016) + +* ``PoolManager.connection_from_*`` methods now accept a new keyword argument, + ``pool_kwargs``, which are merged with the existing ``connection_pool_kw``. + (Pull #1016) + +* Add retry counter for ``status_forcelist``. (Issue #1147) + +* Added ``contrib`` module for using SecureTransport on macOS: + ``urllib3.contrib.securetransport``. (Pull #1122) + +* urllib3 now only normalizes the case of ``http://`` and ``https://`` schemes: + for schemes it does not recognise, it assumes they are case-sensitive and + leaves them unchanged. + (Issue #1080) + + +1.20 (2017-01-19) +----------------- + +* Added support for waiting for I/O using selectors other than select, + improving urllib3's behaviour with large numbers of concurrent connections. + (Pull #1001) + +* Updated the date for the system clock check. (Issue #1005) + +* ConnectionPools now correctly consider hostnames to be case-insensitive. + (Issue #1032) + +* Outdated versions of PyOpenSSL now cause the PyOpenSSL contrib module + to fail when it is injected, rather than at first use. (Pull #1063) + +* Outdated versions of cryptography now cause the PyOpenSSL contrib module + to fail when it is injected, rather than at first use. (Issue #1044) + +* Automatically attempt to rewind a file-like body object when a request is + retried or redirected. (Pull #1039) + +* Fix some bugs that occur when modules incautiously patch the queue module. + (Pull #1061) + +* Prevent retries from occurring on read timeouts for which the request method + was not in the method whitelist. (Issue #1059) + +* Changed the PyOpenSSL contrib module to lazily load idna to avoid + unnecessarily bloating the memory of programs that don't need it. (Pull + #1076) + +* Add support for IPv6 literals with zone identifiers. (Pull #1013) + +* Added support for socks5h:// and socks4a:// schemes when working with SOCKS + proxies, and controlled remote DNS appropriately. (Issue #1035) + + +1.19.1 (2016-11-16) +------------------- + +* Fixed AppEngine import that didn't function on Python 3.5. (Pull #1025) + + +1.19 (2016-11-03) +----------------- + +* urllib3 now respects Retry-After headers on 413, 429, and 503 responses when + using the default retry logic. (Pull #955) + +* Remove markers from setup.py to assist ancient setuptools versions. (Issue + #986) + +* Disallow superscripts and other integerish things in URL ports. (Issue #989) + +* Allow urllib3's HTTPResponse.stream() method to continue to work with + non-httplib underlying FPs. (Pull #990) + +* Empty filenames in multipart headers are now emitted as such, rather than + being suppressed. (Issue #1015) + +* Prefer user-supplied Host headers on chunked uploads. (Issue #1009) + + +1.18.1 (2016-10-27) +------------------- + +* CVE-2016-9015. Users who are using urllib3 version 1.17 or 1.18 along with + PyOpenSSL injection and OpenSSL 1.1.0 *must* upgrade to this version. This + release fixes a vulnerability whereby urllib3 in the above configuration + would silently fail to validate TLS certificates due to erroneously setting + invalid flags in OpenSSL's ``SSL_CTX_set_verify`` function. These erroneous + flags do not cause a problem in OpenSSL versions before 1.1.0, which + interprets the presence of any flag as requesting certificate validation. + + There is no PR for this patch, as it was prepared for simultaneous disclosure + and release. The master branch received the same fix in Pull #1010. + + +1.18 (2016-09-26) +----------------- + +* Fixed incorrect message for IncompleteRead exception. (Pull #973) + +* Accept ``iPAddress`` subject alternative name fields in TLS certificates. + (Issue #258) + +* Fixed consistency of ``HTTPResponse.closed`` between Python 2 and 3. + (Issue #977) + +* Fixed handling of wildcard certificates when using PyOpenSSL. (Issue #979) + + +1.17 (2016-09-06) +----------------- + +* Accept ``SSLContext`` objects for use in SSL/TLS negotiation. (Issue #835) + +* ConnectionPool debug log now includes scheme, host, and port. (Issue #897) + +* Substantially refactored documentation. (Issue #887) + +* Used URLFetch default timeout on AppEngine, rather than hardcoding our own. + (Issue #858) + +* Normalize the scheme and host in the URL parser (Issue #833) + +* ``HTTPResponse`` contains the last ``Retry`` object, which now also + contains retries history. (Issue #848) + +* Timeout can no longer be set as boolean, and must be greater than zero. + (Pull #924) + +* Removed pyasn1 and ndg-httpsclient from dependencies used for PyOpenSSL. We + now use cryptography and idna, both of which are already dependencies of + PyOpenSSL. (Pull #930) + +* Fixed infinite loop in ``stream`` when amt=None. (Issue #928) + +* Try to use the operating system's certificates when we are using an + ``SSLContext``. (Pull #941) + +* Updated cipher suite list to allow ChaCha20+Poly1305. AES-GCM is preferred to + ChaCha20, but ChaCha20 is then preferred to everything else. (Pull #947) + +* Updated cipher suite list to remove 3DES-based cipher suites. (Pull #958) + +* Removed the cipher suite fallback to allow HIGH ciphers. (Pull #958) + +* Implemented ``length_remaining`` to determine remaining content + to be read. (Pull #949) + +* Implemented ``enforce_content_length`` to enable exceptions when + incomplete data chunks are received. (Pull #949) + +* Dropped connection start, dropped connection reset, redirect, forced retry, + and new HTTPS connection log levels to DEBUG, from INFO. (Pull #967) + + +1.16 (2016-06-11) +----------------- + +* Disable IPv6 DNS when IPv6 connections are not possible. (Issue #840) + +* Provide ``key_fn_by_scheme`` pool keying mechanism that can be + overridden. (Issue #830) + +* Normalize scheme and host to lowercase for pool keys, and include + ``source_address``. (Issue #830) + +* Cleaner exception chain in Python 3 for ``_make_request``. + (Issue #861) + +* Fixed installing ``urllib3[socks]`` extra. (Issue #864) + +* Fixed signature of ``ConnectionPool.close`` so it can actually safely be + called by subclasses. (Issue #873) + +* Retain ``release_conn`` state across retries. (Issues #651, #866) + +* Add customizable ``HTTPConnectionPool.ResponseCls``, which defaults to + ``HTTPResponse`` but can be replaced with a subclass. (Issue #879) + + +1.15.1 (2016-04-11) +------------------- + +* Fix packaging to include backports module. (Issue #841) + + +1.15 (2016-04-06) +----------------- + +* Added Retry(raise_on_status=False). (Issue #720) + +* Always use setuptools, no more distutils fallback. (Issue #785) + +* Dropped support for Python 3.2. (Issue #786) + +* Chunked transfer encoding when requesting with ``chunked=True``. + (Issue #790) + +* Fixed regression with IPv6 port parsing. (Issue #801) + +* Append SNIMissingWarning messages to allow users to specify it in + the PYTHONWARNINGS environment variable. (Issue #816) + +* Handle unicode headers in Py2. (Issue #818) + +* Log certificate when there is a hostname mismatch. (Issue #820) + +* Preserve order of request/response headers. (Issue #821) + + +1.14 (2015-12-29) +----------------- + +* contrib: SOCKS proxy support! (Issue #762) + +* Fixed AppEngine handling of transfer-encoding header and bug + in Timeout defaults checking. (Issue #763) + + +1.13.1 (2015-12-18) +------------------- + +* Fixed regression in IPv6 + SSL for match_hostname. (Issue #761) + + +1.13 (2015-12-14) +----------------- + +* Fixed ``pip install urllib3[secure]`` on modern pip. (Issue #706) + +* pyopenssl: Fixed SSL3_WRITE_PENDING error. (Issue #717) + +* pyopenssl: Support for TLSv1.1 and TLSv1.2. (Issue #696) + +* Close connections more defensively on exception. (Issue #734) + +* Adjusted ``read_chunked`` to handle gzipped, chunk-encoded bodies without + repeatedly flushing the decoder, to function better on Jython. (Issue #743) + +* Accept ``ca_cert_dir`` for SSL-related PoolManager configuration. (Issue #758) + + +1.12 (2015-09-03) +----------------- + +* Rely on ``six`` for importing ``httplib`` to work around + conflicts with other Python 3 shims. (Issue #688) + +* Add support for directories of certificate authorities, as supported by + OpenSSL. (Issue #701) + +* New exception: ``NewConnectionError``, raised when we fail to establish + a new connection, usually ``ECONNREFUSED`` socket error. + + +1.11 (2015-07-21) +----------------- + +* When ``ca_certs`` is given, ``cert_reqs`` defaults to + ``'CERT_REQUIRED'``. (Issue #650) + +* ``pip install urllib3[secure]`` will install Certifi and + PyOpenSSL as dependencies. (Issue #678) + +* Made ``HTTPHeaderDict`` usable as a ``headers`` input value + (Issues #632, #679) + +* Added `urllib3.contrib.appengine `_ + which has an ``AppEngineManager`` for using ``URLFetch`` in a + Google AppEngine environment. (Issue #664) + +* Dev: Added test suite for AppEngine. (Issue #631) + +* Fix performance regression when using PyOpenSSL. (Issue #626) + +* Passing incorrect scheme (e.g. ``foo://``) will raise + ``ValueError`` instead of ``AssertionError`` (backwards + compatible for now, but please migrate). (Issue #640) + +* Fix pools not getting replenished when an error occurs during a + request using ``release_conn=False``. (Issue #644) + +* Fix pool-default headers not applying for url-encoded requests + like GET. (Issue #657) + +* log.warning in Python 3 when headers are skipped due to parsing + errors. (Issue #642) + +* Close and discard connections if an error occurs during read. + (Issue #660) + +* Fix host parsing for IPv6 proxies. (Issue #668) + +* Separate warning type SubjectAltNameWarning, now issued once + per host. (Issue #671) + +* Fix ``httplib.IncompleteRead`` not getting converted to + ``ProtocolError`` when using ``HTTPResponse.stream()`` + (Issue #674) + +1.10.4 (2015-05-03) +------------------- + +* Migrate tests to Tornado 4. (Issue #594) + +* Append default warning configuration rather than overwrite. + (Issue #603) + +* Fix streaming decoding regression. (Issue #595) + +* Fix chunked requests losing state across keep-alive connections. + (Issue #599) + +* Fix hanging when chunked HEAD response has no body. (Issue #605) + + +1.10.3 (2015-04-21) +------------------- + +* Emit ``InsecurePlatformWarning`` when SSLContext object is missing. + (Issue #558) + +* Fix regression of duplicate header keys being discarded. + (Issue #563) + +* ``Response.stream()`` returns a generator for chunked responses. + (Issue #560) + +* Set upper-bound timeout when waiting for a socket in PyOpenSSL. + (Issue #585) + +* Work on platforms without `ssl` module for plain HTTP requests. + (Issue #587) + +* Stop relying on the stdlib's default cipher list. (Issue #588) + + +1.10.2 (2015-02-25) +------------------- + +* Fix file descriptor leakage on retries. (Issue #548) + +* Removed RC4 from default cipher list. (Issue #551) + +* Header performance improvements. (Issue #544) + +* Fix PoolManager not obeying redirect retry settings. (Issue #553) + + +1.10.1 (2015-02-10) +------------------- + +* Pools can be used as context managers. (Issue #545) + +* Don't re-use connections which experienced an SSLError. (Issue #529) + +* Don't fail when gzip decoding an empty stream. (Issue #535) + +* Add sha256 support for fingerprint verification. (Issue #540) + +* Fixed handling of header values containing commas. (Issue #533) + + +1.10 (2014-12-14) +----------------- + +* Disabled SSLv3. (Issue #473) + +* Add ``Url.url`` property to return the composed url string. (Issue #394) + +* Fixed PyOpenSSL + gevent ``WantWriteError``. (Issue #412) + +* ``MaxRetryError.reason`` will always be an exception, not string. + (Issue #481) + +* Fixed SSL-related timeouts not being detected as timeouts. (Issue #492) + +* Py3: Use ``ssl.create_default_context()`` when available. (Issue #473) + +* Emit ``InsecureRequestWarning`` for *every* insecure HTTPS request. + (Issue #496) + +* Emit ``SecurityWarning`` when certificate has no ``subjectAltName``. + (Issue #499) + +* Close and discard sockets which experienced SSL-related errors. + (Issue #501) + +* Handle ``body`` param in ``.request(...)``. (Issue #513) + +* Respect timeout with HTTPS proxy. (Issue #505) + +* PyOpenSSL: Handle ZeroReturnError exception. (Issue #520) + + +1.9.1 (2014-09-13) +------------------ + +* Apply socket arguments before binding. (Issue #427) + +* More careful checks if fp-like object is closed. (Issue #435) + +* Fixed packaging issues of some development-related files not + getting included. (Issue #440) + +* Allow performing *only* fingerprint verification. (Issue #444) + +* Emit ``SecurityWarning`` if system clock is waaay off. (Issue #445) + +* Fixed PyOpenSSL compatibility with PyPy. (Issue #450) + +* Fixed ``BrokenPipeError`` and ``ConnectionError`` handling in Py3. + (Issue #443) + + + +1.9 (2014-07-04) +---------------- + +* Shuffled around development-related files. If you're maintaining a distro + package of urllib3, you may need to tweak things. (Issue #415) + +* Unverified HTTPS requests will trigger a warning on the first request. See + our new `security documentation + `_ for details. + (Issue #426) + +* New retry logic and ``urllib3.util.retry.Retry`` configuration object. + (Issue #326) + +* All raised exceptions should now wrapped in a + ``urllib3.exceptions.HTTPException``-extending exception. (Issue #326) + +* All errors during a retry-enabled request should be wrapped in + ``urllib3.exceptions.MaxRetryError``, including timeout-related exceptions + which were previously exempt. Underlying error is accessible from the + ``.reason`` property. (Issue #326) + +* ``urllib3.exceptions.ConnectionError`` renamed to + ``urllib3.exceptions.ProtocolError``. (Issue #326) + +* Errors during response read (such as IncompleteRead) are now wrapped in + ``urllib3.exceptions.ProtocolError``. (Issue #418) + +* Requesting an empty host will raise ``urllib3.exceptions.LocationValueError``. + (Issue #417) + +* Catch read timeouts over SSL connections as + ``urllib3.exceptions.ReadTimeoutError``. (Issue #419) + +* Apply socket arguments before connecting. (Issue #427) + + +1.8.3 (2014-06-23) +------------------ + +* Fix TLS verification when using a proxy in Python 3.4.1. (Issue #385) + +* Add ``disable_cache`` option to ``urllib3.util.make_headers``. (Issue #393) + +* Wrap ``socket.timeout`` exception with + ``urllib3.exceptions.ReadTimeoutError``. (Issue #399) + +* Fixed proxy-related bug where connections were being reused incorrectly. + (Issues #366, #369) + +* Added ``socket_options`` keyword parameter which allows to define + ``setsockopt`` configuration of new sockets. (Issue #397) + +* Removed ``HTTPConnection.tcp_nodelay`` in favor of + ``HTTPConnection.default_socket_options``. (Issue #397) + +* Fixed ``TypeError`` bug in Python 2.6.4. (Issue #411) + + +1.8.2 (2014-04-17) +------------------ + +* Fix ``urllib3.util`` not being included in the package. + + +1.8.1 (2014-04-17) +------------------ + +* Fix AppEngine bug of HTTPS requests going out as HTTP. (Issue #356) + +* Don't install ``dummyserver`` into ``site-packages`` as it's only needed + for the test suite. (Issue #362) + +* Added support for specifying ``source_address``. (Issue #352) + + +1.8 (2014-03-04) +---------------- + +* Improved url parsing in ``urllib3.util.parse_url`` (properly parse '@' in + username, and blank ports like 'hostname:'). + +* New ``urllib3.connection`` module which contains all the HTTPConnection + objects. + +* Several ``urllib3.util.Timeout``-related fixes. Also changed constructor + signature to a more sensible order. [Backwards incompatible] + (Issues #252, #262, #263) + +* Use ``backports.ssl_match_hostname`` if it's installed. (Issue #274) + +* Added ``.tell()`` method to ``urllib3.response.HTTPResponse`` which + returns the number of bytes read so far. (Issue #277) + +* Support for platforms without threading. (Issue #289) + +* Expand default-port comparison in ``HTTPConnectionPool.is_same_host`` + to allow a pool with no specified port to be considered equal to to an + HTTP/HTTPS url with port 80/443 explicitly provided. (Issue #305) + +* Improved default SSL/TLS settings to avoid vulnerabilities. + (Issue #309) + +* Fixed ``urllib3.poolmanager.ProxyManager`` not retrying on connect errors. + (Issue #310) + +* Disable Nagle's Algorithm on the socket for non-proxies. A subset of requests + will send the entire HTTP request ~200 milliseconds faster; however, some of + the resulting TCP packets will be smaller. (Issue #254) + +* Increased maximum number of SubjectAltNames in ``urllib3.contrib.pyopenssl`` + from the default 64 to 1024 in a single certificate. (Issue #318) + +* Headers are now passed and stored as a custom + ``urllib3.collections_.HTTPHeaderDict`` object rather than a plain ``dict``. + (Issue #329, #333) + +* Headers no longer lose their case on Python 3. (Issue #236) + +* ``urllib3.contrib.pyopenssl`` now uses the operating system's default CA + certificates on inject. (Issue #332) + +* Requests with ``retries=False`` will immediately raise any exceptions without + wrapping them in ``MaxRetryError``. (Issue #348) + +* Fixed open socket leak with SSL-related failures. (Issue #344, #348) + + +1.7.1 (2013-09-25) +------------------ + +* Added granular timeout support with new ``urllib3.util.Timeout`` class. + (Issue #231) + +* Fixed Python 3.4 support. (Issue #238) + + +1.7 (2013-08-14) +---------------- + +* More exceptions are now pickle-able, with tests. (Issue #174) + +* Fixed redirecting with relative URLs in Location header. (Issue #178) + +* Support for relative urls in ``Location: ...`` header. (Issue #179) + +* ``urllib3.response.HTTPResponse`` now inherits from ``io.IOBase`` for bonus + file-like functionality. (Issue #187) + +* Passing ``assert_hostname=False`` when creating a HTTPSConnectionPool will + skip hostname verification for SSL connections. (Issue #194) + +* New method ``urllib3.response.HTTPResponse.stream(...)`` which acts as a + generator wrapped around ``.read(...)``. (Issue #198) + +* IPv6 url parsing enforces brackets around the hostname. (Issue #199) + +* Fixed thread race condition in + ``urllib3.poolmanager.PoolManager.connection_from_host(...)`` (Issue #204) + +* ``ProxyManager`` requests now include non-default port in ``Host: ...`` + header. (Issue #217) + +* Added HTTPS proxy support in ``ProxyManager``. (Issue #170 #139) + +* New ``RequestField`` object can be passed to the ``fields=...`` param which + can specify headers. (Issue #220) + +* Raise ``urllib3.exceptions.ProxyError`` when connecting to proxy fails. + (Issue #221) + +* Use international headers when posting file names. (Issue #119) + +* Improved IPv6 support. (Issue #203) + + +1.6 (2013-04-25) +---------------- + +* Contrib: Optional SNI support for Py2 using PyOpenSSL. (Issue #156) + +* ``ProxyManager`` automatically adds ``Host: ...`` header if not given. + +* Improved SSL-related code. ``cert_req`` now optionally takes a string like + "REQUIRED" or "NONE". Same with ``ssl_version`` takes strings like "SSLv23" + The string values reflect the suffix of the respective constant variable. + (Issue #130) + +* Vendored ``socksipy`` now based on Anorov's fork which handles unexpectedly + closed proxy connections and larger read buffers. (Issue #135) + +* Ensure the connection is closed if no data is received, fixes connection leak + on some platforms. (Issue #133) + +* Added SNI support for SSL/TLS connections on Py32+. (Issue #89) + +* Tests fixed to be compatible with Py26 again. (Issue #125) + +* Added ability to choose SSL version by passing an ``ssl.PROTOCOL_*`` constant + to the ``ssl_version`` parameter of ``HTTPSConnectionPool``. (Issue #109) + +* Allow an explicit content type to be specified when encoding file fields. + (Issue #126) + +* Exceptions are now pickleable, with tests. (Issue #101) + +* Fixed default headers not getting passed in some cases. (Issue #99) + +* Treat "content-encoding" header value as case-insensitive, per RFC 2616 + Section 3.5. (Issue #110) + +* "Connection Refused" SocketErrors will get retried rather than raised. + (Issue #92) + +* Updated vendored ``six``, no longer overrides the global ``six`` module + namespace. (Issue #113) + +* ``urllib3.exceptions.MaxRetryError`` contains a ``reason`` property holding + the exception that prompted the final retry. If ``reason is None`` then it + was due to a redirect. (Issue #92, #114) + +* Fixed ``PoolManager.urlopen()`` from not redirecting more than once. + (Issue #149) + +* Don't assume ``Content-Type: text/plain`` for multi-part encoding parameters + that are not files. (Issue #111) + +* Pass `strict` param down to ``httplib.HTTPConnection``. (Issue #122) + +* Added mechanism to verify SSL certificates by fingerprint (md5, sha1) or + against an arbitrary hostname (when connecting by IP or for misconfigured + servers). (Issue #140) + +* Streaming decompression support. (Issue #159) + + +1.5 (2012-08-02) +---------------- + +* Added ``urllib3.add_stderr_logger()`` for quickly enabling STDERR debug + logging in urllib3. + +* Native full URL parsing (including auth, path, query, fragment) available in + ``urllib3.util.parse_url(url)``. + +* Built-in redirect will switch method to 'GET' if status code is 303. + (Issue #11) + +* ``urllib3.PoolManager`` strips the scheme and host before sending the request + uri. (Issue #8) + +* New ``urllib3.exceptions.DecodeError`` exception for when automatic decoding, + based on the Content-Type header, fails. + +* Fixed bug with pool depletion and leaking connections (Issue #76). Added + explicit connection closing on pool eviction. Added + ``urllib3.PoolManager.clear()``. + +* 99% -> 100% unit test coverage. + + +1.4 (2012-06-16) +---------------- + +* Minor AppEngine-related fixes. + +* Switched from ``mimetools.choose_boundary`` to ``uuid.uuid4()``. + +* Improved url parsing. (Issue #73) + +* IPv6 url support. (Issue #72) + + +1.3 (2012-03-25) +---------------- + +* Removed pre-1.0 deprecated API. + +* Refactored helpers into a ``urllib3.util`` submodule. + +* Fixed multipart encoding to support list-of-tuples for keys with multiple + values. (Issue #48) + +* Fixed multiple Set-Cookie headers in response not getting merged properly in + Python 3. (Issue #53) + +* AppEngine support with Py27. (Issue #61) + +* Minor ``encode_multipart_formdata`` fixes related to Python 3 strings vs + bytes. + + +1.2.2 (2012-02-06) +------------------ + +* Fixed packaging bug of not shipping ``test-requirements.txt``. (Issue #47) + + +1.2.1 (2012-02-05) +------------------ + +* Fixed another bug related to when ``ssl`` module is not available. (Issue #41) + +* Location parsing errors now raise ``urllib3.exceptions.LocationParseError`` + which inherits from ``ValueError``. + + +1.2 (2012-01-29) +---------------- + +* Added Python 3 support (tested on 3.2.2) + +* Dropped Python 2.5 support (tested on 2.6.7, 2.7.2) + +* Use ``select.poll`` instead of ``select.select`` for platforms that support + it. + +* Use ``Queue.LifoQueue`` instead of ``Queue.Queue`` for more aggressive + connection reusing. Configurable by overriding ``ConnectionPool.QueueCls``. + +* Fixed ``ImportError`` during install when ``ssl`` module is not available. + (Issue #41) + +* Fixed ``PoolManager`` redirects between schemes (such as HTTP -> HTTPS) not + completing properly. (Issue #28, uncovered by Issue #10 in v1.1) + +* Ported ``dummyserver`` to use ``tornado`` instead of ``webob`` + + ``eventlet``. Removed extraneous unsupported dummyserver testing backends. + Added socket-level tests. + +* More tests. Achievement Unlocked: 99% Coverage. + + +1.1 (2012-01-07) +---------------- + +* Refactored ``dummyserver`` to its own root namespace module (used for + testing). + +* Added hostname verification for ``VerifiedHTTPSConnection`` by vendoring in + Py32's ``ssl_match_hostname``. (Issue #25) + +* Fixed cross-host HTTP redirects when using ``PoolManager``. (Issue #10) + +* Fixed ``decode_content`` being ignored when set through ``urlopen``. (Issue + #27) + +* Fixed timeout-related bugs. (Issues #17, #23) + + +1.0.2 (2011-11-04) +------------------ + +* Fixed typo in ``VerifiedHTTPSConnection`` which would only present as a bug if + you're using the object manually. (Thanks pyos) + +* Made RecentlyUsedContainer (and consequently PoolManager) more thread-safe by + wrapping the access log in a mutex. (Thanks @christer) + +* Made RecentlyUsedContainer more dict-like (corrected ``__delitem__`` and + ``__getitem__`` behaviour), with tests. Shouldn't affect core urllib3 code. + + +1.0.1 (2011-10-10) +------------------ + +* Fixed a bug where the same connection would get returned into the pool twice, + causing extraneous "HttpConnectionPool is full" log warnings. + + +1.0 (2011-10-08) +---------------- + +* Added ``PoolManager`` with LRU expiration of connections (tested and + documented). +* Added ``ProxyManager`` (needs tests, docs, and confirmation that it works + with HTTPS proxies). +* Added optional partial-read support for responses when + ``preload_content=False``. You can now make requests and just read the headers + without loading the content. +* Made response decoding optional (default on, same as before). +* Added optional explicit boundary string for ``encode_multipart_formdata``. +* Convenience request methods are now inherited from ``RequestMethods``. Old + helpers like ``get_url`` and ``post_url`` should be abandoned in favour of + the new ``request(method, url, ...)``. +* Refactored code to be even more decoupled, reusable, and extendable. +* License header added to ``.py`` files. +* Embiggened the documentation: Lots of Sphinx-friendly docstrings in the code + and docs in ``docs/`` and on https://urllib3.readthedocs.io/. +* Embettered all the things! +* Started writing this file. + + +0.4.1 (2011-07-17) +------------------ + +* Minor bug fixes, code cleanup. + + +0.4 (2011-03-01) +---------------- + +* Better unicode support. +* Added ``VerifiedHTTPSConnection``. +* Added ``NTLMConnectionPool`` in contrib. +* Minor improvements. + + +0.3.1 (2010-07-13) +------------------ + +* Added ``assert_host_name`` optional parameter. Now compatible with proxies. + + +0.3 (2009-12-10) +---------------- + +* Added HTTPS support. +* Minor bug fixes. +* Refactored, broken backwards compatibility with 0.2. +* API to be treated as stable from this version forward. + + +0.2 (2008-11-17) +---------------- + +* Added unit tests. +* Bug fixes. + + +0.1 (2008-11-16) +---------------- + +* First release. + + diff --git a/python/urllib3-1.26.7.dist-info/RECORD b/python/urllib3-1.26.7.dist-info/RECORD new file mode 100644 index 0000000..0b93428 --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/RECORD @@ -0,0 +1,85 @@ +urllib3-1.26.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +urllib3-1.26.7.dist-info/LICENSE.txt,sha256=w3vxhuJ8-dvpYZ5V7f486nswCRzrPaY8fay-Dm13kHs,1115 +urllib3-1.26.7.dist-info/METADATA,sha256=4irbe-wnXWbnPZ0Qq9aWaCQ7cDiPP0GxMmlg01Rz3ag,44515 +urllib3-1.26.7.dist-info/RECORD,, +urllib3-1.26.7.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3-1.26.7.dist-info/WHEEL,sha256=WzZ8cwjh8l0jtULNjYq1Hpr-WCqCRgPr--TX4P5I1Wo,110 +urllib3-1.26.7.dist-info/top_level.txt,sha256=EMiXL2sKrTcmrMxIHTqdc3ET54pQI2Y072LexFEemvo,8 +urllib3/__init__.py,sha256=j3yzHIbmW7CS-IKQJ9-PPQf_YKO8EOAey_rMW0UR7us,2763 +urllib3/__pycache__/__init__.cpython-37.pyc,, +urllib3/__pycache__/_collections.cpython-37.pyc,, +urllib3/__pycache__/_version.cpython-37.pyc,, +urllib3/__pycache__/connection.cpython-37.pyc,, +urllib3/__pycache__/connectionpool.cpython-37.pyc,, +urllib3/__pycache__/exceptions.cpython-37.pyc,, +urllib3/__pycache__/fields.cpython-37.pyc,, +urllib3/__pycache__/filepost.cpython-37.pyc,, +urllib3/__pycache__/poolmanager.cpython-37.pyc,, +urllib3/__pycache__/request.cpython-37.pyc,, +urllib3/__pycache__/response.cpython-37.pyc,, +urllib3/_collections.py,sha256=Rp1mVyBgc_UlAcp6M3at1skJBXR5J43NawRTvW2g_XY,10811 +urllib3/_version.py,sha256=CA4bKbKLwUBfKitbVR-44Whe53HWyInIVElDQQniAJU,63 +urllib3/connection.py,sha256=8TiEbQrJMgySqOllKNeX5tMv8nluKRjNj5j9hyzS6x0,20080 +urllib3/connectionpool.py,sha256=FQoodlNAP1KeUi4htGdl5TJEvKL5LWisCbmFNewxRpg,37587 +urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/contrib/__pycache__/__init__.cpython-37.pyc,, +urllib3/contrib/__pycache__/_appengine_environ.cpython-37.pyc,, +urllib3/contrib/__pycache__/appengine.cpython-37.pyc,, +urllib3/contrib/__pycache__/ntlmpool.cpython-37.pyc,, +urllib3/contrib/__pycache__/pyopenssl.cpython-37.pyc,, +urllib3/contrib/__pycache__/securetransport.cpython-37.pyc,, +urllib3/contrib/__pycache__/socks.cpython-37.pyc,, +urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957 +urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/contrib/_securetransport/__pycache__/__init__.cpython-37.pyc,, +urllib3/contrib/_securetransport/__pycache__/bindings.cpython-37.pyc,, +urllib3/contrib/_securetransport/__pycache__/low_level.cpython-37.pyc,, +urllib3/contrib/_securetransport/bindings.py,sha256=E1_7ScsgOchfxneozbAueK7ziCwF35fna4DuDCYJ9_o,17637 +urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922 +urllib3/contrib/appengine.py,sha256=jz515jZYBDFTnhR4zqfeaCo6JdDgAQqYbqzHK9sDkfw,11010 +urllib3/contrib/ntlmpool.py,sha256=ej9gGvfAb2Gt00lafFp45SIoRz-QwrQ4WChm6gQmAlM,4538 +urllib3/contrib/pyopenssl.py,sha256=YIMyTiXiLPV_QfFw3PjZ31mGqJmM5EzxIjhSLxZ7VUM,16874 +urllib3/contrib/securetransport.py,sha256=izdx43gFoUGFSgxasZlOCL42FaM4vSsAVTmhO0EH1vM,34417 +urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097 +urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217 +urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579 +urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440 +urllib3/packages/__init__.py,sha256=h4BLhD4tLaBx1adaDtKXfupsgqY0wWLXb_f1_yVlV6A,108 +urllib3/packages/__pycache__/__init__.cpython-37.pyc,, +urllib3/packages/__pycache__/six.cpython-37.pyc,, +urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/packages/backports/__pycache__/__init__.cpython-37.pyc,, +urllib3/packages/backports/__pycache__/makefile.cpython-37.pyc,, +urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417 +urllib3/packages/six.py,sha256=1LVW7ljqRirFlfExjwl-v1B7vSAUNTmzGMs-qays2zg,34666 +urllib3/packages/ssl_match_hostname/__init__.py,sha256=ZVMwCkHx-py8ERsxxM3Il-MiREZktV-8iLBmCfRRHI4,927 +urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc,, +urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc,, +urllib3/packages/ssl_match_hostname/_implementation.py,sha256=6dZ-q074g7XhsJ27MFCgkct8iVNZB3sMZvKhf-KUVy0,5679 +urllib3/poolmanager.py,sha256=whzlX6UTEgODMOCy0ZDMUONRBCz5wyIM8Z9opXAY-Lk,19763 +urllib3/request.py,sha256=ZFSIqX0C6WizixecChZ3_okyu7BEv0lZu1VT0s6h4SM,5985 +urllib3/response.py,sha256=hGhGBh7TkEkh_IQg5C1W_xuPNrgIKv5BUXPyE-q0LuE,28203 +urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155 +urllib3/util/__pycache__/__init__.cpython-37.pyc,, +urllib3/util/__pycache__/connection.cpython-37.pyc,, +urllib3/util/__pycache__/proxy.cpython-37.pyc,, +urllib3/util/__pycache__/queue.cpython-37.pyc,, +urllib3/util/__pycache__/request.cpython-37.pyc,, +urllib3/util/__pycache__/response.cpython-37.pyc,, +urllib3/util/__pycache__/retry.cpython-37.pyc,, +urllib3/util/__pycache__/ssl_.cpython-37.pyc,, +urllib3/util/__pycache__/ssltransport.cpython-37.pyc,, +urllib3/util/__pycache__/timeout.cpython-37.pyc,, +urllib3/util/__pycache__/url.cpython-37.pyc,, +urllib3/util/__pycache__/wait.cpython-37.pyc,, +urllib3/util/connection.py,sha256=Z9JufD13VNcga6RTW1wRIULbWdxsPE0WCUi5VTebALA,4908 +urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605 +urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498 +urllib3/util/request.py,sha256=NnzaEKQ1Pauw5MFMV6HmgEMHITf0Aua9fQuzi2uZzGc,4123 +urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510 +urllib3/util/retry.py,sha256=tOWfZpLsuc7Vbk5nWpMwkHdMoXCp90IAvH4xtjSDRqQ,21391 +urllib3/util/ssl_.py,sha256=c0sYiSC6272r6uPkxQpo5rYPP9QC1eR6oI7004gYqZo,17165 +urllib3/util/ssltransport.py,sha256=3bLBqYPryT9UMGbx5iRgMgb2sj7VEKp5pmRD1g8d6VI,6907 +urllib3/util/timeout.py,sha256=QSbBUNOB9yh6AnDn61SrLQ0hg5oz0I9-uXEG91AJuIg,10003 +urllib3/util/url.py,sha256=au9jkUMnVr9Qp_9kg4HfZx9q9ur6yXQ4u5M17In-UKY,14030 +urllib3/util/wait.py,sha256=3MUKRSAUJDB2tgco7qRUskW0zXGAWYvRRE4Q1_6xlLs,5404 diff --git a/python/urllib3-1.26.7.dist-info/REQUESTED b/python/urllib3-1.26.7.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/python/urllib3-1.26.7.dist-info/WHEEL b/python/urllib3-1.26.7.dist-info/WHEEL new file mode 100644 index 0000000..b733a60 --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/python/urllib3-1.26.7.dist-info/top_level.txt b/python/urllib3-1.26.7.dist-info/top_level.txt new file mode 100644 index 0000000..a42590b --- /dev/null +++ b/python/urllib3-1.26.7.dist-info/top_level.txt @@ -0,0 +1 @@ +urllib3 diff --git a/python/urllib3/__init__.pyc b/python/urllib3/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ae56424e9e7b813a7937adeb3325daff31eb4c3 GIT binary patch literal 2130 zcmZ`)OK%)S5T4oD_paY|oF@zk1}`|vAt0nELV55=q{K3@Bc#F7sJ-309;bU|)7@id zEr$z;8~?#R@>}=^bLEsXH%@%jyPFsyX4JJ+HPzMCRbSQKpP6ZTc>Xd!u|L55Ny7B0 zfVqoh?)sj`y~yJ}FG*jOqLNR1AcH7yzvZZm-?9u;C92?Cg;!-&)uNi?YqG8yQN!_d z*;K8lrP@(j%|tU!*O0SnE}C1_4IXTJ zoh!$pxizx;SsFgv+1UzZvZt9Ig-40q5AD7djNde@FT!4yrlMyP7!I>cCh1@!>?cw{ zGBz~%aF}Vk5#~ndu&)!5ayi-vS;|9|Y0-R5CiY3x*|5y1o>bS2n73W&Q-6fIs zGA?43OPdUtwsAkxiZjdLyhZMwu#^piF4|i4+)ioqX*NL=y$RPnG)8UIe={=XD5OE`{kcHb8s8bU>gf;^V zML51nH+*J9KbN%8`Qc(O9}KXs+jKJ0o$J)NE&F3cg{*IJ)Wm&ayUy@IdzWk#-ZH~*G#8T)JTFs(Lj|SyZjgR zI3~|=T+ICIZbjP&`z?^iEFvr#Z`mfIog|>B!{{+ZS5(|>0nv(!wy2IzE^3ote)sfs zlsCW90cWwTQ%>eEliB*uvp7)Zz@^;nNtG061DWn@fl zAR4^_@;#O*fp}#ncWxH7IObUo6>7$DKL>_TElno+0+Dqh0Z8F#Y73NfGLLkX#M!rV zhKA$0K6SlUr$I?`()C=?A{#ZHFy|VX8nCGA$uMz!9kp|t$gUPIa)I5{r%`jF!d!7} zKd~VsW4^c{5Y?Rx66pGyF2!=pc#R8Ul**(hFs>lr+DuAZbrqiVMIu)ziptmD+<*3+ ztGe!xVs2aXa-G=G598@ktZe6d2lzj@C+#M%Jyowhf@4^UEy*mJR82oDY;Qh#k{E;H zPE{?MofE;;;asf<$C?UO)bFT_=Tdw{={KK)l>K&42RPfMHlVpYS;XTlm3_QHd44gN MT`JWUOYRN+0nDji$N&HU literal 0 HcmV?d00001 diff --git a/python/urllib3/_collections.pyc b/python/urllib3/_collections.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a43f1ab6b477d4d4a5c2e017a4a83c776c3b5008 GIT binary patch literal 10659 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/_version.pyc b/python/urllib3/_version.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9891b8d73c9a4d3cc5ebfe4855665bf7e6f58357 GIT binary patch literal 162 zcmZ?b<>g`kg3rZuiS|JHF^B^Lj6jA15EpX*i4=w?h7`tN22G|aHbXrlGd*)ZO~zZ? z@$qG;Ma7x&Uw>WHa^HWN5Qtdz{eFkC%0P(shq5uE@ literal 0 HcmV?d00001 diff --git a/python/urllib3/connection.pyc b/python/urllib3/connection.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d3a1381eaee7a4f2556be11bce6238ece0d3d3e9 GIT binary patch literal 13735 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

1Rt8VjRP+*q;*hGke->nvw*W5bF+fd zK2$bE))=@&R(tQa!b}!$BmVXo?d~WypzO zU)Pu)w1ybp3w4ksDo^I-epOaWD}H^X3I>I!%2 zI;kV_bDh_dY^UdkA^}W*0&fu=jT~??WFN zz)Eh9G63$6NiDDsW*LH~kpAH~<7?EP`#X%krrK}y?4-fW79`<7il`gikp2~{D{?rk zEJ2$9>jyAW%j3=b_=asi^fvSBy5_uq@(M5pWGxA+lFpZ{O7YeJrI3B`rv zdD>^8xR8=!57eaK_!D;dQx=k~|Clw&*579B4_N#m3v#*m4vRlyK@KY*KFj)_vyfRL z9V|Ttd%zPZ?g-xh0yFvH*dW-eY1RR z_WJZ|Hy6qaH(s5+_1c2;qr^AZ?*E&Evc%UODWylgLh;PFdMi5i;5pdm7#RM#Bbt4ZMfp_F(q`IF) z3R_1C`)-uNKJ3S~<8WqSQ|{;tsCM*n;yv`V@Ec5JN3L#LZ@v9a`-MUKz^a8oN2v~? zvo>JwuC!;W7{*QCpkPBGiKsTuQHT>*xj4k)APPjl+~pt{sYaYhr%ICU3$no^u3$9u zv23ev!i>t1ngdPZ1rE4}4oS-UHQ;~~F~fxj7Nk9-Ixs=lCqSE$;4AFV{lga_j47}! zWD+Lm^lNkN(eUu#WY^HZu2iuPodzcEQ@}D_oagKuPf=yKaMwJb4&?=0-Uy1pXpa2X z0zDYM)~eSxx<;bgXip-kAkAi&GCba7!Vr_0`+lDpr+ZkZI0pbS{xNW5UNS=;Nd2{b z5B)B3t)wwRNwB3b!~YSewrI2=q{V%R-$8*`qPvWfKg;5m`J@S3GL85)JLoJv%YtKx zD<}|Ji~dzW#zsrWyN^ZuBSevB-n=61IRwynv^k8VT;kWnKq({BXHu&ODeWlFf>igP z8st9~AOa}=?_!qzLy({D9ybo3hj@~@_kR`gzXXCbE!6OJy8mjFL+2o45I~UsmEnmo zIa~L%y2LmA`sklDyzoE+k1vGslh$16NPmYo+rHaul4LI#fZ^tvBh!#!BJU`_P0Q`l zA_^USX%tGPF*wOd7N<}IX&7)ffe83a63>6hH}A3dT^7I3J}{>0P5MKx@G0TSeLQn<}_UVf#Db?9s^NLfcp?W nj_xD4v&X^22!h5&I-_M`c`c)leMy-c`4Sx02?R$IR2}~dvT{^g literal 0 HcmV?d00001 diff --git a/python/urllib3/connectionpool.pyc b/python/urllib3/connectionpool.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb62288b5e9391bb196d9da17b96aaffb37657b5 GIT binary patch literal 24631 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/__init__.pyc b/python/urllib3/contrib/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df02409eb26aeb0d15b24ae4b8116db45497fb6b GIT binary patch literal 148 zcmZ?b<>g`kg3rZui6Hthh=2h`Aj1KOi&=m~3PUi1CZpd2pS5lOjq#qxjnU`4-AFo$X Vd5gm)H$SB`C)EyQ>}Mcm005qvB*g## literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/_appengine_environ.pyc b/python/urllib3/contrib/_appengine_environ.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb191f5355f348a70f7f2ddb70d704798861e4a8 GIT binary patch literal 1357 zcmbtU&u`O85MJA9V%+vYD};oE&)ZPmeq+3-ZF|947y>nE=*RbBCoQ%uF*p_Yjj58;q>Su(=GbDH{Z74-Ux6$st;_b zL7-2WrMmsb&?(KP{Jt;1n-PEcW@H(uCIYa0Zc= z*4E};niiFsL2sheq{3dIrs)ZnDX7Av#!_9mhV(dhkI<}bK7ZaHY&{d;c7OPyKg_nDJ=%G>IqWy=aOEM+u~N0`_q5y6 z7wDdLv)M!wv`s=qQvr^7F-JAz@PnYs@m1ASIHc%Z+S(|%;>p1 z^&jr$MQ2V%>XcX=(GSid%6K Hx8wGAUcyF{ literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/_securetransport/__init__.pyc b/python/urllib3/contrib/_securetransport/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec5a27f49f8a8d96c75f6220317bd743de5ba606 GIT binary patch literal 165 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/_securetransport/low_level.pyc b/python/urllib3/contrib/_securetransport/low_level.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26b3ce8d04bf7edfcc8e442194732db761c3348c GIT binary patch literal 8970 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 F^S}HSXzc(1 literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/appengine.pyc b/python/urllib3/contrib/appengine.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfd7e65aebfec9f8e66a147c5c4719c5ba3baa72 GIT binary patch literal 8105 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/pyopenssl.pyc b/python/urllib3/contrib/pyopenssl.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9585b6b88366fc1f11c3d86a686299f2a5138d53 GIT binary patch literal 15351 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

tNZiP{q~YfYr1 zu%%o!RMV+THjGOSYN*G{@B~Q{gmBGLl%M9FzMhgi7`aE;pD0kWD*n`2?H-9Ih%>K5qinVrFZLDX;37*`p)%vs#o9TqP71S?33<2?$VVuGt zitd|8fr&E2LX_#E$aCW@cFn6uMMe(Bjas?BqRJosXMC<*eBQZs^oTiMZe_h(ZS=2~ zMIRUQkqAs<5uiUDi0EY>qyFcpJCdHn@9)ZwGfH$z@043vagMW^mX;mf*k32#$MI~K zXFp_qb9luI{fDfXE*`XqT+7Ig$vpLX{kNQE0*E4(7cs;1_RM`^4G(;Fv?7^CHPPms zT~ii_1}sZG>Uz#ZSA>Hd;~qhRnE|C zMf1jy%6>23q($S$PS5uf)I7y`X#zFw^R|;he6O&;rK+M{S7X-^9f#nv5^A)t!LRFy^B4W z8(C=YcXl&-IZ<+%-Hgc9_1)}Vem5g>lieF)3SxU3d8{l`q@vIi6dG#W7)Bc4Cs7(8 z7}*Bm9;XHbASWU(fLiM>he*vbtgL33Z`lKler zjVHGr8Nu=0EOI*xy}R<-8OPERLSfnGA7$dPqgP>zAO5*x9XonO5l;0~Tvz}s<0Uzn zqn;S)e*yN0%5kCBhNabh~XGOp9)^KAP_XdR5{e zNI27G$R1%)ErjWk{ps8uAD-&3)NMABHlwuyU`j|6hc!%98rw%E-iEiZG#M`!{a1qM zO*Cla$1PYyY#70T9WGJ+Z5#s3{F`lNts`t@Uqukb1*D^Kr015f@AlY%m{ULJfEjO! z8xDgW>}a}-SUyCq)zg|@k2oUw_jyH&q4!z*YZgCeArjdusD32=+2bgZKr^2mNsnc4 zq!CDK=hjZygrG~P zEF7AZe>p*r6k640Aaw3|NKZLfbDmFPPxPP3qW*EBx*42!cYUO^EK-JX50n01Cfn|&}p_qp7J zqw@UT{iXSP3pej}-`$^`eGtEUF#8)1=O4`8abAhPo4YxG*PWlk_b$m?)}VjNM$-64 zlpxF?$6ojK@3HNtEH1D($Kov(=TU@12#fB5gFs}C59e8&U_l!w+hS$=ha?2UY!vTD z8JDj~K-m{y9wl61{zmj)8y{W)na>n=+8lw77~vnZ#JD+TolN)LNhX_{&hpSEq{*k! xY5IC&scF#02cGb6#KM*j1d91oA(bCRQfNB=z5Msbf6K^ct&uF=q{e^q{{knFi z-SnxVB=)vu4QrC@0-LcX8{`ILLT!@CF0#l1lg%dCB%5S%0rnw5fM9{3^0Gi)GB5j* z3xa*fuFB)v4RL{^!5{fAPlfaKXUuzj@!Se*9+*l5@_=$vJQ33zB6u(@0_qs?3}bt%Cmgq)Xr(^ z^v)UU%+52`Gds^(&+eSH&h9*CJ(n={N6~Ack>5FIol6+^jOK;3;Xc1zQ2#Yy@Sl^i z&S8vV!`ykndLdzaU^J8O8&1g?-bh;KowD_!JG%9vbpho|TQ6I$xWfk*pBUDJTRM0Z z=hvJOYtlWrbqU85j@NO#f#WicD>$y=_!5pcaeNuaTR7gv@f94`aC{ZVbsS&A@eYn( z!0|4QX&g6j%;30*V;098j$1fxrS-RpYNT6CA(f;0L! z`FTS92fXN@HVMRc*7Cygm3SLZ;#8{SMlaO z9^u=2;oEU}%h^_Vgm2%!Za62L()SGO1LveOjI-sOa!%v?E$58$49*|ACl0>te(OoX z`VOva_d{HLbjxs_bz=t&-F7{5w^8*`Z|738>euhP=IX+VS-oGaH>zt5*YsO)2Ya5YJhRnA zyV~N4`JnD^w)T9}-*gLjWwzE$4A9!ytv6gXWy%N`q}nv=JDg0l>6`0r)yF)|HMdq} z8?-f-_R&w%T&mW#s~c`%zUjCRP0p@$zuw&71W>!R zbl+8z7{!s!9Cy9C*YM57UAMWivQY3htANI4ebLrB$-Tfs!?=^3JOI;!<=M%91CD@0)5 zt?zObgh92@XgzQNJT7vuq3L3ev6&&hgiY#A-^C_Ln>CJuO{ll_Jb|+HVeDhHCzKc0KRg4E?er?T1{Wo*MLLLUc;R-Zvap0*a{5oZIVDZ$4Rzqy0Q>% zh75*j?ErTiK|S`jt~( z&}-RY-HQ{2!tLtr?mnpitA8Qf^jgc2t*V-9RnM;~r|tn_AUco84bmY{rP6w949CZ?eF@n0(g+Bs{JW*x@o#i@Ec%^>9}hG*9ZkS>pQZ`YmI7Kc7XJT zrPUkZ=1-Y(Ev2bixmB;#oQyUcv&7c!H5{-D%%|zq9S}=|q_q}ijJvg#ziF=RM?4KQ z(WuwlCU%1y1TUibzTyGuQ&Y0COKXi*Z9CeAnbz*U0{8LFi?s>!${Uy8yoBP*-Bp{{ ziOKIiSOWy6ny&wj-o7QET-_6>VNt{g47Y)8^Id1sTvx8J(As8IZMaxf3p3g`cL8UD zdCjlZn}kSJ_P2&PXxO7GueI(!0A|S&s-D-X)vM?eJgv6318M?WM;Gg0%bt0WyLEmg zY;k^KQo6%nj$3U+Boe)j5ghCfJ_#u9 z?oSfe>+3wbvc%oJwMO0BoHT(_q}DwjH9bC*9nn+6w!97@=D9#A^iszfLY#|c8FJJX zVTE~wAd|5lY_@iYpE9keKIwRUPc<>LMh~Y25X#6xaKf<2Y{(f2av+ma=h}%9B*axL zu(}3}l67fZ058R~WebD@$z=3yhp)U%a5W;Q1|Y_+H>Ep1j+Ta%?yZ5$ntmPoK^eet z2bT;UBJ;RCYpyKLt=^kno;BxJ%%$bU_vUZT-Zaloui*atqE9T;|bT@xzX<>dA&*v*M3wLkMS8ka%(6+L;YA(#* znO{Z6tBd9;1`WHLpGDg_^Umz@%x&~OePe!Me)R*rZ*%jj74|*1xNJ_FOVi7%^D}oB zrkBm7yUR<9E3=r!O>|wEugooDq}e;OmDMSXjA!QTd$=)IZci^Pa5$OV^j)lEnR7K~ z7MDI)p1*Z_)x5p9aB~(9Z_Hwb(>E4o^>A3=%)<2iok{cN^quKjoaM5)h@SL1Syj)} zymxz+k2&r%{?Dw=FIKpunZ?TLGHxfa;^o!2`Mvp-*-3MHd42^`mTAo`FJc&i7_Bf0 zIzrpZtnP{67l6gPgenB!T>zkOPB&+#7tklRtd8* ziEJ=xgN3-tx0@~7RjQ?eXYIAUdc(2(hG*|Jx0|g8O}kdLt5Ea&VBD^;a#gA7zP+wm zJNB--6P&bbV9&m5*Vake%?({4IAu3lRmZM1>flSdB^X}4863BLms%nuguU(V%R{WG zXp?QV)<~GRJ+=lVkwjrrb>*wz_#vV!7y<)Fa=7X_$oM&h5F3*ApDl1DMf!{O~EoUkIU;8?d(2t{?4FP~!(Lrz~k&u7O``~i-qSD(UD{)TbTk0Hp^0UvzHyH}imkNar?+z3 z1=#Hu62_xa!f4;_l(zDZhC1-7Z0GTOyfegcx3NZC=eUmRhCCbHhQ05V`n70g{5%QFUN`G#aGDuGPyYpi3ax%4%d=L5YGg0z(2!SgUbR24J;77eQ6> zPSK^IziqoP{V3rpiVVD+_v<^T0&9EXBp5V^stJY&&A?Xfx)-E2TwlQp0Okgc4J4fh zox=`o1X>crWmS{jsu zzgHax`k)u&m0PB zq3zY%Zjf+$Xq@C7lm)I3lNvGp5YM~{3L}$Fq!R_m@Ix&Vf*@Su*J=P+IK|UHYjPGXTX!Qxf6Nn?CRy}|p-EUvJ)%Hm5b-b67` zQeWovTP)sY@f8-=P*~-)ec$zLxEQ4OAWafgU*&raB;ET~L`PVv`USr0N=u=n5#2f_ zC5R5gyNQYeq?9NP5)()ymmU`a8Uq1=ke()>IrLLwXVH(u^eztXCn#LQN;rmu-Ux>8X(qTLa;5!a!P)7h`AhWG!W>wu zH(&^unpGj6HGJv7PNr;vJAw*%XoXfHOr8|59WdgAp)RjtwQOL13&&5e%n1~&fE{?fk2_8N6+{&?mF&EW7BP=H?< zHo`b4p$4FY(tt80PtsCmq|8b=)G@Y6I;oBg_c8~EO;0;UYu~mFJX%C z%!m@yGUs1k6tySrX+XJxKL9ZWc)>!C59>z~6&^JBdN4$+AZSlu+}Gfo#JgN;DQGP| z9IbFi?^ZWpq6!kmotV{is7~^19h_L>9~ZewPh|CetM0(z2E((-PP_+@@7hU(7zUh( zaX*Z)uo-{z^s;*`Kq(p=xL<=Ki|8Lxlt!rTaFvOq#;%OK!QB#eE6B$KJk2KIC53VW zoe&CDOMOH<5zDHO%}|dhg9Wyq8^DkLHZhuz#cxZ$V155#~@ zkp`M%I^pvtsYgja+eto7fSNRte5n^nR$SjR_jYB?0yJPnt-cF4s0a7_KKze5a3jvM z9U8t7fWU7;M;U=hJ8X*P>eS8Ix#_zLtM<(N5?nYd5*BE{Ck$v~i*x`CgFpqBC{0&4 zcUn!&ZrEQ9VG}6c^!_?6*K58KhD1zgyv+^qxKeA!=96UU!}PfGaU`V*KX`K^-s^~A z>ZO@l=t{_FLn2IYE`lbiboW*fG1xGh^d#>{T!7Qz4@RfT0q9nl_NKsSWe+MvkOJBT z!+O2;%3XNmR;+Q<0c>ZRjAS{wwx@2RxuPyOkYNGiPcP)I0=fuH&MU@Swo00C_rz$B9Si#ZMf7J#VEtNhp~q zKivUBF@_DRoyupDtQfIsL7(>Z7^uCtGrh1>A@TYx2n&ful8QoN@1>t1MFUy@864L@ zV%w#tX%|Ln2o;0;%-pg|{BbAJA+g27Si|up9a-vq_B_C$j|&8=joqdlSN@cMETgiK zraGTXBteFyWc!6fz}eq2R_Y1SSgHR#+;pJ|k~FrG>wx6`1@LG>H39n{P~Fa|NkS3A zFuk5Q32y*w@JTA#$P;j&=t9wMmz`868@&}PI{V#hq%!*%^q74D9S0V=u{Cs%gMyFU z@$&}-YCldE1fP>PMSp0kgk!jqdy=9QIVe+F_#+3S&QK?F625{^ZsgkkJKob7Z6H6` zbejyrZC2q;2UbP&c)!}HLtTUoIAz{*L7JKd8N+)3PKsTEGaj@eKZNK!AJIJaMQ^0p zZB1uCcr{{pAX>y3gi5|Dro6WvdTFqoc;)0p|$ID8&}#i(9wkPvTNo`PJ1|J=(truvR+qYyxQ!4j*F?U*J~70 zh+iRiVy+_=#(2?7-o!Cc^sQ&MAvRYz)UuHFUBm(18k)I|b#mYxu)l_YXE0*BfYBa3 zv@%Jp&=)asFcgONLLG=E0JaLA1XQf~L7FZ;QCldvTDv|RiEufuEY5rbW`2HU(WW1J zc3Ca6vlKWroXsJmCi0rFvU)8+Nydf+-*g(TmG|~)kcxnA^g^>LvMfgW#5%B2kl#TX z<9dSx2)~H%ay#68_cK!8c}&B|f%;OQKQXjvT9?7p&ZbI2k#YpFK)BuuEH^uY2F|J#o%spCGZ)bfjoTT1k5FK1{ zUA0Oi)_hrP*38;I1`s)>Hc(k@qOhKe`hZxNZq^XapXri`XT9)+uNRTjVU0yqG{LMQ zC&n6$p3R1YAyPqoi*wBIkqfCz9ZYTUQDPm2D~1i@8W{nHmJ8dg)Gr*Ajb}e5Ix;9= zz`s*Uj3osjlesJr5I!M#edNf&yHmp30t{LRi$R^OpK@yy4*U_CF=qa2j76^x1S?#_ zIMPp2uz50gmIbzD{2?FA`cc7$Uxt|G7e0fw<`+9)_)Zc6qxkT2r|6d;NZ#udozy9a z5wo|LEbR&__DYd9IZbm{jx#adYZX(!V+P8K!a z_s={wKBT?)43200v#9$FJXAxE39IMO`kahmY(3XI%ENWc^7$vmXUj4>lXb+$Rlqne zh{z(jHV>2vOQhP+9lmo*rnAKxlku z8(k+)Q2&L3%B&dZ&JedS-?X^ukz)0q{p@GIByy^q+4I*gy}jB#9#28^WbLbdS*x)^ z;@|Or9nHGon0nj3%#!HX4S!Q~*dBYm6f z>L!3&Z&s>EXSj<6sSj9un@c;bdxW$VHT6B6EOV#cJnBvLp%v<=E0BQDdKSh1ZJj5K z`X1c?0JayKE0Xs%z2|SL5f1we7W9ZHs+;N#3hP+7t}b^}t9)L<^V<=|Xn&sg3F(=$ z&S-ahxBnSl?;ws#SJ-rZEt@Pcx`PAu#-$P&{KdhX}2K|V&nfP9u3x-mxEB~8a5 zEZ`Ds;8Ad0*uhW*=w;{ITq>6;r0|T-v!hfE@GJ`j0jhd(G*lT%!m-J<;j>S)PxUJc z@yN0Lj2VcVMNAV=^|0@8jRnHnsE?^h6hTpf zfMF0USCar3j0kcT&F+W5UX}^j+kEtZ1>vF@%|l+r+(x~QTdOa6SZTqZ3`0kdPrESm z4(grDHZ?mQfsHN3f@8~r!%TA7|6AO}3mC>oW)W%2fucu2`vp+?xojartt(0GD+_Ha zJxJLEh(tJJR3$O;=u&p*f!64lP!+rky>&X&F+kRfc&|7o_5!j#-H%f+fkW4DA8C`J z$dEJ+iCBHZ9nL^VNP9<*)Qt$oi|g~?Y@#{oP!Ln-5Qupmh?$BVe+U;orXz5Oo(CXj zss}k!er_udl(afY@hYd@|8KF^GO*?f2nc%+yFl zSb+gN7y}-JzC0@F-F=t&L&T*Awo6h2WV?I)&v%eo_8I3$Oa$<)EkO_+1Gt?&%2?BL)CDp|cX~n@Pks!JuGwR(4nYjpg4!74c!x0ypqOmVDs&W4b1Q3vf9=%sql5LEIY&_#=(2G@KCP*Mkb%UjJjNM8 zazG9(MMQQ|>bLNAlyBkQNUGnHJ3#=rHmE(MD(x!(bNJbeP_S&ifhpm&)meZpzt1j0^$G^v8VO`6Lp`3Y^?}PVM>IY^=#x`xaImi?ur>^mvlWE z{V%6|`4%Q9PfJ23tO6O%Vp?BcAG`ZE8CfSbStB!Zyg^S3k_%&v#t&}5kXiDTn&u?w z*qA72Wxl8v$aJ6`)n+d_`ZgG@M?@Q1epkeXUJuENvC?ptuOr5ddSMEU&I9Ndc|j4P zW)~RCK7T}Hyn-Q&ar(o<^p~W#K$2;S(hkGN>z zU!JbSHWf+N_5mvl1na%m6k!28o(nzS{ND1^sW3X4_ZuaxmO?kK3MEUG2ZU z5(TkxQ2NB6K2&mlgbDo-(d#@e3_&f}cf#FDM4DID8m8641q8~Kr08azeGF>;v-dm4lTv>RlmZkUu8iv zPKn-3V2Fk$+Kl=&-g24hud?`v#ouJ{w^($yL9Uogq;8>@!_Im%WpY{A17qbAxncZ! zF?TWd?OZyS&1DO((JPQUhU;|hc;Q;^L@p&Qe+s|X&tikGkJoUBXiGGLz}N#vV7i)< z`ty`GX^kwaz!uq>aGR)SMhKn;VBKIyo2pN_IC4=IN&-WNDpEP2{vJ9A5-Ofo2KUsT z2r=(83hJTIL1i}UkfJ|CRPg%}V-5ApggS<5p{1;T3)ewj8+ed@K^h+n6Uc8lp$8A+_lx*2{PE!R0Whd257E~AsI zkbaeS^LSHY$`$XNVW*75r-C!$jN)8$jyYpEm+(m~)2$Lnzj_{@=$^t=**Wc;!MhQJ z{m(kj;mN3jB;kn{)EP{*{oCRyoj0q<42UzMY7Mxi;=H9nwjF-oCSPvJ$9N4!?GT)n zuK3NQLPm*v<0W|?@Gd&|n$8T{nIC-w4j4K}Kl&(4v665Lytl|8z^8iB)4;geEgP$8 zWH8tctq;G03mPA1w3nNfYElw@kj#ebL-M0U2hK^Ek91cu!nuh8yr>cTWlA5NeDLjo z1N6B2c-Q0a%h`z2L2dDnF$MMts~#Cry)i%3?{Nv@YmcrUke`sm4#Hli;0QiE>5Z{R z#`dpcnmsfxLqjJ{X_cib5d=H< z@yTmlIP}Tic!89Ul)vB&6ou+{aeoAeheB+>8uyuNpF0A!VbwmMaytaYXfZ^YjeX;O z!D41`e3G)(@O;uLsATKvK z-G9!46OWjHXr=?({4eo-t~;&6Awx+e-6ul4In<{XoQ8i6er!oq3t1X?lfUVGJszOY ze*K7bAJw*RMlljlSJ&Q_2nBw^g&sbyG5M@6nivf&@4a|NiT1=1GkUt!&)bl#B+~H5 zeSCLByFXNd+iwo^AE(kqCQO)4qw~w6tT;G{2zLDe)yP0PpZZH&ZHVyqSgn6sgCfBh zCaitHwX!dU){n%yo(7eg)J6lIW4{K|*2P($SEG?{11TL$jhNKV`_GU$)%A9D61!JA z3>ItDOjg>L4}(OXHOI|CCK6oB$aBW$%)n(XRe3D_5sJ{Ohp%p`l0<>CPO7L?X=x9_ z;e>2rNK*)GO45|~9YUmp-VD0DQ~I-#_T<3qB2Is37kwa#(efm^)Vv99Ok`d6EFb(a zrT#JAE9R+Lry>E)757N+Xno>ikQELg1}GOf2LJGtgEP3u5t*TMB%g+Eae3Nwp*U~9 z{6!1vHtWM~bfMWTtqOjk$mw)SFN(vCtGP`iX4&^B$QG!A>zf zkdi3b&5~_Q4Nx(h4$O-_IKx@!{ujKL@QI^XSVhnA$2`D^+u4`9oV-&DO|@F{ysl6cxRtm#-XxC`)fyR7b&z~ zyPLXBlx}$M;3Db?-sNCuv+7lSIJ3m1ar_X_seg*GA_npyt_S88j6FSCi*sa;Mz(;k zP&Roa=X|>D+-gk_5{>DIE8>{JAzyvL|CsX)d`+41z*lfid#8C01A_2>!aGIRv-nJL z7B@7`%)QiMKx3=$Bo9v}{76(pis~<;bFoUb%`D=Z>_hzyi+{i(rbYEncq;(WNlf_C zfGH5*p%TUC-^vJ1IW0R5WiyW)sLF(hV4S#wTs+TK)r}2&F6Xw^J@qNO{0fUf#{2-; zC1G6n7YR_lH;Q!j!JdYR$aq`tzueKPLQhu^{1t@Gair%~S1a&l{cR5ZBNl&$#c!|> z&jbBLNFed|6;(WV&Jk2YTEp+N0<{746Bhr9#lKy1Mfkhlq=^-g>nXogy~!fj5bp!6*9RI*bDe4#w0}c-$i|(;&0T=?Mf)i>Vc zEIIgV-Rkk+M^=83mAUe`>LKesywbodzZi-$H)bLzUg*xRXF1WZVa1;V>#!D=dvtf4 zVAS1Fpym$u%{83N+)3O!3? zg|mmwIs)a>Z+n`n_sBj@b0{oET9^sL+(q?^e8SW_$y|^}9XtxM`eRBh%IV7$p>de}33Au9Am*h4I*8YF^Oq@a8@r0RABI&IRaXW_eg)~xNa$^+3>1?k6{?lFOhLAmL2XOpF&!caE#e*k(8H%0&e literal 0 HcmV?d00001 diff --git a/python/urllib3/contrib/socks.pyc b/python/urllib3/contrib/socks.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b81cad8122804d07efa585684bd26fa2011f0a39 GIT binary patch literal 5518 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/packages/__init__.pyc b/python/urllib3/packages/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79d10f14f54821b6c8669c844e2d61a15b317dea GIT binary patch literal 262 zcmXv|%}N6?5KgjNETu*83B2w>d+0$BDdJhYcv}KPwu#-)$!5tULNC6Lue4WBJ$v(H zqV$9L{ur2fTCEl= Mw){lp&QdJJFQAr20RR91 literal 0 HcmV?d00001 diff --git a/python/urllib3/packages/backports/__init__.pyc b/python/urllib3/packages/backports/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c59cd2223618a0dda12a6d97dc36ce9c2902b46e GIT binary patch literal 159 zcmZ?b<>g`kg3rZui6Hthh=2h`Aj1KOi&=m~3PUi1CZpd&M4u=4F<| Y$LkeT-r}&y%}*)KNwovn@EM310Blbw761SM literal 0 HcmV?d00001 diff --git a/python/urllib3/packages/backports/makefile.pyc b/python/urllib3/packages/backports/makefile.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be7891dfae2acf18898b5444dc8cb6933e1815c3 GIT binary patch literal 1249 zcmZuwPiq@T6rb5$?XFgTaFdX0CV`p?Qu*KpLkJ;JVpBtKLX^}X1nXJNY`oTLSImr} z*o<%~3y|iyumI$7O)!g-{XPDoIdJ=XTL-V9gU}@P_jFr zW1eO?kKX==qNul0BkGuwXQ%48EXX!FI+EpR%+>nx(Gi(&IAkO(1(``s=9xMsw168~ z@d|EJ70qd(BvB<92~HI!l-x?e`7N?EM#|)bk5o6hfK<>y2b-{8dD(wzuo(Fk1!}>v z{3BR$10$r6#^*L)hq=e@7=sJUJdIO)9i8KMfNMPV7e2%GKmAVoO|%GfAbZ-EJ>`Ig zTWN%>wy5hs40N609R$2DQs5oSD_0|3KX(?9Mjkrxn7@M@6nolX!8jB@v2fu4Umqj! zv#Oo=my#ns>QMd;5k)o@9rY1-_ym?esoJlBj^J}XxQj-y3Ah0)tPlr~YY^XO8y}$c z6{T^TTH}18ZxUQ^voL4@IUxZoS}d z)c(^$L8ns?J)2~wWjx9AR9vxDs4sJX2W&!Kj7nxXpW9fa2?{>Xvx1vo4)*Lx0C_G| zmMH>2=hmumfieEln(-9){SAp5;NtJ^+1(-IuZPoWw6=GKPqJhvA-->?FnaVAm&2LJ z^DNokS^-<@+1*-IraL_~U#;MEz3imO2e2Xk3U1>NRugs)KD&oFs!+@Mmx$#z;H>S0 zpldZZ;7r^E8=YG9G!B3|H50@!D@SoGns8+N3hzNNW;wqff+Xz> ITX#+GU)W)5q5uE@ literal 0 HcmV?d00001 diff --git a/python/urllib3/packages/six.pyc b/python/urllib3/packages/six.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93ac4a688b81390fce2d916c246be0b99e3800ea GIT binary patch literal 27464 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 DHJ%S{ literal 0 HcmV?d00001 diff --git a/python/urllib3/packages/ssl_match_hostname/__init__.pyc b/python/urllib3/packages/ssl_match_hostname/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9fb83c78c4b59a39a438d288256b2c89b19dfcd GIT binary patch literal 525 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 Jrt#=({J%GgthN9E literal 0 HcmV?d00001 diff --git a/python/urllib3/request.pyc b/python/urllib3/request.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b337cc4eb0cfa56a5197a8a1e03026eea69c20c GIT binary patch literal 5509 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/response.pyc b/python/urllib3/response.pyc new file mode 100644 index 0000000000000000000000000000000000000000..712b4cc7d2a3155727020e5b56b29fcc010dd6e7 GIT binary patch literal 20499 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 Ln}btF3KRbuD6-U? literal 0 HcmV?d00001 diff --git a/python/urllib3/util/__init__.pyc b/python/urllib3/util/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a30db7ecdaf46accadb42889addffa47bd6b6da7 GIT binary patch literal 1058 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/util/proxy.pyc b/python/urllib3/util/proxy.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5161a7476885083b637613ac874d8ece93b9c8d9 GIT binary patch literal 1266 zcmYjROK%e~5MJ-AX_^8p2ztXD5JV~|Y7vzx1c<1>p$b(AmnzcASv$$L`v|r-G-%;c zuKWi$@|X6?i8D7&%y_qLERAghAfha# zZ~Og2+I`pS?RWcNC$oG!G4@lLoy|K<6K`+IBunUrqXTNhc;!8#!E7kbswA}&N^74( z4AafhQ8cc70SFwf+>Hgo18FXqK{%3GLZ?|4CoE-SAv@FgA`qn|^$xxSFNhWX2qEvWIoUA{NqVm6r0^(0Gob_WO1aG)YB9!*(z z3b$5+y0f-&9mQKFE<8ke7h>0?#O^YsG)MxSgCcgZjn-kat~H430J%-#65nT z^Lbz%?~OcavDc9iC_T_cd+(1nuWR+97 zQgZ>1WZAkrFwLsmHF#6GYFots8}%=ssyTwJ4ex`ts=<;?eA04VsDMkFcEgr;K-YG9 ryfgc5Zw>kankgI0zbkBQbZ4xP=zW$;!;H*PFRsvu6I)${1vZV(JJE7{E+6z zU)n3DUg5@xnRQ*cz)1Ucyp!yE^LAcuZ;uGXFa0h0NeTIZA6+<*oWRm=0VI($B_WYa z@|0#QWE68J<(U&Ylqj}vtBL)U7Y^PL=}K=+q^F#Pcg;gz(vKt<+`>&{ddmOkVz`pnuJ_Ab1J!X)--fmn$VL2=|gQGhd?tj!_#D5 ze6ZId7Y6RQ-oVm305!Rx8?qvTNdkYO(}0_;xJXkK*GZ9U<4Og}DzqVB#?dOB8!En& z3N8D6Bwx;?x|o%h_2(i#Jer**XEUAD>RB1ZU!rrRXHAu+$=TsSQzz+xZE{jx8doHF zQjbxF)kd#&@6}FhE&i`&WL?n}S&(b=67F`m+4&9PodB`+Gm2&H1LftL>^^I2s08QD`b;mJ{DrxL}^>8 z@KLI51RRj+5yE2x6x9RtwsHY5(WuC$J|AlQvVK1w(_RQ^asuAu%k;OsZC(1a-og+Z}h zgm1UKB0OH;MZR*HyCm%r_uA!A8P1o&)%J}qtZ37*#M+rBUl0rb{$xeob4!$Y`6H`c z7VDQ*dxPKNtNg}Sq>v8SYwkR5K83IG8tZn&P}dF5AUaK*eysG^OO%jxb}Ax0E}xErVU3Gk$h2sUbG44_ zx+oz$1$Z5J_uy6kgdwml+zF8nv^61`T-tIox?^Y?=)0V}$xX;xazP?TI~Qa^CN8%> zwkEdRo!CI1G7(DCzF=HP)$q*r?IDwFK+l92 z`Ya4yiET5Doc4S4HwmDKaM=DdES6OE0`!nN%p#;*b{_*FH~TYTd!3k{|Wq!>z}z>g4K-8Y=3 zo<&D-LeE(QYN@2#2ljKFwuU3!kE41b!!YQ4c<+P8gRLvJ=r9#@eU|9{;>Nu=gd<9z zwKRx}QblYazGe)oA*;oc+Fg#kyFrK(M z!o~=)eBZUChK#R7L&o}BQu|K+yOR05g`}ys2ob{yBr7rf zrY;v)2dahC$eCp(s2L`q&r?cjQh8>d)LZy$x_;e@)72~PloqBI|Cc3y3io~cTfTkF z#jE2iG(Y_4_#o&Ut3ZqTkaf=>`ql9)ToWCH_olhDF&w4kWe>Uo%+y^Nth)|zh(~OA z%eF&`OYa?^aV?vd@4)UZ7Ce0LcLiQkbe;k+A)K78$W16TKwsL#incYGKuzc5GH2FW zqw>UhW52a72-N6z9ZTo5)3c#YA7ph}=PwA4p;8NAdlcdL5Wn&@x$8zDUYs9Sl<@H*=mXe+hGQ_|XIB@N4)$ z*g4_$W$wbB*xUwFv;cmhvF0Q2HW-Bv>kI4Ua0&R|&w%Gp+rI?xUk;yJ(H5L@&x-Oy z=Q&jMFG;kn3p}rj$m2&A&TtzHXi6L1Z*cCT{BBbZfk`6H$S!9gVx)M1rXFye}e<6184#UJL-4 zTA4Z!idv2usPO zv@pGA4G5*7pP~Wu9neDjN;Rr0^5@_Fcuw~m|a!3WuEHo)bsr;41Hf> zmPuVmnBu{GlXX*1yvAM`5`i*Ow#&1`*HFQ0la!4zX=$m+PFH#|9*YQ~E#1KR!=2rO z=ClJpk{E7qi;Q&`v~T-KgpHOzhUS%Lr)wlra0 o{5WIwkie9BABM6Ge`MWt00_r`a)Y>b(RLm44~vOPZ?|~!zo&B2>;M1& literal 0 HcmV?d00001 diff --git a/python/urllib3/util/response.pyc b/python/urllib3/util/response.pyc new file mode 100644 index 0000000000000000000000000000000000000000..57930806e61738568776b6d4ef1bb60e052482c3 GIT binary patch literal 2276 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 literal 0 HcmV?d00001 diff --git a/python/urllib3/util/ssl_.pyc b/python/urllib3/util/ssl_.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6eb3add8ed106f12d0492dd164bc933c0c092546 GIT binary patch literal 11229 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 G4*xgG93bcb literal 0 HcmV?d00001 diff --git a/python/urllib3/util/ssltransport.pyc b/python/urllib3/util/ssltransport.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b7a43088bf8d39ef437350a9a260db00ea388cab GIT binary patch literal 7265 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 OuUf8q^>U@WT>1~`h literal 0 HcmV?d00001 diff --git a/python/urllib3/util/url.pyc b/python/urllib3/util/url.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d6ec2fddd7c678dbd21448ddd2a5c82c25b86757 GIT binary patch literal 10584 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 br|B%K8ufGVny}q7)w$}tYr0eJOx5`tA2+mA literal 0 HcmV?d00001