diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | debian/.git-dpm | 11 | ||||
-rw-r--r-- | debian/changelog | 322 | ||||
-rw-r--r-- | debian/clean | 1 | ||||
-rw-r--r-- | debian/compat | 1 | ||||
-rw-r--r-- | debian/control | 105 | ||||
-rw-r--r-- | debian/copyright | 90 | ||||
-rw-r--r-- | debian/patches/01_do-not-use-embedded-python-six.patch | 250 | ||||
-rw-r--r-- | debian/patches/02_require-cert-verification.patch | 39 | ||||
-rw-r--r-- | debian/patches/03_force_setuptools.patch | 25 | ||||
-rw-r--r-- | debian/patches/04_relax_nosetests_options.patch | 30 | ||||
-rw-r--r-- | debian/patches/05_avoid-embedded-ssl-match-hostname.patch | 33 | ||||
-rw-r--r-- | debian/patches/series | 5 | ||||
-rw-r--r-- | debian/python-urllib3-whl.install | 1 | ||||
-rwxr-xr-x | debian/rules | 27 | ||||
-rw-r--r-- | debian/source/format | 1 | ||||
-rw-r--r-- | debian/watch | 3 | ||||
-rw-r--r-- | urllib3.egg-info/PKG-INFO | 801 | ||||
-rw-r--r-- | urllib3.egg-info/SOURCES.txt | 109 | ||||
-rw-r--r-- | urllib3.egg-info/dependency_links.txt | 1 | ||||
-rw-r--r-- | urllib3.egg-info/pbr.json | 1 | ||||
-rw-r--r-- | urllib3.egg-info/requires.txt | 6 | ||||
-rw-r--r-- | urllib3.egg-info/top_level.txt | 1 |
23 files changed, 945 insertions, 919 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..11041c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.egg-info diff --git a/debian/.git-dpm b/debian/.git-dpm new file mode 100644 index 0000000..4454568 --- /dev/null +++ b/debian/.git-dpm @@ -0,0 +1,11 @@ +# see git-dpm(1) from git-dpm package +01eb41ddb423818d06a60ab7e40aae9cb7dcb23e +01eb41ddb423818d06a60ab7e40aae9cb7dcb23e +dff63335f212d32d7c1a4bb5276f2d31f5995ea1 +dff63335f212d32d7c1a4bb5276f2d31f5995ea1 +python-urllib3_1.13.1.orig.tar.gz +1309e9536c74cdad6d5ab089c83235a687b6d7e6 +156259 +debianTag="debian/%e%v" +patchedTag="patched/%e%v" +upstreamTag="upstream/%e%u" diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..96c7421 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,322 @@ +python-urllib3 (1.13.1-1) UNRELEASED; urgency=medium + + * New upstream release 1.13.1 + + -- Christopher Baines <mail@cbaines.net> Tue, 22 Dec 2015 14:16:00 +0000 + +python-urllib3 (1.12-1) unstable; urgency=medium + + * New upstream release. + * debian/control + - Update Vcs fields for git migration. + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh. + * debian/patches/06_rely-on-six-to-import-httplib-or-http.client.patch + - Remove since included in this release. + + -- Daniele Tricoli <eriol@mornie.org> Sun, 11 Oct 2015 03:31:25 +0200 + +python-urllib3 (1.11-2) unstable; urgency=medium + + * debian/patches/06_rely-on-six-to-import-httplib-or-http.client.patch + - Rely on six to import httplib or http.client. Thanks to Edward Betts + for the report. (Closes: #796356) + + -- Daniele Tricoli <eriol@mornie.org> Sun, 23 Aug 2015 21:19:59 +0200 + +python-urllib3 (1.11-1) unstable; urgency=medium + + * New upstream release. + * debian/control + - Add python{,3}-tornado to Build-Depends. + - Add python-ntlm to python-urllib3's Suggests. + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh. + + -- Daniele Tricoli <eriol@mornie.org> Mon, 17 Aug 2015 18:51:43 +0200 + +python-urllib3 (1.10.4-1) unstable; urgency=medium + + * New upstream release. + * debian/watch + - Use pypi.debian.net redirector. + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh. + + -- Daniele Tricoli <eriol@mornie.org> Sun, 03 May 2015 17:18:55 +0200 + +python-urllib3 (1.10-1) experimental; urgency=medium + + * New upstream release. + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh. + * debian/patches/06_do-not-make-SSLv3-mandatory.patch + - Remove since it was merged upstream. + + -- Daniele Tricoli <eriol@mornie.org> Thu, 15 Jan 2015 22:58:53 +0100 + +python-urllib3 (1.9.1-3) unstable; urgency=medium + + [ Stefano Rivera ] + * Replace 05_do-not-use-embedded-ssl-match-hostname.patch with + 05_avoid-embedded-ssl-match-hostname.patch. Users may use virtualenv with + cPython << 2.7.9 (or Debian python2.7 2.7.8-7). (Closes: #755106, #763389) + + [ Daniele Tricoli ] + * debian/patches/06_do-not-make-SSLv3-mandatory.patch + - Since SSL version 3 is insecure it is supported only if Python + supports it. (Closes: #770246) + + -- Daniele Tricoli <eriol@mornie.org> Thu, 20 Nov 2014 13:17:59 +0100 + +python-urllib3 (1.9.1-2) unstable; urgency=medium + + * debian/control + - Bump python{,3}-nose to >=1.3.3 to build urllib3 on Wheezy. Thanks to + Nick Phillips for the report. (Closes: #765035) + + -- Daniele Tricoli <eriol@mornie.org> Tue, 21 Oct 2014 02:59:57 +0200 + +python-urllib3 (1.9.1-1) unstable; urgency=medium + + * New upstream release. + * debian/control + - Bump Standards-Version to 3.9.6 (no changes needed). + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh. + * debian/patches/05_do-not-use-embedded-ssl-match-hostname.patch + - Refresh. + * debian/patches/06_add-test-init-py.patch + - Remove since fixed upstream. + * debian/rules + - Exclude with_dummyserver tests since they are also failing upstream. + + -- Daniele Tricoli <eriol@mornie.org> Tue, 23 Sep 2014 04:28:42 +0200 + +python-urllib3 (1.9-1) unstable; urgency=medium + + * New upstream release + * debian/control + - Add python-ndg-httpsclient, python-openssl and python-pyasn1 into + python-urllib3's Recomends to ensure that SNI works as expected and to + prevent CRIME attack + - Add python3-ndg-httpsclient, python3-openssl and python3-pyasn1 into + python3-urllib3's Suggests since Python 3 already support SNI and + and SSL compression can be disabled using OP_NO_COMPRESSION + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh + * debian/patches/02_require-cert-verification.patch + - Refresh + * debian/patches/05_do-not-use-embedded-ssl-match-hostname.patch + - Refresh + * debian/patches/06_relax-test-requirements.patch + - Remove since upstream now does not specify version of packages needed + for testing inside setup.py + * debian/patches/06_add-test-init-py.patch + - Add needed test/__init__.py file not shipped in sdist + + -- Daniele Tricoli <eriol@mornie.org> Mon, 01 Sep 2014 02:56:44 +0200 + +python-urllib3 (1.8.3-1) unstable; urgency=medium + + * New upstream release (Closes: #754090) + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refresh + * debian/patches/04_relax_nosetests_options.patch + - Refresh + + -- Daniele Tricoli <eriol@mornie.org> Mon, 07 Jul 2014 16:09:06 +0200 + +python-urllib3 (1.8.2-1) unstable; urgency=medium + + * New upstream release + * debian/clean + - Removed .coverage entry + * debian/control + - Added python3-coverage, python3-mock, python3-nose to Build-Depends + - Bumped python(3)-coverage to (>=3.6) + - Removed python-tornado from Build-Depends since it was used only for + dummyserver + * debian/copyright + - Updated copyright years + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/patches/02_require-cert-verification.patch + - Refreshed + * debian/patches/03_no-setuptools.patch + - Superseded by debian/patches/setuptools.patch + * debian/patches/03_force-setuptools.patch + - Renamed from setuptools.patch + - Added description + * debian/patches/05_do-not-use-embedded-ssl-match-hostname.patch + - Do not use embedded copy of ssl.match_hostname + * debian/patches/06_relax-test-requirements.patch + - Relax version of packages needed for testing + * debian/rules + - Enabled tests at build time also for Python 3 using the custom build + plugin of pybuild + - Cleaned .coverage file generated by nose using coverage plugin + - No need to remove dummyserver since it is not installed anymore + + -- Daniele Tricoli <eriol@mornie.org> Wed, 28 May 2014 19:41:18 +0200 + +python-urllib3 (1.8-2) unstable; urgency=medium + + * Team upload. + * d/control: + - Fix python-urllib3-whl Depends. + - Fix typo in python-urllib3-whl description. + + -- Barry Warsaw <barry@debian.org> Thu, 22 May 2014 18:19:16 -0400 + +python-urllib3 (1.8-1) unstable; urgency=medium + + * Team upload. + + [ Daniele Tricoli ] + * New upstream release + * debian/control + - Bumped Standards-Version to 3.9.5 (no changes needed) + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/patches/02_require-cert-verification.patch + - Refreshed + + [ Barry Warsaw ] + * d/control: + - Added python-setuptools, python3-setuptools, and python3-wheel to + Build-Depends. + - Added python-urllib3-whl binary package. + * d/rules: + - Build the universal wheels. + - Simplify through use of PYBUILD_NAME. + * d/python-urllib3-whl.install: Added. + * d/patches/setuptools.patch: Use setuptools.setup() so that the + bdist_wheel command will work. + + -- Barry Warsaw <barry@debian.org> Thu, 15 May 2014 17:21:50 -0400 + +python-urllib3 (1.7.1-1) unstable; urgency=low + + * New upstream release + * Switched to pybuild + * debian/clean + - Switched to debian/clean for cleaning instead of using debian/rules + * debian/compat + - Bumped debhelper compatibility level to 9 + * debian/control + - Added python-mock to Build-Depends + - Bumped debhelper B-D to (>= 9) + * debian/copyright + - Removed stanza about mimetools_choose_boundary since not shipped + anymore + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/patches/02_require-cert-verification.patch + - Refreshed + * debian/patches/04_relax_nosetests_options.patch + - Refreshed + * debian/patches/05_fix_python3_syntax_error_in_ntlmpool.patch + - Removed since fixed upstream + * debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch + - Removed since fixed upstream + * debian/watch + - Switched download URL to https + + -- Daniele Tricoli <eriol@mornie.org> Thu, 17 Oct 2013 13:28:10 +0200 + +python-urllib3 (1.6-2) unstable; urgency=high + + * debian/patches/06_fix_abuse_of_match_hostname_for_DoS.patch + - Added upstream patch to fix possible abuse of ssl.match_hostname() + for denial of service using certificates with many wildcards + (CVE-2013-2099) (Closes: #709070) Thanks Henri Salo and Jakub + Wilk for the report + + -- Daniele Tricoli <eriol@mornie.org> Mon, 20 May 2013 19:34:17 +0200 + +python-urllib3 (1.6-1) unstable; urgency=low + + [ Jakub Wilk ] + * Use canonical URIs for Vcs-* fields. + + [ Daniele Tricoli ] + * New upstream release + * Upload to unstable (Closes: #707780) + * debian/control + - Added python3-six to Build-Depends field + - Bumped debhelper dependency to 8.1 for build-{arch,indep} support + - Removed python-setuptools from Build-Depends field + * debian/copyright + - Updated copyright years + - Added stanza for urllib3/packages/ordered_dict.py + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/patches/02_require-cert-verification.patch + - Refreshed + * debian/patches/03_no-setuptools.patch + - Do not use setuptools + * debian/patches/04_relax_nosetests_options.patch + - Do not use logging-clear-handlers to see all logging output and + disabled cover-min-percentage since it require python-nose (>= 1.3): + this way it will be easier to backport python-urllib3 to Wheezy. + * debian/patches/05_fix_python3_syntax_error_in_ntlmpool.patch + - Fix syntax error 'unicodeescape' codec can't decode bytes in + position 130-132 for Python3 + + -- Daniele Tricoli <eriol@mornie.org> Sat, 11 May 2013 15:15:38 +0200 + +python-urllib3 (1.5-1) experimental; urgency=low + + * New upstream release + * debian/control + - Bumped Standards-Version to 3.9.4 (no changes needed) + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/rules + - Run tests only for python2.7 since upstream is using + assertRaises() as a context manager + + -- Daniele Tricoli <eriol@mornie.org> Fri, 09 Nov 2012 04:23:18 +0100 + +python-urllib3 (1.3-3) unstable; urgency=low + + * debian/control + - Added ca-certificates to Recommends field + * debian/patches/02_require-cert-verification.patch + - require SSL certificate validation by default by using + CERT_REQUIRED and using the system + /etc/ssl/certs/ca-certificates.crt. + Thanks to Jamie Strandboge for report and patch + (Closes: #686872) + + -- Daniele Tricoli <eriol@mornie.org> Mon, 10 Sep 2012 14:33:35 +0200 + +python-urllib3 (1.3-2) unstable; urgency=low + + * debian/control + - Tightened B-D of python-coverage to >= 3.4 (Closes: #668427) + - Fixed typo in python3-urllib3's ${python3:Depends} + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + * debian/rules + - Actually remove the embedded python-six from binary packages + - Cleaned .egg-info to build packages twice in a row + + -- Daniele Tricoli <eriol@mornie.org> Tue, 17 Apr 2012 21:34:49 +0200 + +python-urllib3 (1.3-1) unstable; urgency=low + + * New upstream release + * debian/control + - Bumped Standards-Version to 3.9.3 (no changes needed) + * debian/patches/01_do-not-use-embedded-python-six.patch + - Refreshed + + -- Daniele Tricoli <eriol@mornie.org> Thu, 29 Mar 2012 02:09:04 +0200 + +python-urllib3 (1.2.2-1) unstable; urgency=low + + * Initial release (Closes: #648783) + + -- Daniele Tricoli <eriol@mornie.org> Fri, 10 Feb 2012 04:41:11 +0100 diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..80574db --- /dev/null +++ b/debian/clean @@ -0,0 +1 @@ +urllib3.egg-info/* diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..a57c01b --- /dev/null +++ b/debian/control @@ -0,0 +1,105 @@ +Source: python-urllib3 +Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org> +Uploaders: Daniele Tricoli <eriol@mornie.org> +Section: python +Priority: optional +Build-Depends: + debhelper (>= 9), + dh-python, + python-all (>= 2.6.6-3), + python-coverage (>= 3.6), + python-mock, + python-nose (>=1.3.3), + python-setuptools, + python-six, + python-tornado, + python3-all, + python3-coverage (>= 3.6), + python3-mock, + python3-nose (>=1.3.3), + python3-setuptools, + python3-six, + python3-tornado, + python3-wheel, +Standards-Version: 3.9.6 +X-Python-Version: >= 2.6 +X-Python3-Version: >= 3.0 +Homepage: http://urllib3.readthedocs.org +Vcs-Git: git://anonscm.debian.org/python-modules/packages/python-urllib3.git +Vcs-Browser: https://anonscm.debian.org/cgit/python-modules/packages/python-urllib3.git + +Package: python-urllib3 +Architecture: all +Depends: + ${misc:Depends}, + ${python:Depends}, + python-six +Recommends: + ca-certificates, + python-ndg-httpsclient, + python-openssl, + python-pyasn1 +Suggests: + python-ntlm +Description: HTTP library with thread-safe connection pooling for Python + urllib3 supports features left out of urllib and urllib2 libraries. + . + - Re-use the same socket connection for multiple requests (HTTPConnectionPool + and HTTPSConnectionPool) (with optional client-side certificate + verification). + - File posting (encode_multipart_formdata). + - Built-in redirection and retries (optional). + - Supports gzip and deflate decoding. + - Thread-safe and sanity-safe. + - Small and easy to understand codebase perfect for extending and + building upon. + +Package: python3-urllib3 +Architecture: all +Depends: + ${misc:Depends}, + ${python3:Depends}, + python3-six +Recommends: + ca-certificates +Suggests: + python3-ndg-httpsclient, + python3-openssl, + python3-pyasn1 +Description: HTTP library with thread-safe connection pooling for Python3 + urllib3 supports features left out of urllib and urllib2 libraries. + . + - Re-use the same socket connection for multiple requests (HTTPConnectionPool + and HTTPSConnectionPool) (with optional client-side certificate + verification). + - File posting (encode_multipart_formdata). + - Built-in redirection and retries (optional). + - Supports gzip and deflate decoding. + - Thread-safe and sanity-safe. + - Small and easy to understand codebase perfect for extending and + building upon. + . + This package contains the Python 3 version of the library. + +Package: python-urllib3-whl +Architecture: all +Depends: + ${misc:Depends}, + ${python3:Depends}, + python-six-whl +Recommends: + ca-certificates +Description: HTTP library with thread-safe connection pooling + urllib3 supports features left out of urllib and urllib2 libraries. + . + - Re-use the same socket connection for multiple requests (HTTPConnectionPool + and HTTPSConnectionPool) (with optional client-side certificate + verification). + - File posting (encode_multipart_formdata). + - Built-in redirection and retries (optional). + - Supports gzip and deflate decoding. + - Thread-safe and sanity-safe. + - Small and easy to understand codebase perfect for extending and + building upon. + . + This package contains the universal wheel. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..1662f05 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,90 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: urllib3 +Upstream-Contact: Andrey Petrov <andrey.petrov@shazow.net> +Source: http://pypi.python.org/pypi/urllib3 + +Files: * +Copyright: 2008-2013, Andrey Petrov +License: Expat + +Files: urllib3/packages/six.py +Copyright: 2010-2011, Benjamin Peterson +License: Expat + +Files: urllib3/packages/ordered_dict.py +Copyright: 2009, Raymond Hettinger +License: Expat + +Files: urllib3/packages/ssl_match_hostname/__init__.py +Copyright: 2011, Python Software Foundation +License: PSF-2 + +Files: debian/* +Copyright: 2012-2014, Daniele Tricoli <eriol@mornie.org> +License: Expat + +License: Expat + 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. + +License: PSF-2 + 1. This LICENSE AGREEMENT is between the Python Software Foundation + ("PSF"), and the Individual or Organization ("Licensee") accessing + and otherwise using this software ("Python") in source or binary form + and its associated documentation. + . + 2. Subject to the terms and conditions of this License Agreement, PSF + hereby grants Licensee a nonexclusive, royalty-free, world-wide + license to reproduce, analyze, test, perform and/or display publicly, + prepare derivative works, distribute, and otherwise use Python alone + or in any derivative version, provided, however, that PSF's License + Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, + 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights + Reserved" are retained in Python alone or in any derivative version + prepared by Licensee. + . + 3. In the event Licensee prepares a derivative work that is based on + or incorporates Python or any part thereof, and wants to make the + derivative work available to others as provided herein, then Licensee + hereby agrees to include in any such work a brief summary of the + changes made to Python. + . + 4. PSF is making Python available to Licensee on an "AS IS" + basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND + DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR + FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT + INFRINGE ANY THIRD PARTY RIGHTS. + . + 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A + RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY + DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + . + 6. This License Agreement will automatically terminate upon a + material breach of its terms and conditions. + . + 7. Nothing in this License Agreement shall be deemed to create any + relationship of agency, partnership, or joint venture between PSF and + Licensee. This License Agreement does not grant permission to use PSF + trademarks or trade name in a trademark sense to endorse or promote + products or services of Licensee, or any third party. + . + 8. By copying, installing or otherwise using Python, Licensee agrees + to be bound by the terms and conditions of this License Agreement. diff --git a/debian/patches/01_do-not-use-embedded-python-six.patch b/debian/patches/01_do-not-use-embedded-python-six.patch new file mode 100644 index 0000000..d77ae2b --- /dev/null +++ b/debian/patches/01_do-not-use-embedded-python-six.patch @@ -0,0 +1,250 @@ +From ef4ec8903f3642a36635cea16ca54a6ed98b5d54 Mon Sep 17 00:00:00 2001 +From: Daniele Tricoli <eriol@mornie.org> +Date: Thu, 8 Oct 2015 13:19:46 -0700 +Subject: Do not use embedded copy of python-six. + +Forwarded: not-needed + +Patch-Name: 01_do-not-use-embedded-python-six.patch +--- + dummyserver/handlers.py | 2 +- + test/__init__.py | 2 +- + test/contrib/test_pyopenssl.py | 2 +- + test/test_collections.py | 2 +- + test/test_fields.py | 2 +- + test/test_filepost.py | 2 +- + test/test_retry.py | 2 +- + test/with_dummyserver/test_https.py | 2 +- + urllib3/_collections.py | 2 +- + urllib3/connection.py | 2 +- + urllib3/connectionpool.py | 2 +- + urllib3/fields.py | 2 +- + urllib3/filepost.py | 4 ++-- + urllib3/response.py | 4 ++-- + urllib3/util/request.py | 2 +- + urllib3/util/response.py | 3 ++- + urllib3/util/retry.py | 2 +- + 17 files changed, 20 insertions(+), 19 deletions(-) + +diff --git a/dummyserver/handlers.py b/dummyserver/handlers.py +index fb6f44f..c5ac9b4 100644 +--- a/dummyserver/handlers.py ++++ b/dummyserver/handlers.py +@@ -264,7 +264,7 @@ def _parse_header(line): + """ + import tornado.httputil + import email.utils +- from urllib3.packages import six ++ import six + if not six.PY3: + line = line.encode('utf-8') + parts = tornado.httputil._parseparam(';' + line) +diff --git a/test/__init__.py b/test/__init__.py +index f7c4a7a..22d3616 100644 +--- a/test/__init__.py ++++ b/test/__init__.py +@@ -8,7 +8,7 @@ import socket + from nose.plugins.skip import SkipTest + + from urllib3.exceptions import MaxRetryError, HTTPWarning +-from urllib3.packages import six ++import six + + # We need a host that will not immediately close the connection with a TCP + # Reset. SO suggests this hostname +diff --git a/test/contrib/test_pyopenssl.py b/test/contrib/test_pyopenssl.py +index 5d57527..f23ff19 100644 +--- a/test/contrib/test_pyopenssl.py ++++ b/test/contrib/test_pyopenssl.py +@@ -1,5 +1,5 @@ + from nose.plugins.skip import SkipTest +-from urllib3.packages import six ++import six + + if six.PY3: + raise SkipTest('Testing of PyOpenSSL disabled on PY3') +diff --git a/test/test_collections.py b/test/test_collections.py +index 9d72939..78ef634 100644 +--- a/test/test_collections.py ++++ b/test/test_collections.py +@@ -4,7 +4,7 @@ from urllib3._collections import ( + HTTPHeaderDict, + RecentlyUsedContainer as Container + ) +-from urllib3.packages import six ++import six + xrange = six.moves.xrange + + from nose.plugins.skip import SkipTest +diff --git a/test/test_fields.py b/test/test_fields.py +index cdec68b..66da148 100644 +--- a/test/test_fields.py ++++ b/test/test_fields.py +@@ -1,7 +1,7 @@ + import unittest + + from urllib3.fields import guess_content_type, RequestField +-from urllib3.packages.six import u ++from six import u + + + class TestRequestField(unittest.TestCase): +diff --git a/test/test_filepost.py b/test/test_filepost.py +index 390dbb3..ecc6710 100644 +--- a/test/test_filepost.py ++++ b/test/test_filepost.py +@@ -2,7 +2,7 @@ import unittest + + from urllib3.filepost import encode_multipart_formdata, iter_fields + from urllib3.fields import RequestField +-from urllib3.packages.six import b, u ++from six import b, u + + + BOUNDARY = '!! test boundary !!' +diff --git a/test/test_retry.py b/test/test_retry.py +index 421e508..8fcc287 100644 +--- a/test/test_retry.py ++++ b/test/test_retry.py +@@ -1,7 +1,7 @@ + import unittest + + from urllib3.response import HTTPResponse +-from urllib3.packages.six.moves import xrange ++from six.moves import xrange + from urllib3.util.retry import Retry + from urllib3.exceptions import ( + ConnectTimeoutError, +diff --git a/test/with_dummyserver/test_https.py b/test/with_dummyserver/test_https.py +index 7319d7e..8c16d30 100644 +--- a/test/with_dummyserver/test_https.py ++++ b/test/with_dummyserver/test_https.py +@@ -36,7 +36,7 @@ from urllib3.exceptions import ( + SystemTimeWarning, + InsecurePlatformWarning, + ) +-from urllib3.packages import six ++import six + from urllib3.util.timeout import Timeout + from urllib3.util.ssl_ import HAS_SNI + +diff --git a/urllib3/_collections.py b/urllib3/_collections.py +index 67f3ce9..b69ce20 100644 +--- a/urllib3/_collections.py ++++ b/urllib3/_collections.py +@@ -15,7 +15,7 @@ try: # Python 2.7+ + from collections import OrderedDict + except ImportError: + from .packages.ordered_dict import OrderedDict +-from .packages.six import iterkeys, itervalues, PY3 ++from six import iterkeys, itervalues, PY3 + + + __all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict'] +diff --git a/urllib3/connection.py b/urllib3/connection.py +index 1e4cd41..0075541 100644 +--- a/urllib3/connection.py ++++ b/urllib3/connection.py +@@ -5,7 +5,7 @@ import sys + import socket + from socket import error as SocketError, timeout as SocketTimeout + import warnings +-from .packages import six ++import six + + try: # Python 3 + from http.client import HTTPConnection as _HTTPConnection +diff --git a/urllib3/connectionpool.py b/urllib3/connectionpool.py +index 995b416..2204b30 100644 +--- a/urllib3/connectionpool.py ++++ b/urllib3/connectionpool.py +@@ -31,7 +31,7 @@ from .exceptions import ( + NewConnectionError, + ) + from .packages.ssl_match_hostname import CertificateError +-from .packages import six ++import six + from .connection import ( + port_by_scheme, + DummyConnection, +diff --git a/urllib3/fields.py b/urllib3/fields.py +index c7d4811..2152829 100644 +--- a/urllib3/fields.py ++++ b/urllib3/fields.py +@@ -2,7 +2,7 @@ from __future__ import absolute_import + import email.utils + import mimetypes + +-from .packages import six ++import six + + + def guess_content_type(filename, default='application/octet-stream'): +diff --git a/urllib3/filepost.py b/urllib3/filepost.py +index 97a2843..2fea190 100644 +--- a/urllib3/filepost.py ++++ b/urllib3/filepost.py +@@ -4,8 +4,8 @@ import codecs + from uuid import uuid4 + from io import BytesIO + +-from .packages import six +-from .packages.six import b ++import six ++from six import b + from .fields import RequestField + + writer = codecs.lookup('utf-8')[3] +diff --git a/urllib3/response.py b/urllib3/response.py +index 8f2a1b5..e034068 100644 +--- a/urllib3/response.py ++++ b/urllib3/response.py +@@ -9,8 +9,8 @@ from ._collections import HTTPHeaderDict + from .exceptions import ( + ProtocolError, DecodeError, ReadTimeoutError, ResponseNotChunked + ) +-from .packages.six import string_types as basestring, binary_type, PY3 +-from .packages.six.moves import http_client as httplib ++from six import string_types as basestring, binary_type, PY3 ++from six.moves import http_client as httplib + from .connection import HTTPException, BaseSSLError + from .util.response import is_fp_closed, is_response_to_head + +diff --git a/urllib3/util/request.py b/urllib3/util/request.py +index 7377931..40bf0b4 100644 +--- a/urllib3/util/request.py ++++ b/urllib3/util/request.py +@@ -1,7 +1,7 @@ + from __future__ import absolute_import + from base64 import b64encode + +-from ..packages.six import b ++from six import b + + ACCEPT_ENCODING = 'gzip,deflate' + +diff --git a/urllib3/util/response.py b/urllib3/util/response.py +index bc72327..efb9e04 100644 +--- a/urllib3/util/response.py ++++ b/urllib3/util/response.py +@@ -1,5 +1,6 @@ + from __future__ import absolute_import +-from ..packages.six.moves import http_client as httplib ++ ++from six.moves import http_client as httplib + + from ..exceptions import HeaderParsingError + +diff --git a/urllib3/util/retry.py b/urllib3/util/retry.py +index 03a0124..fd1f5dd 100644 +--- a/urllib3/util/retry.py ++++ b/urllib3/util/retry.py +@@ -9,7 +9,7 @@ from ..exceptions import ( + ReadTimeoutError, + ResponseError, + ) +-from ..packages import six ++import six + + + log = logging.getLogger(__name__) diff --git a/debian/patches/02_require-cert-verification.patch b/debian/patches/02_require-cert-verification.patch new file mode 100644 index 0000000..e366567 --- /dev/null +++ b/debian/patches/02_require-cert-verification.patch @@ -0,0 +1,39 @@ +From 3bc2dc494dd62e4a86e625dd3b5cb14880d3d268 Mon Sep 17 00:00:00 2001 +From: Jamie Strandboge <jamie@canonical.com> +Date: Thu, 8 Oct 2015 13:19:47 -0700 +Subject: require SSL certificate validation by default by using + + CERT_REQUIRED and using the system /etc/ssl/certs/ca-certificates.crt +Bug-Ubuntu: https://launchpad.net/bugs/1047054 +Bug-Debian: http://bugs.debian.org/686872 +Last-Update: 2014-09-01 + +Patch-Name: 02_require-cert-verification.patch +--- + urllib3/connectionpool.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/urllib3/connectionpool.py b/urllib3/connectionpool.py +index 2204b30..ef60000 100644 +--- a/urllib3/connectionpool.py ++++ b/urllib3/connectionpool.py +@@ -683,6 +683,8 @@ class HTTPSConnectionPool(HTTPConnectionPool): + ``ca_cert_dir``, and ``ssl_version`` are only used if :mod:`ssl` is + available and are fed into :meth:`urllib3.util.ssl_wrap_socket` to upgrade + the connection socket into an SSL socket. ++ ++ On Debian, SSL certificate validation is required by default + """ + + scheme = 'https' +@@ -692,8 +694,8 @@ class HTTPSConnectionPool(HTTPConnectionPool): + strict=False, timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, + block=False, headers=None, retries=None, + _proxy=None, _proxy_headers=None, +- key_file=None, cert_file=None, cert_reqs=None, +- ca_certs=None, ssl_version=None, ++ key_file=None, cert_file=None, cert_reqs='CERT_REQUIRED', ++ ca_certs='/etc/ssl/certs/ca-certificates.crt', ssl_version=None, + assert_hostname=None, assert_fingerprint=None, + ca_cert_dir=None, **conn_kw): + diff --git a/debian/patches/03_force_setuptools.patch b/debian/patches/03_force_setuptools.patch new file mode 100644 index 0000000..91b3b76 --- /dev/null +++ b/debian/patches/03_force_setuptools.patch @@ -0,0 +1,25 @@ +From 8cbae66e2b04e31a7d8f96f646eb2a758234e46e Mon Sep 17 00:00:00 2001 +From: Barry Warsaw <barry@debian.org> +Date: Thu, 8 Oct 2015 13:19:49 -0700 +Subject: Use setuptools.setup() so that the bdist_wheel + + command will work. +Last-Update: 2014-05-15 + +Patch-Name: 03_force_setuptools.patch +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 0a2dac3..02d5ec6 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,6 +1,6 @@ + #!/usr/bin/env python + +-from distutils.core import setup ++from setuptools import setup + + import os + import re diff --git a/debian/patches/04_relax_nosetests_options.patch b/debian/patches/04_relax_nosetests_options.patch new file mode 100644 index 0000000..af3a86d --- /dev/null +++ b/debian/patches/04_relax_nosetests_options.patch @@ -0,0 +1,30 @@ +From bcaf5c8834b99ecd6f187d4f67c7e356c97d31ae Mon Sep 17 00:00:00 2001 +From: Daniele Tricoli <eriol@mornie.org> +Date: Thu, 8 Oct 2015 13:19:50 -0700 +Subject: Do not use logging-clear-handlers to see all logging output and + + disable cover-min-percentage since it require python-nose (>= 1.3): this way + it will be easier to backport python-urllib3 to Wheezy. +Forwarded: not-needed +Last-Update: 2014-7-7 + +Patch-Name: 04_relax_nosetests_options.patch +--- + setup.cfg | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.cfg b/setup.cfg +index b5fe992..ca24a71 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -1,8 +1,8 @@ + [nosetests] +-logging-clear-handlers = true ++# logging-clear-handlers = true + with-coverage = true + cover-package = urllib3 +-cover-min-percentage = 100 ++# cover-min-percentage = 100 + cover-erase = true + + [flake8] diff --git a/debian/patches/05_avoid-embedded-ssl-match-hostname.patch b/debian/patches/05_avoid-embedded-ssl-match-hostname.patch new file mode 100644 index 0000000..4e391d4 --- /dev/null +++ b/debian/patches/05_avoid-embedded-ssl-match-hostname.patch @@ -0,0 +1,33 @@ +From 01eb41ddb423818d06a60ab7e40aae9cb7dcb23e Mon Sep 17 00:00:00 2001 +From: Stefano Rivera <stefanor@debian.org> +Date: Thu, 8 Oct 2015 13:19:51 -0700 +Subject: Do not use embedded copy of ssl.match_hostname, when possible + + The system python has the necessary features backported, since 2.7.8-7 (and + 221a1f9155e2, releasing in 2.7.9, upstream). However, alternative python + implementations don't, yet, and urllib3 is used by pip in virtualenvs. +Forwarded: not-needed +Last-Update: 2014-11-18 + +Patch-Name: 05_avoid-embedded-ssl-match-hostname.patch +--- + urllib3/packages/__init__.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/urllib3/packages/__init__.py b/urllib3/packages/__init__.py +index 170e974..35555ed 100644 +--- a/urllib3/packages/__init__.py ++++ b/urllib3/packages/__init__.py +@@ -1,5 +1,11 @@ + from __future__ import absolute_import + +-from . import ssl_match_hostname ++try: ++ # cPython >= 2.7.9 has ssl features backported from Python3 ++ from ssl import CertificateError ++ del CertificateError ++ import ssl as ssl_match_hostname ++except ImportError: ++ from . import ssl_match_hostname + + __all__ = ('ssl_match_hostname', ) diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..b77d657 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,5 @@ +01_do-not-use-embedded-python-six.patch +02_require-cert-verification.patch +03_force_setuptools.patch +04_relax_nosetests_options.patch +05_avoid-embedded-ssl-match-hostname.patch diff --git a/debian/python-urllib3-whl.install b/debian/python-urllib3-whl.install new file mode 100644 index 0000000..fd3f06f --- /dev/null +++ b/debian/python-urllib3-whl.install @@ -0,0 +1 @@ +usr/share/python-wheels diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..e94c934 --- /dev/null +++ b/debian/rules @@ -0,0 +1,27 @@ +#!/usr/bin/make -f + +export PYBUILD_NAME=urllib3 +export PYTHONWARNINGS=d + +%: + dh $@ --with python2,python3 --buildsystem=pybuild + +override_dh_auto_configure: + rm -f urllib3/packages/six.py + +override_dh_auto_install: + dh_auto_install + python3 setup.py bdist_wheel \ + --universal \ + -d $(CURDIR)/debian/tmp/usr/share/python-wheels + +override_dh_auto_test: + # Exclude dummyserver tests since they are also failing upstream. + PYBUILD_SYSTEM=custom \ + PYBUILD_TEST_ARGS="cd {build_dir}; {interpreter} -m nose {dir}/test --with-coverage -e with_dummyserver" dh_auto_test + # Clean here .coverage because it is created by nose using the coverage + # plugin + find . -name .coverage -delete + +override_dh_installchangelogs: + dh_installchangelogs CHANGES.rst diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..d58f4c1 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +http://pypi.debian.net/urllib3/urllib3-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff --git a/urllib3.egg-info/PKG-INFO b/urllib3.egg-info/PKG-INFO deleted file mode 100644 index a375cfe..0000000 --- a/urllib3.egg-info/PKG-INFO +++ /dev/null @@ -1,801 +0,0 @@ -Metadata-Version: 1.1 -Name: urllib3 -Version: 1.13.1 -Summary: HTTP library with thread-safe connection pooling, file post, and more. -Home-page: http://urllib3.readthedocs.org/ -Author: Andrey Petrov -Author-email: andrey.petrov@shazow.net -License: MIT -Description: ======= - urllib3 - ======= - - .. image:: https://travis-ci.org/shazow/urllib3.png?branch=master - :target: https://travis-ci.org/shazow/urllib3 - - .. image:: https://www.bountysource.com/badge/tracker?tracker_id=192525 - :target: https://www.bountysource.com/trackers/192525-urllib3?utm_source=192525&utm_medium=shield&utm_campaign=TRACKER_BADGE - - - Highlights - ========== - - - Re-use the same socket connection for multiple requests - (``HTTPConnectionPool`` and ``HTTPSConnectionPool``) - (with optional client-side certificate verification). - - File posting (``encode_multipart_formdata``). - - Built-in redirection and retries (optional). - - Supports gzip and deflate decoding. - - Thread-safe and sanity-safe. - - Works with AppEngine, gevent, and eventlib. - - Tested on Python 2.6+, Python 3.2+, and PyPy, with 100% unit test coverage. - - Small and easy to understand codebase perfect for extending and building upon. - For a more comprehensive solution, have a look at - `Requests <http://python-requests.org/>`_ which is also powered by ``urllib3``. - - - You might already be using urllib3! - =================================== - - ``urllib3`` powers `many great Python libraries - <https://sourcegraph.com/search?q=package+urllib3>`_, including ``pip`` and - ``requests``. - - - What's wrong with urllib and urllib2? - ===================================== - - There are two critical features missing from the Python standard library: - Connection re-using/pooling and file posting. It's not terribly hard to - implement these yourself, but it's much easier to use a module that already - did the work for you. - - The Python standard libraries ``urllib`` and ``urllib2`` have little to do - with each other. They were designed to be independent and standalone, each - solving a different scope of problems, and ``urllib3`` follows in a similar - vein. - - - Why do I want to reuse connections? - =================================== - - Performance. When you normally do a urllib call, a separate socket - connection is created with each request. By reusing existing sockets - (supported since HTTP 1.1), the requests will take up less resources on the - server's end, and also provide a faster response time at the client's end. - With some simple benchmarks (see `test/benchmark.py - <https://github.com/shazow/urllib3/blob/master/test/benchmark.py>`_ - ), downloading 15 URLs from google.com is about twice as fast when using - HTTPConnectionPool (which uses 1 connection) than using plain urllib (which - uses 15 connections). - - This library is perfect for: - - - Talking to an API - - Crawling a website - - Any situation where being able to post files, handle redirection, and - retrying is useful. It's relatively lightweight, so it can be used for - anything! - - - Examples - ======== - - Go to `urllib3.readthedocs.org <http://urllib3.readthedocs.org>`_ - for more nice syntax-highlighted examples. - - But, long story short:: - - import urllib3 - - http = urllib3.PoolManager() - - r = http.request('GET', 'http://google.com/') - - print r.status, r.data - - The ``PoolManager`` will take care of reusing connections for you whenever - you request the same host. For more fine-grained control of your connection - pools, you should look at `ConnectionPool - <http://urllib3.readthedocs.org/#connectionpool>`_. - - - Run the tests - ============= - - We use some external dependencies, multiple interpreters and code coverage - analysis while running test suite. Our ``Makefile`` handles much of this for - you as long as you're running it `inside of a virtualenv - <http://docs.python-guide.org/en/latest/dev/virtualenvs/>`_:: - - $ make test - [... magically installs dependencies and runs tests on your virtualenv] - Ran 182 tests in 1.633s - - OK (SKIP=6) - - Note that code coverage less than 100% is regarded as a failing run. Some - platform-specific tests are skipped unless run in that platform. To make sure - the code works in all of urllib3's supported platforms, you can run our ``tox`` - suite:: - - $ make test-all - [... tox creates a virtualenv for every platform and runs tests inside of each] - py26: commands succeeded - py27: commands succeeded - py32: commands succeeded - py33: commands succeeded - py34: commands succeeded - - Our test suite `runs continuously on Travis CI - <https://travis-ci.org/shazow/urllib3>`_ with every pull request. - - - Contributing - ============ - - #. `Check for open issues <https://github.com/shazow/urllib3/issues>`_ or open - a fresh issue to start a discussion around a feature idea or a bug. There is - a *Contributor Friendly* tag for issues that should be ideal for people who - are not very familiar with the codebase yet. - #. Fork the `urllib3 repository on Github <https://github.com/shazow/urllib3>`_ - to start making your changes. - #. Write a test which shows that the bug was fixed or that the feature works - as expected. - #. Send a pull request and bug the maintainer until it gets merged and published. - :) Make sure to add yourself to ``CONTRIBUTORS.txt``. - - - Sponsorship - =========== - - If your company benefits from this library, please consider `sponsoring its - development <http://urllib3.readthedocs.org/en/latest/#sponsorship>`_. - - - Changes - ======= - - 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 <https://urllib3.readthedocs.org/en/latest/contrib.html#google-app-engine>`_ - 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 - <https://urllib3.readthedocs.org/en/latest/security.html>`_ 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`` propery. (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 urllib3.readthedocs.org. - * 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. - -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 :: 3 -Classifier: Topic :: Internet :: WWW/HTTP -Classifier: Topic :: Software Development :: Libraries diff --git a/urllib3.egg-info/SOURCES.txt b/urllib3.egg-info/SOURCES.txt deleted file mode 100644 index 45b06b2..0000000 --- a/urllib3.egg-info/SOURCES.txt +++ /dev/null @@ -1,109 +0,0 @@ -CHANGES.rst -CONTRIBUTORS.txt -LICENSE.txt -MANIFEST.in -Makefile -README.rst -dev-requirements.txt -setup.cfg -setup.py -docs/Makefile -docs/README -docs/collections.rst -docs/conf.py -docs/contrib.rst -docs/doc-requirements.txt -docs/exceptions.rst -docs/helpers.rst -docs/index.rst -docs/make.bat -docs/managers.rst -docs/pools.rst -docs/security.rst -dummyserver/__init__.py -dummyserver/handlers.py -dummyserver/proxy.py -dummyserver/server.py -dummyserver/testcase.py -dummyserver/certs/README.rst -dummyserver/certs/cacert.key -dummyserver/certs/cacert.no_san.pem -dummyserver/certs/cacert.pem -dummyserver/certs/client.csr -dummyserver/certs/client.key -dummyserver/certs/client.pem -dummyserver/certs/client_bad.pem -dummyserver/certs/server.crt -dummyserver/certs/server.csr -dummyserver/certs/server.ipv6addr.crt -dummyserver/certs/server.ipv6addr.key -dummyserver/certs/server.key -dummyserver/certs/server.key.org -dummyserver/certs/server.no_san.crt -dummyserver/certs/server.no_san.csr -dummyserver/certs/ca_path_test/98a2772e.0 -dummyserver/certs/ca_path_test/b6b9ccf9.0 -dummyserver/certs/ca_path_test/cacert.pem -test/__init__.py -test/benchmark.py -test/port_helpers.py -test/test_collections.py -test/test_compatibility.py -test/test_connectionpool.py -test/test_exceptions.py -test/test_fields.py -test/test_filepost.py -test/test_no_ssl.py -test/test_poolmanager.py -test/test_proxymanager.py -test/test_response.py -test/test_retry.py -test/test_util.py -test/appengine/__init__.py -test/appengine/app.yaml -test/appengine/nose.cfg -test/appengine/requirements.txt -test/appengine/test_urlfetch.py -test/contrib/__init__.py -test/contrib/test_gae_manager.py -test/contrib/test_pyopenssl.py -test/with_dummyserver/__init__.py -test/with_dummyserver/test_connectionpool.py -test/with_dummyserver/test_https.py -test/with_dummyserver/test_no_ssl.py -test/with_dummyserver/test_poolmanager.py -test/with_dummyserver/test_proxy_poolmanager.py -test/with_dummyserver/test_socketlevel.py -urllib3/__init__.py -urllib3/_collections.py -urllib3/connection.py -urllib3/connectionpool.py -urllib3/exceptions.py -urllib3/fields.py -urllib3/filepost.py -urllib3/poolmanager.py -urllib3/request.py -urllib3/response.py -urllib3.egg-info/PKG-INFO -urllib3.egg-info/SOURCES.txt -urllib3.egg-info/dependency_links.txt -urllib3.egg-info/pbr.json -urllib3.egg-info/requires.txt -urllib3.egg-info/top_level.txt -urllib3/contrib/__init__.py -urllib3/contrib/appengine.py -urllib3/contrib/ntlmpool.py -urllib3/contrib/pyopenssl.py -urllib3/packages/__init__.py -urllib3/packages/ordered_dict.py -urllib3/packages/six.py -urllib3/packages/ssl_match_hostname/__init__.py -urllib3/packages/ssl_match_hostname/_implementation.py -urllib3/util/__init__.py -urllib3/util/connection.py -urllib3/util/request.py -urllib3/util/response.py -urllib3/util/retry.py -urllib3/util/ssl_.py -urllib3/util/timeout.py -urllib3/util/url.py
\ No newline at end of file diff --git a/urllib3.egg-info/dependency_links.txt b/urllib3.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/urllib3.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/urllib3.egg-info/pbr.json b/urllib3.egg-info/pbr.json deleted file mode 100644 index 98673b0..0000000 --- a/urllib3.egg-info/pbr.json +++ /dev/null @@ -1 +0,0 @@ -{"is_release": false, "git_version": "12d04b7"}
\ No newline at end of file diff --git a/urllib3.egg-info/requires.txt b/urllib3.egg-info/requires.txt deleted file mode 100644 index f43ed1a..0000000 --- a/urllib3.egg-info/requires.txt +++ /dev/null @@ -1,6 +0,0 @@ - -[secure] -pyOpenSSL>=0.13 -ndg-httpsclient -pyasn1 -certifi diff --git a/urllib3.egg-info/top_level.txt b/urllib3.egg-info/top_level.txt deleted file mode 100644 index a42590b..0000000 --- a/urllib3.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -urllib3 |