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

Signed-off-by: Victor Payno <vpayno+gentoo@gmail.com>
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/14930
Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
This commit is contained in:
Victor Payno
2020-03-11 14:57:30 -07:00
committed by Patrick McLean
parent 61c25b3792
commit cbbd4be8b1
2 changed files with 103 additions and 0 deletions

View File

@@ -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}"
}

View File

@@ -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 = []