commit:     cbbd4be8b12d0791d198344184481a0a5ec989aa
Author:     Victor Payno <vpayno+gentoo <AT> gmail <DOT> com>
AuthorDate: Wed Mar 11 21:57:30 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Mar 11 23:17:26 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cbbd4be8

dev-python/docker-py-4.2.0-r1: add python 3.8 support

Signed-off-by: Victor Payno <vpayno+gentoo <AT> gmail.com>
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14930
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 dev-python/docker-py/docker-py-4.2.0-r1.ebuild     | 44 ++++++++++++++++
 .../files/docker-py-4.2.0-fix_splitnport.patch     | 59 ++++++++++++++++++++++
 2 files changed, 103 insertions(+)

diff --git a/dev-python/docker-py/docker-py-4.2.0-r1.ebuild 
b/dev-python/docker-py/docker-py-4.2.0-r1.ebuild
new file mode 100644
index 00000000000..3464896ea91
--- /dev/null
+++ b/dev-python/docker-py/docker-py-4.2.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python client for Docker"
+HOMEPAGE="https://github.com/docker/docker-py";
+SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       !~dev-python/requests-2.18.0[${PYTHON_USEDEP}]
+       >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+       >=dev-python/six-1.4.0[${PYTHON_USEDEP}]
+       >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+       test? (
+               ${RDEPEND}
+               >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+               >=dev-python/paramiko-2.4.2[${PYTHON_USEDEP}]
+               >=dev-python/pytest-2.9.1[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix_splitnport.patch
+)
+
+distutils_enable_sphinx docs \
+       'dev-python/recommonmark' \
+       '>=dev-python/sphinx-1.4.6'
+
+python_test() {
+       pytest -vv tests/unit/ || die "tests failed under ${EPYTHON}"
+}

diff --git a/dev-python/docker-py/files/docker-py-4.2.0-fix_splitnport.patch 
b/dev-python/docker-py/files/docker-py-4.2.0-fix_splitnport.patch
new file mode 100644
index 00000000000..6eda63459dd
--- /dev/null
+++ b/dev-python/docker-py/files/docker-py-4.2.0-fix_splitnport.patch
@@ -0,0 +1,59 @@
+diff --git a/docker/utils/utils.py b/docker/utils/utils.py
+index 447760b..3996d08 100644
+--- a/docker/utils/utils.py
++++ b/docker/utils/utils.py
+@@ -17,10 +17,9 @@ from ..constants import DEFAULT_NPIPE
+ from ..constants import BYTE_UNITS
+ 
+ if six.PY2:
+-    from urllib import splitnport
+     from urlparse import urlparse
+ else:
+-    from urllib.parse import splitnport, urlparse
++    from urllib.parse import urlparse
+ 
+ 
+ def create_ipam_pool(*args, **kwargs):
+@@ -278,7 +277,7 @@ def parse_host(addr, is_win32=False, tls=False):
+             if proto != 'ssh':
+                 raise errors.DockerException(
+                     'Invalid bind address format: port is required:'
+-                    ' {}'.format(addr)
++                    ' {}://{}'.format(proto, addr)
+                 )
+             port = 22
+ 
+@@ -295,6 +294,33 @@ def parse_host(addr, is_win32=False, tls=False):
+         return "{}://{}".format(proto, path).rstrip('/')
+     return '{0}://{1}:{2}{3}'.format(proto, host, port, path).rstrip('/')
+ 
++def splitnport(netloc):
++    import re
++
++    host_port_re1 = re.compile(r"^(.*):([0-9]*)$", re.DOTALL)
++    host_port_re2 = re.compile(r"^(.*)$", re.DOTALL)
++
++    host = None
++    port = None
++
++    match = host_port_re1.match(netloc)
++
++    if match:
++        host, port = match.groups()
++    else:
++        match = host_port_re2.match(netloc)
++        if match:
++            host = match.groups()[0]
++            port = None
++
++    if host == '':
++        host = None
++    if port == '':
++        port = None
++
++    port = int(port) if port else 0
++
++    return host, port or None
+ 
+ def parse_devices(devices):
+     device_list = []

Reply via email to