diff options
author | Victor Payno <vpayno+gentoo@gmail.com> | 2020-03-11 14:57:30 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2020-03-11 16:17:26 -0700 |
commit | cbbd4be8b12d0791d198344184481a0a5ec989aa (patch) | |
tree | 96b45b51245a8afe17e6ed695ef81a074c2216cf /dev-python | |
parent | media-libs/mlt: Switch 6.20.0-r0 to ruby25 (diff) | |
download | gentoo-cbbd4be8b12d0791d198344184481a0a5ec989aa.tar.gz gentoo-cbbd4be8b12d0791d198344184481a0a5ec989aa.tar.bz2 gentoo-cbbd4be8b12d0791d198344184481a0a5ec989aa.zip |
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>
Diffstat (limited to 'dev-python')
-rw-r--r-- | dev-python/docker-py/docker-py-4.2.0-r1.ebuild | 44 | ||||
-rw-r--r-- | dev-python/docker-py/files/docker-py-4.2.0-fix_splitnport.patch | 59 |
2 files changed, 103 insertions, 0 deletions
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 000000000000..3464896ea91a --- /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 000000000000..6eda63459dd9 --- /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 = [] |