Latest upstream. Re-do unbundling.

This commit is contained in:
Ralph Bean 2014-12-16 14:16:54 -05:00
parent 1960586c2a
commit f611c7ae39
4 changed files with 50 additions and 305 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/urllib3-1.7.1.tar.gz
/urllib3-1.8.2.tar.gz
/urllib3-1.9.1.tar.gz
/urllib3-1.10.tar.gz

View File

@ -1,288 +0,0 @@
From 5851f52e1fef0869ef2c81eb7e3052d94d5c1bcd Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
Date: Wed, 5 Nov 2014 14:16:28 -0500
Subject: [PATCH] unbundle
---
dummyserver/handlers.py | 2 +-
setup.py | 1 -
test/__init__.py | 2 +-
test/contrib/test_pyopenssl.py | 2 +-
test/test_collections.py | 2 +-
test/test_connectionpool.py | 7 ++++++-
test/test_fields.py | 2 +-
test/test_filepost.py | 2 +-
test/test_retry.py | 2 +-
test/with_dummyserver/test_connectionpool.py | 2 +-
urllib3/_collections.py | 5 +++--
urllib3/connection.py | 8 ++++++--
urllib3/connectionpool.py | 9 +++++++--
urllib3/fields.py | 2 +-
urllib3/filepost.py | 4 ++--
urllib3/response.py | 2 +-
urllib3/util/request.py | 2 +-
urllib3/util/retry.py | 2 +-
18 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/dummyserver/handlers.py b/dummyserver/handlers.py
index 72faa1a..ea15a1e 100644
--- a/dummyserver/handlers.py
+++ b/dummyserver/handlers.py
@@ -211,7 +211,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/setup.py b/setup.py
index f638377..5e6fff1 100644
--- a/setup.py
+++ b/setup.py
@@ -42,7 +42,6 @@ setup(name='urllib3',
url='http://urllib3.readthedocs.org/',
license='MIT',
packages=['urllib3',
- 'urllib3.packages', 'urllib3.packages.ssl_match_hostname',
'urllib3.contrib', 'urllib3.util',
],
requires=[],
diff --git a/test/__init__.py b/test/__init__.py
index d56a4d3..85db6c4 100644
--- a/test/__init__.py
+++ b/test/__init__.py
@@ -7,7 +7,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 4d173ac..c5420f7 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
diff --git a/test/test_connectionpool.py b/test/test_connectionpool.py
index 28fb89b..e8d4da3 100644
--- a/test/test_connectionpool.py
+++ b/test/test_connectionpool.py
@@ -6,7 +6,12 @@ from urllib3.connectionpool import (
HTTPConnectionPool,
)
from urllib3.util.timeout import Timeout
-from urllib3.packages.ssl_match_hostname import CertificateError
+
+try:
+ from ssl import CertificateError # py3
+except ImportError:
+ from backports.ssl_match_hostname import CertificateError # py2
+
from urllib3.exceptions import (
ClosedPoolError,
EmptyPoolError,
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 7a3aa40..f11cbe7 100644
--- a/test/test_retry.py
+++ b/test/test_retry.py
@@ -1,6 +1,6 @@
import unittest
-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_connectionpool.py b/test/with_dummyserver/test_connectionpool.py
index 7d54fbf..54416e4 100644
--- a/test/with_dummyserver/test_connectionpool.py
+++ b/test/with_dummyserver/test_connectionpool.py
@@ -30,7 +30,7 @@ from urllib3.exceptions import (
ReadTimeoutError,
ProtocolError,
)
-from urllib3.packages.six import b, u
+from six import b, u
from urllib3.util.retry import Retry
from urllib3.util.timeout import Timeout
diff --git a/urllib3/_collections.py b/urllib3/_collections.py
index d77ebb8..139b8f4 100644
--- a/urllib3/_collections.py
+++ b/urllib3/_collections.py
@@ -13,8 +13,9 @@ except ImportError: # Platform-specific: No threads available
try: # Python 2.7+
from collections import OrderedDict
except ImportError:
- from .packages.ordered_dict import OrderedDict
-from .packages.six import itervalues
+ from ordereddict import OrderedDict
+
+from six import itervalues
__all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict']
diff --git a/urllib3/connection.py b/urllib3/connection.py
index cebdd86..fa97ab9 100644
--- a/urllib3/connection.py
+++ b/urllib3/connection.py
@@ -3,7 +3,7 @@ import sys
import socket
from socket import timeout as SocketTimeout
import warnings
-from .packages import six
+import six
try: # Python 3
from http.client import HTTPConnection as _HTTPConnection, HTTPException
@@ -39,7 +39,11 @@ from .exceptions import (
ConnectTimeoutError,
SystemTimeWarning,
)
-from .packages.ssl_match_hostname import match_hostname
+
+try:
+ from ssl import match_hostname # py3
+except ImportError:
+ from backports.ssl_match_hostname import match_hostname # py2
from .util.ssl_ import (
resolve_cert_reqs,
diff --git a/urllib3/connectionpool.py b/urllib3/connectionpool.py
index ac6e0ca..f840175 100644
--- a/urllib3/connectionpool.py
+++ b/urllib3/connectionpool.py
@@ -26,8 +26,13 @@ from .exceptions import (
TimeoutError,
InsecureRequestWarning,
)
-from .packages.ssl_match_hostname import CertificateError
-from .packages import six
+
+try:
+ from ssl import CertificateError # py3
+except ImportError:
+ from backports.ssl_match_hostname import CertificateError # py2
+
+import six
from .connection import (
port_by_scheme,
DummyConnection,
diff --git a/urllib3/fields.py b/urllib3/fields.py
index c853f8d..5fe3c24 100644
--- a/urllib3/fields.py
+++ b/urllib3/fields.py
@@ -1,7 +1,7 @@
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 0fbf488..97ab970 100644
--- a/urllib3/filepost.py
+++ b/urllib3/filepost.py
@@ -3,8 +3,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 e69de95..f432ddd 100644
--- a/urllib3/response.py
+++ b/urllib3/response.py
@@ -4,7 +4,7 @@ from socket import timeout as SocketTimeout
from ._collections import HTTPHeaderDict
from .exceptions import ProtocolError, DecodeError, ReadTimeoutError
-from .packages.six import string_types as basestring, binary_type
+from six import string_types as basestring, binary_type
from .connection import HTTPException, BaseSSLError
from .util.response import is_fp_closed
diff --git a/urllib3/util/request.py b/urllib3/util/request.py
index bc64f6b..5f4ccfd 100644
--- a/urllib3/util/request.py
+++ b/urllib3/util/request.py
@@ -1,6 +1,6 @@
from base64 import b64encode
-from ..packages.six import b
+from six import b
ACCEPT_ENCODING = 'gzip,deflate'
diff --git a/urllib3/util/retry.py b/urllib3/util/retry.py
index eb560df..2723ded 100644
--- a/urllib3/util/retry.py
+++ b/urllib3/util/retry.py
@@ -7,7 +7,7 @@ from ..exceptions import (
ReadTimeoutError,
MaxRetryError,
)
-from ..packages import six
+import six
log = logging.getLogger(__name__)
--
1.9.3

View File

@ -7,7 +7,7 @@
%global srcname urllib3
Name: python-%{srcname}
Version: 1.9.1
Version: 1.10
Release: 1%{?dist}
Summary: Python HTTP library with thread-safe connection pooling and file post
@ -15,19 +15,17 @@ License: MIT
URL: http://urllib3.readthedocs.org/
Source0: http://pypi.python.org/packages/source/u/%{srcname}/%{srcname}-%{version}.tar.gz
### TODO: Send this to upstream urllib3
# make all imports of things in packages try system copies first
Patch0: python-urllib3-unbundle.patch
# Remove logging-clear-handlers from setup.cfg because it's not available in RHEL6's nose
Patch100: python-urllib3-old-nose-compat.patch
BuildArch: noarch
Requires: ca-certificates
Requires: python-six
# Previously bundled things:
Requires: python-six
Requires: python-backports-ssl_match_hostname
%if 0%{?rhel} && 0%{?rhel} <= 6
BuildRequires: python-ordereddict
Requires: python-ordereddict
@ -38,8 +36,8 @@ BuildRequires: python2-devel
BuildRequires: python-nose
BuildRequires: python-mock
BuildRequires: python-six
BuildRequires: python-tornado
BuildRequires: python-backports-ssl_match_hostname
BuildRequires: python-tornado
%if 0%{?with_python3}
BuildRequires: python3-devel
@ -67,9 +65,6 @@ Python3 HTTP module with connection pooling and file POST abilities.
%prep
%setup -q -n %{srcname}-%{version}
rm -rf urllib3/packages/
%patch0 -p1
%if 0%{?rhel} && 0%{?rhel} <= 6
%patch100 -p1
%endif
@ -80,7 +75,7 @@ cp -a . %{py3dir}
%endif # with_python3
%build
%{__python} setup.py build
%{__python2} setup.py build
%if 0%{?with_python3}
pushd %{py3dir}
@ -90,15 +85,38 @@ popd
%install
rm -rf %{buildroot}
%{__python} setup.py install --skip-build --root %{buildroot}
%{__python2} setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}/%{python2_sitelib}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{python2_sitelib}/urllib3/packages/ssl_match_hostname/
mkdir -p %{buildroot}/%{python2_sitelib}/urllib3/packages/
ln -s ../../six.py %{buildroot}/%{python2_sitelib}/urllib3/packages/six.py
ln -s ../../backports/ssl_match_hostname %{buildroot}/%{python2_sitelib}/urllib3/packages/ssl_match_hostname
# Copy in six.py just for the test suite.
cp %{python2_sitelib}/six.* %{buildroot}/%{python2_sitelib}/.
cp -r %{python2_sitelib}/backports %{buildroot}/%{python2_sitelib}/.
ls -alh %{buildroot}/%{python2_sitelib}/urllib3/packages/
ls -alh %{buildroot}/%{python2_sitelib}
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{python_sitelib}/dummyserver
rm -rf %{buildroot}%{python2_sitelib}/dummyserver
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install --skip-build --root %{buildroot}
rm -rf %{buildroot}/%{python3_sitelib}/urllib3/packages/six.py*
rm -rf %{buildroot}/%{python3_sitelib}/urllib3/packages/ssl_match_hostname/
mkdir -p %{buildroot}/%{python3_sitelib}/urllib3/packages/
ln -s ../../six.py %{buildroot}/%{python3_sitelib}/urllib3/packages/six.py
# Copy in six.py just for the test suite.
cp %{python3_sitelib}/six.* %{buildroot}/%{python3_sitelib}/.
ls -alh %{buildroot}/%{python3_sitelib}
# dummyserver is part of the unittest framework
rm -rf %{buildroot}%{python3_sitelib}/dummyserver
popd
@ -107,10 +125,18 @@ popd
%check
nosetests
# And after its done, remove our copied in bits
rm -rf %{buildroot}/%{python2_sitelib}/six*
rm -rf %{buildroot}/%{python2_sitelib}/backports*
%if 0%{?with_python3}
pushd %{py3dir}
nosetests-%{python3_version}
popd
# And after its done, remove our copied in bits
rm -rf %{buildroot}/%{python3_sitelib}/six*
rm -rf %{buildroot}/%{python3_sitelib}/__pycache__*
%endif # with_python3
%files
@ -118,17 +144,24 @@ popd
%license LICENSE.txt
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
# For noarch packages: sitelib
%{python_sitelib}/*
%{python2_sitelib}/urllib3/
%{python2_sitelib}/urllib3-*.egg-info
%if 0%{?with_python3}
%files -n python3-%{srcname}
%{!?_licensedir:%global license %%doc}
%license LICENSE.txt
# For noarch packages: sitelib
%{python3_sitelib}/*
%{python3_sitelib}/urllib3/
%{python3_sitelib}/urllib3-*.egg-info
%endif # with_python3
%changelog
* Sun Dec 14 2014 Ralph Bean <rbean@redhat.com> - 1.10-1
- Latest upstream 1.10, for python-requests-2.5.0.
- Re-do unbundling without patch, with symlinks.
- Modernize python2 macros.
* Wed Nov 05 2014 Ralph Bean <rbean@redhat.com> - 1.9.1-1
- Latest upstream, 1.9.1 for latest python-requests.
@ -185,4 +218,3 @@ popd
* Mon Feb 04 2013 Toshio Kuratomi <toshio@fedoraproject.org> 1.5-1
- Initial fedora build.

View File

@ -1 +1 @@
c9358c5a85dd6aa3942f5121efed064d urllib3-1.9.1.tar.gz
9badc8f09ea2d3c36cbb5071bfe52ebd urllib3-1.10.tar.gz