summaryrefslogtreecommitdiff
path: root/dev-python/pip
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/pip
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-python/pip')
-rw-r--r--dev-python/pip/Manifest9
-rw-r--r--dev-python/pip/files/pip-19.3-disable-version-check.patch24
-rw-r--r--dev-python/pip/files/pip-19.3.1-network-tests.patch66
-rw-r--r--dev-python/pip/files/pip-19.3.1-r2-disable-system-install.patch17
-rw-r--r--dev-python/pip/files/pip-20.0.2-disable-system-install.patch29
-rw-r--r--dev-python/pip/files/pip-20.1.1-test-endian.patch78
-rw-r--r--dev-python/pip/files/pip-9.0.1-disable-version-check.patch32
-rw-r--r--dev-python/pip/files/pip-disable-system-install.patch29
-rw-r--r--dev-python/pip/metadata.xml14
-rw-r--r--dev-python/pip/pip-19.3.1-r2.ebuild138
-rw-r--r--dev-python/pip/pip-20.0.2.ebuild138
-rw-r--r--dev-python/pip/pip-20.1.1.ebuild141
-rw-r--r--dev-python/pip/pip-20.1.ebuild141
-rw-r--r--dev-python/pip/pip-9.0.1-r2.ebuild84
14 files changed, 940 insertions, 0 deletions
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
new file mode 100644
index 000000000000..aecac8b0b2dc
--- /dev/null
+++ b/dev-python/pip/Manifest
@@ -0,0 +1,9 @@
+DIST pip-19.3.1.tar.gz 6409819 BLAKE2B b3aacd0bee60400a1f30b4be57871002072e5cc7a86e76cca1848e977ebdc85b6e282fc521c19bf7a518d1aef3280133fcd65a431cb2a16e202dd7721c5b97ad SHA512 39446c0ab6e4495d98f22923a2a76901b024d9047b60d92580b21d447a718e5285cfd66f8ad0c20befcfe1abc7f06be29b6a5644d1b30265d3b67399fe76e033
+DIST pip-20.0.2.tar.gz 6445047 BLAKE2B 8f6e0a8908cf594c8d51818942b0839f59a495697a95dcc0347235e90cbe6d7f035f155761e7da9cfca1ba08b2c5a2c5def52c60c381f5428ef48efd1b6b5131 SHA512 f9965944ca0f319d01db1638ce97cf64772afff1778b3b1271155de73208cfcb3954d89a469c1143c0bf3288a53d4446165a49df994374b16ac6f7ffdae85857
+DIST pip-20.1.1.tar.gz 6503229 BLAKE2B 5b0409042c970ec47fa6f947b21a53aca43563a6bb442fd5f91788fa97caf7167a84b4f581de87453eb0e55657d2ccd11dca2d1815c3bfe9ef5923994306a6db SHA512 ee7b0345c08fbe0215811d07b4c57c1ceece826871842f6d1c174d82e8eee0ad810aa5413d6763ecd5a513e151792a53c36623ab99d2049555ef2542d32d1658
+DIST pip-20.1.tar.gz 6500955 BLAKE2B 81ab806fce4ae3d9aeab34fe8781c13507252ef0325abb35dd739f3eaf0e648866b052d2adb8b187974ae784f493dbb83f684c464da8f9079f66fe8c4fa2d61d SHA512 19cc1172540bec4b0c6facf55fa9c463bf8f4391dd1a643ac208c8e0b787950b2d72a6ec8f0772c7e6582c6b6a4a103f31ad58ffa2119fb574c174e5ec77b0c1
+DIST pip-9.0.1.tar.gz 1197370 BLAKE2B 3618161690d5e0a38d141f9b51baea4aaa3fdc225664ef180bbeecf6e2df95e9ea4f97c63fe3a68f84f4fb5ebcc74e316827253c7e07b03565e58113bbaa918a SHA512 ee59efb4b009ff6543b7afdea99b9cbbee1981ecc03af586acda76674024d3b66dab23049e68f3da9448734984619fc1eaba6e965c9dd3d731973376c8a42e25
+DIST setuptools-41.4.0-py2.py3-none-any.whl 580302 BLAKE2B 58dc2d48445406f7467bfb0934dc507e8a569e4759bfcc95287cfb21b5b1a7bcab061656a29a8b4976ee3ae12a3adca570035ae4a6d9df09ae7a799857775d36 SHA512 a27b38d596931dfef81d705d05689b7748ce0e02d21af4a37204fc74b0913fa7241b8135535eb7749f09af361cad90c475af98493fef11c4ad974780ee01243d
+DIST setuptools-44.0.0-py2.py3-none-any.whl 583230 BLAKE2B 823e6792471660f247e30a938aa869d345a63db7294e5f9b4bd88f15a7694779011d29740fe317149620985f705fc6e18cbb07a18e5680cc11d7c229ffbc74f6 SHA512 7006fd303181afbeeec0e30cafb9fd1e4d3c6f55cfdd6343fedbc32b17dbb96b3d96ae37f4db27bfb168738727474cf425904ec280ff1d2b789fc48077a8fa84
+DIST wheel-0.33.6-py2.py3-none-any.whl 21556 BLAKE2B 6b6124c1e8e70592399a90c88b2a70efc5885bad81d2ff07a2e243eee008ba5cb0c927454036915a61e97489e29fe1abc4ba2e63d7eadf1a8985c8a8b7cdf4c4 SHA512 4663cd55ee9d3de138216bb06870606b546b19cb6a733f1beab211c0ba72e63d849c422d320ddc8aa8275ad04a30119a84c1351e589150cd18c2a34f9fdb224a
+DIST wheel-0.34.2-py2.py3-none-any.whl 26502 BLAKE2B 3a1bd4571c582245b60ff33c9bf74ff8a2ebafb26e56fc7b9bd215058d059b6bd13bbe21ce46002af257813a54126f27e19253f211e21c4548c7cf84cd15caf7 SHA512 4f1a44f4691ed8baad777d7874f7f4da96a5019eb485fd3a9eed9259aa2a9d5acccc6dc63a72128664347c64ee039a6076c6ca9c3b75a1f94457967864e522ed
diff --git a/dev-python/pip/files/pip-19.3-disable-version-check.patch b/dev-python/pip/files/pip-19.3-disable-version-check.patch
new file mode 100644
index 000000000000..e8fe868431d1
--- /dev/null
+++ b/dev-python/pip/files/pip-19.3-disable-version-check.patch
@@ -0,0 +1,24 @@
+diff --git a/src/pip/_internal/cli/req_command.py b/src/pip/_internal/cli/req_command.py
+index 203e86a4..a2183f10 100644
+--- a/src/pip/_internal/cli/req_command.py
++++ b/src/pip/_internal/cli/req_command.py
+@@ -129,17 +129,8 @@ class IndexGroupCommand(Command, SessionCommandMixin):
+ # Make sure the index_group options are present.
+ assert hasattr(options, 'no_index')
+
+- if options.disable_pip_version_check or options.no_index:
+- return
+-
+- # Otherwise, check if we're using the latest version of pip available.
+- session = self._build_session(
+- options,
+- retries=0,
+- timeout=min(5, options.timeout)
+- )
+- with session:
+- pip_self_version_check(session, options)
++ # Disabled on Gentoo
++ return
+
+
+ class RequirementCommand(IndexGroupCommand):
diff --git a/dev-python/pip/files/pip-19.3.1-network-tests.patch b/dev-python/pip/files/pip-19.3.1-network-tests.patch
new file mode 100644
index 000000000000..f194a7b34a90
--- /dev/null
+++ b/dev-python/pip/files/pip-19.3.1-network-tests.patch
@@ -0,0 +1,66 @@
+diff --git a/news/7359.trivial b/news/7359.trivial
+new file mode 100644
+index 000000000..e69de29bb
+diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
+index d13c931d0..2e35de3e6 100644
+--- a/tests/functional/test_freeze.py
++++ b/tests/functional/test_freeze.py
+@@ -721,6 +721,7 @@ def test_freeze_user(script, virtualenv, data):
+ assert 'simple2' not in result.stdout
+
+
++@pytest.mark.network
+ def test_freeze_path(tmpdir, script, data):
+ """
+ Test freeze with --path.
+@@ -734,5 +735,6 @@ def test_freeze_path(tmpdir, script, data):
+ _check_output(result.stdout, expected)
+
+
++@pytest.mark.network
+ def test_freeze_path_exclude_user(tmpdir, script, data):
+ """
+@@ -756,6 +758,7 @@ def test_freeze_path_exclude_user(tmpdir, script, data):
+ _check_output(result.stdout, expected)
+
+
++@pytest.mark.network
+ def test_freeze_path_multiple(tmpdir, script, data):
+ """
+ Test freeze with multiple --path arguments.
+diff --git a/tests/functional/test_install.py b/tests/functional/test_install.py
+index a9eff081d..ba7a0a55c 100644
+--- a/tests/functional/test_install.py
++++ b/tests/functional/test_install.py
+@@ -1325,6 +1325,7 @@ def test_install_no_binary_disables_building_wheels(script, data, with_wheel):
+ assert "Running setup.py install for upper" in str(res), str(res)
+
+
++@pytest.mark.network
+ def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel):
+ to_install = data.packages.joinpath('pep517_setup_and_pyproject')
+ res = script.pip(
+diff --git a/tests/functional/test_install_config.py b/tests/functional/test_install_config.py
+index 176976c4e..308263928 100644
+--- a/tests/functional/test_install_config.py
++++ b/tests/functional/test_install_config.py
+@@ -133,6 +133,7 @@ def test_command_line_appends_correctly(script, data):
+ ), 'stdout: {}'.format(result.stdout)
+
+
++@pytest.mark.network
+ def test_config_file_override_stack(script, virtualenv):
+ """
+ Test config files (global, overriding a global config with a
+diff --git a/tests/functional/test_install_upgrade.py b/tests/functional/test_install_upgrade.py
+index 6d2eeb5dc..0024de4d4 100644
+--- a/tests/functional/test_install_upgrade.py
++++ b/tests/functional/test_install_upgrade.py
+@@ -8,6 +8,7 @@
+ from tests.lib.local_repos import local_checkout
+
+
++@pytest.mark.network
+ def test_no_upgrade_unless_requested(script):
+ """
+ No upgrade if not specifically requested.
diff --git a/dev-python/pip/files/pip-19.3.1-r2-disable-system-install.patch b/dev-python/pip/files/pip-19.3.1-r2-disable-system-install.patch
new file mode 100644
index 000000000000..8486c37f0c73
--- /dev/null
+++ b/dev-python/pip/files/pip-19.3.1-r2-disable-system-install.patch
@@ -0,0 +1,17 @@
+install: Raise an error to avoid breaking python-exec
+
+Running pip without --target, --root, or --user will result in packages
+being installed systemwide. This has a tendency to break python-exec if
+setuptools gets installed or upgraded.
+
+--- pip-19.1/src/pip/_internal/commands/install.py
++++ pip-19.1/src/pip/_internal/commands/install.py
+@@ -246,6 +246,9 @@ class InstallCommand(RequirementCommand):
+ if options.upgrade:
+ upgrade_strategy = options.upgrade_strategy
+
++ if not options.use_user_site and not options.target_dir and not options.root_path and not os.getenv('GENTOO_PIP_TESTING'):
++ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec")
++
+ if options.build_dir:
+ options.build_dir = os.path.abspath(options.build_dir)
diff --git a/dev-python/pip/files/pip-20.0.2-disable-system-install.patch b/dev-python/pip/files/pip-20.0.2-disable-system-install.patch
new file mode 100644
index 000000000000..c6b5354bc68f
--- /dev/null
+++ b/dev-python/pip/files/pip-20.0.2-disable-system-install.patch
@@ -0,0 +1,29 @@
+From 57d610bbcc721c2e58fd2e9f3197bb3e3acbd935 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 1 Feb 2020 09:14:46 +0100
+Subject: [PATCH] install: Raise an error to avoid breaking python-exec
+
+Running pip without --target, --root, or --user will result in packages
+being installed systemwide. This has a tendency to break python-exec if
+setuptools gets installed or upgraded.
+---
+ src/pip/_internal/commands/install.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
+index 02a187c8..025b824b 100644
+--- a/src/pip/_internal/commands/install.py
++++ b/src/pip/_internal/commands/install.py
+@@ -246,6 +246,9 @@ class InstallCommand(RequirementCommand):
+ if options.upgrade:
+ upgrade_strategy = options.upgrade_strategy
+
++ if not options.use_user_site and not options.target_dir and not options.root_path and not os.getenv('GENTOO_PIP_TESTING'):
++ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec")
++
+ cmdoptions.check_dist_restriction(options, check_target=True)
+
+ install_options = options.install_options or []
+--
+2.25.0
+
diff --git a/dev-python/pip/files/pip-20.1.1-test-endian.patch b/dev-python/pip/files/pip-20.1.1-test-endian.patch
new file mode 100644
index 000000000000..b6aea145656f
--- /dev/null
+++ b/dev-python/pip/files/pip-20.1.1-test-endian.patch
@@ -0,0 +1,78 @@
+From b30dd1e04e1f37901733f1be0a5a1e02c466ad0c Mon Sep 17 00:00:00 2001
+From: gutsytechster <prashantsharma161198@gmail.com>
+Date: Wed, 15 Apr 2020 19:54:48 +0530
+Subject: [PATCH] fix(tests/unit): Update tests to be endian safe
+
+This updates `test_path_to_display` and `test_str_to_display__encoding`
+to use the endian safe expected result instead of the hardcoded one.
+
+This fixes https://github.com/pypa/pip/issues/7921
+---
+ tests/unit/test_compat.py | 8 +++++++-
+ tests/unit/test_utils.py | 16 +++++++++++++---
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/tests/unit/test_compat.py b/tests/unit/test_compat.py
+index 1f31bc5c..b13087a1 100644
+--- a/tests/unit/test_compat.py
++++ b/tests/unit/test_compat.py
+@@ -2,6 +2,7 @@
+
+ import locale
+ import os
++import sys
+
+ import pytest
+
+@@ -91,8 +92,13 @@ def test_str_to_display__decode_error(monkeypatch, caplog):
+ # Encode with an incompatible encoding.
+ data = u'ab'.encode('utf-16')
+ actual = str_to_display(data)
++ # Keep the expected value endian safe
++ if sys.byteorder == "little":
++ expected = "\\xff\\xfea\x00b\x00"
++ elif sys.byteorder == "big":
++ expected = "\\xfe\\xff\x00a\x00b"
+
+- assert actual == u'\\xff\\xfea\x00b\x00', (
++ assert actual == expected, (
+ # Show the encoding for easier troubleshooting.
+ 'encoding: {!r}'.format(locale.getpreferredencoding())
+ )
+diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
+index 7d74a664..ebabd29e 100644
+--- a/tests/unit/test_utils.py
++++ b/tests/unit/test_utils.py
+@@ -375,6 +375,18 @@ def test_rmtree_retries_for_3sec(tmpdir, monkeypatch):
+ rmtree('foo')
+
+
++if sys.byteorder == "little":
++ expected_byte_string = (
++ u"b'\\xff\\xfe/\\x00p\\x00a\\x00t\\x00h\\x00/"
++ "\\x00d\\x00\\xe9\\x00f\\x00'"
++ )
++elif sys.byteorder == "big":
++ expected_byte_string = (
++ u"b'\\xfe\\xff\\x00/\\x00p\\x00a\\x00t\\x00h\\"
++ "x00/\\x00d\\x00\\xe9\\x00f'"
++ )
++
++
+ @pytest.mark.parametrize('path, fs_encoding, expected', [
+ (None, None, None),
+ # Test passing a text (unicode) string.
+@@ -383,9 +395,7 @@ def test_rmtree_retries_for_3sec(tmpdir, monkeypatch):
+ (u'/path/déf'.encode('utf-8'), 'utf-8', u'/path/déf'),
+ # Test a bytes object with a character that can't be decoded.
+ (u'/path/déf'.encode('utf-8'), 'ascii', u"b'/path/d\\xc3\\xa9f'"),
+- (u'/path/déf'.encode('utf-16'), 'utf-8',
+- u"b'\\xff\\xfe/\\x00p\\x00a\\x00t\\x00h\\x00/"
+- "\\x00d\\x00\\xe9\\x00f\\x00'"),
++ (u'/path/déf'.encode('utf-16'), 'utf-8', expected_byte_string),
+ ])
+ def test_path_to_display(monkeypatch, path, fs_encoding, expected):
+ monkeypatch.setattr(sys, 'getfilesystemencoding', lambda: fs_encoding)
+--
+2.26.2
+
diff --git a/dev-python/pip/files/pip-9.0.1-disable-version-check.patch b/dev-python/pip/files/pip-9.0.1-disable-version-check.patch
new file mode 100644
index 000000000000..7334380c1e1d
--- /dev/null
+++ b/dev-python/pip/files/pip-9.0.1-disable-version-check.patch
@@ -0,0 +1,32 @@
+From 890a1c26018752f2c57c7800968e4b8d1e0987f9 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 20 Nov 2016 19:52:40 +0100
+Subject: [PATCH] Stop checking for new versions
+
+---
+ pip/basecommand.py | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/pip/basecommand.py b/pip/basecommand.py
+index 54c6706..3cffe86 100644
+--- a/pip/basecommand.py
++++ b/pip/basecommand.py
+@@ -241,15 +241,6 @@ class Command(object):
+ logger.critical('Exception:', exc_info=True)
+
+ return UNKNOWN_ERROR
+- finally:
+- # Check if we're using the latest version of pip available
+- if (not options.disable_pip_version_check and not
+- getattr(options, "no_index", False)):
+- with self._build_session(
+- options,
+- retries=0,
+- timeout=min(5, options.timeout)) as session:
+- pip_version_check(session)
+
+ return SUCCESS
+
+--
+2.10.2
+
diff --git a/dev-python/pip/files/pip-disable-system-install.patch b/dev-python/pip/files/pip-disable-system-install.patch
new file mode 100644
index 000000000000..9e572454315e
--- /dev/null
+++ b/dev-python/pip/files/pip-disable-system-install.patch
@@ -0,0 +1,29 @@
+From 847553da616edabede18c69ba640a32b719b45a8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Tue, 27 Oct 2015 12:20:44 -0400
+Subject: [PATCH] install: Raise an error to avoid breaking python-exec
+
+Running pip without --target, --root, or --user will result in packages
+being installed systemwide. This has a tendency to break python-exec if
+setuptools gets installed or upgraded.
+---
+ pip/commands/install.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/pip/commands/install.py b/pip/commands/install.py
+index 46cd9f2..36b72f2 100644
+--- a/pip/commands/install.py
++++ b/pip/commands/install.py
+@@ -204,6 +204,9 @@ class InstallCommand(RequirementCommand):
+ )
+ options.ignore_installed = True
+
++ if not options.use_user_site and not options.target_dir and not options.root_path:
++ raise CommandError("(Gentoo) Please run pip with the --user option to avoid breaking python-exec")
++
+ if options.build_dir:
+ options.build_dir = os.path.abspath(options.build_dir)
+
+--
+2.6.2
+
diff --git a/dev-python/pip/metadata.xml b/dev-python/pip/metadata.xml
new file mode 100644
index 000000000000..446ff920f62a
--- /dev/null
+++ b/dev-python/pip/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="pypi">pip</remote-id>
+ <remote-id type="github">pypa/pip</remote-id>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>
diff --git a/dev-python/pip/pip-19.3.1-r2.ebuild b/dev-python/pip/pip-19.3.1-r2.ebuild
new file mode 100644
index 000000000000..17ca2852b9eb
--- /dev/null
+++ b/dev-python/pip/pip-19.3.1-r2.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 python3_{6,7,8} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1 multiprocessing
+
+SETUPTOOLS_PV="41.4.0"
+WHEEL_PV="0.33.6"
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/"
+SRC_URI="
+ https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ test? (
+ https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl
+ https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl
+ )
+"
+# PyPI archive does not have tests, so we need to download from GitHub.
+# setuptools & wheel .whl files are required for testing, exact version is not very important.
+
+LICENSE="MIT"
+KEYWORDS="amd64 arm64 ~hppa ~sparc x86"
+SLOT="0"
+IUSE="test -vanilla"
+
+# disable-system-install patch breaks tests
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-19.3-disable-version-check.patch"
+
+ # these are from upstream git
+ "${FILESDIR}/pip-19.3.1-network-tests.patch"
+ "${FILESDIR}/${PN}-20.1.1-test-endian.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-19.3.1-r2-disable-system-install.patch" )
+ fi
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ mkdir tests/data/common_wheels/ || die
+ cp "${DISTDIR}"/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+
+ cp "${DISTDIR}"/wheel-${WHEEL_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+ fi
+}
+
+python_test() {
+ if [[ ${EPYTHON} == pypy* ]]; then
+ ewarn "Skipping tests on ${EPYTHON} since they are very broken"
+ return 0
+ fi
+
+ local -a exclude_tests
+
+ # these will be built in to an expression passed to pytest to exclude
+ exclude_tests=(
+ git
+ svn
+ bazaar
+ mercurial
+ version_check
+ uninstall_non_local_distutils
+ pep518_uses_build_env
+ install_package_with_root
+ install_editable_with_prefix
+ install_user_wheel
+ install_from_current_directory_into_usersite
+ uninstall_editable_from_usersite
+ uninstall_from_usersite_with_dist_in_global_site
+ build_env_isolation
+ )
+
+ distutils_install_for_testing
+
+ # generate the expression to exclude failing tests
+ local exclude_expr
+ printf -v exclude_expr "or %s " "${exclude_tests[@]}" || die
+ exclude_expr="not (${exclude_expr#or })" || die
+
+ local -x GENTOO_PIP_TESTING=1 \
+ PATH="${TEST_DIR}/scripts:${PATH}" \
+ PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib"
+
+ pytest -vv \
+ -k "${exclude_expr}" \
+ -m "not network" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Prevent dbus auto-launch
+ # https://bugs.gentoo.org/692178
+ export DBUS_SESSION_BUS_ADDRESS="disabled:"
+
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; import pip.__main__; sys.exit(pip.__main__._main())'
+
+ ${PYTHON} -c "${pipcmd}" completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-20.0.2.ebuild b/dev-python/pip/pip-20.0.2.ebuild
new file mode 100644
index 000000000000..fcb8d78d31a7
--- /dev/null
+++ b/dev-python/pip/pip-20.0.2.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python2_7 python3_{6,7,8} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1 multiprocessing
+
+SETUPTOOLS_PV="44.0.0"
+WHEEL_PV="0.34.2"
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/"
+SRC_URI="
+ https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ test? (
+ https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl
+ https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl
+ )
+"
+# PyPI archive does not have tests, so we need to download from GitHub.
+# setuptools & wheel .whl files are required for testing, exact version is not very important.
+
+LICENSE="MIT"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 sparc ~x86"
+SLOT="0"
+IUSE="test -vanilla"
+
+# disable-system-install patch breaks tests
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-19.3-disable-version-check.patch"
+ "${FILESDIR}/${PN}-20.1.1-test-endian.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )
+ fi
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ mkdir tests/data/common_wheels/ || die
+ cp "${DISTDIR}"/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+
+ cp "${DISTDIR}"/wheel-${WHEEL_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+ fi
+}
+
+python_test() {
+ if [[ ${EPYTHON} == pypy* ]]; then
+ ewarn "Skipping tests on ${EPYTHON} since they are very broken"
+ return 0
+ fi
+
+ local -a exclude_tests
+
+ # these will be built in to an expression passed to pytest to exclude
+ exclude_tests=(
+ git
+ svn
+ bazaar
+ mercurial
+ version_check
+ uninstall_non_local_distutils
+ pep518_uses_build_env
+ install_package_with_root
+ install_editable_with_prefix
+ install_user_wheel
+ install_from_current_directory_into_usersite
+ uninstall_editable_from_usersite
+ uninstall_from_usersite_with_dist_in_global_site
+ build_env_isolation
+ )
+
+ distutils_install_for_testing
+
+ # generate the expression to exclude failing tests
+ local exclude_expr
+ printf -v exclude_expr "or %s " "${exclude_tests[@]}" || die
+ exclude_expr="not (${exclude_expr#or })" || die
+
+ local -x GENTOO_PIP_TESTING=1 \
+ PATH="${TEST_DIR}/scripts:${PATH}" \
+ PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib"
+
+ pytest -vv \
+ -k "${exclude_expr}" \
+ -m "not network" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Prevent dbus auto-launch
+ # https://bugs.gentoo.org/692178
+ export DBUS_SESSION_BUS_ADDRESS="disabled:"
+
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; import pip.__main__; sys.exit(pip.__main__._main())'
+
+ ${PYTHON} -c "${pipcmd}" completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-20.1.1.ebuild b/dev-python/pip/pip-20.1.1.ebuild
new file mode 100644
index 000000000000..c6e2c880ab95
--- /dev/null
+++ b/dev-python/pip/pip-20.1.1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python2_7 python3_{6,7,8,9} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1 multiprocessing
+
+SETUPTOOLS_PV="44.0.0"
+WHEEL_PV="0.34.2"
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/"
+SRC_URI="
+ https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ test? (
+ https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl
+ https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl
+ )
+"
+# PyPI archive does not have tests, so we need to download from GitHub.
+# setuptools & wheel .whl files are required for testing, exact version is not very important.
+
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+SLOT="0"
+IUSE="test -vanilla"
+
+# disable-system-install patch breaks tests
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/csv23[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ <dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' -2)
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-19.3-disable-version-check.patch"
+ "${FILESDIR}/${P}-test-endian.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )
+ fi
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ mkdir tests/data/common_wheels/ || die
+ cp "${DISTDIR}"/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+
+ cp "${DISTDIR}"/wheel-${WHEEL_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+ fi
+}
+
+python_test() {
+ if [[ ${EPYTHON} == pypy* ]]; then
+ ewarn "Skipping tests on ${EPYTHON} since they are very broken"
+ return 0
+ fi
+
+ local -a exclude_tests
+
+ # these will be built in to an expression passed to pytest to exclude
+ exclude_tests=(
+ git
+ svn
+ bazaar
+ mercurial
+ version_check
+ uninstall_non_local_distutils
+ pep518_uses_build_env
+ install_package_with_root
+ install_editable_with_prefix
+ install_user_wheel
+ install_from_current_directory_into_usersite
+ uninstall_editable_from_usersite
+ uninstall_from_usersite_with_dist_in_global_site
+ build_env_isolation
+ user_config_accepted
+ )
+
+ distutils_install_for_testing
+
+ # generate the expression to exclude failing tests
+ local exclude_expr
+ printf -v exclude_expr "or %s " "${exclude_tests[@]}" || die
+ exclude_expr="not (${exclude_expr#or })" || die
+
+ local -x GENTOO_PIP_TESTING=1 \
+ PATH="${TEST_DIR}/scripts:${PATH}" \
+ PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib"
+
+ pytest -vv \
+ -k "${exclude_expr}" \
+ -m "not network" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Prevent dbus auto-launch
+ # https://bugs.gentoo.org/692178
+ export DBUS_SESSION_BUS_ADDRESS="disabled:"
+
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; import pip.__main__; sys.exit(pip.__main__._main())'
+
+ ${PYTHON} -c "${pipcmd}" completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-20.1.ebuild b/dev-python/pip/pip-20.1.ebuild
new file mode 100644
index 000000000000..9da532f79f0e
--- /dev/null
+++ b/dev-python/pip/pip-20.1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python2_7 python3_{6,7,8} pypy3 )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit bash-completion-r1 distutils-r1 multiprocessing
+
+SETUPTOOLS_PV="44.0.0"
+WHEEL_PV="0.34.2"
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/"
+SRC_URI="
+ https://github.com/pypa/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ test? (
+ https://files.pythonhosted.org/packages/py2.py3/s/setuptools/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl
+ https://files.pythonhosted.org/packages/py2.py3/w/wheel/wheel-${WHEEL_PV}-py2.py3-none-any.whl
+ )
+"
+# PyPI archive does not have tests, so we need to download from GitHub.
+# setuptools & wheel .whl files are required for testing, exact version is not very important.
+
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+IUSE="test -vanilla"
+
+# disable-system-install patch breaks tests
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/csv23[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/enum34[${PYTHON_USEDEP}]' -2)
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-19.3-disable-version-check.patch"
+ "${FILESDIR}/${PN}-20.1.1-test-endian.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-20.0.2-disable-system-install.patch" )
+ fi
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ mkdir tests/data/common_wheels/ || die
+ cp "${DISTDIR}"/setuptools-${SETUPTOOLS_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+
+ cp "${DISTDIR}"/wheel-${WHEEL_PV}-py2.py3-none-any.whl \
+ tests/data/common_wheels/ || die
+ fi
+}
+
+python_test() {
+ if [[ ${EPYTHON} == pypy* ]]; then
+ ewarn "Skipping tests on ${EPYTHON} since they are very broken"
+ return 0
+ fi
+
+ local -a exclude_tests
+
+ # these will be built in to an expression passed to pytest to exclude
+ exclude_tests=(
+ git
+ svn
+ bazaar
+ mercurial
+ version_check
+ uninstall_non_local_distutils
+ pep518_uses_build_env
+ install_package_with_root
+ install_editable_with_prefix
+ install_user_wheel
+ install_from_current_directory_into_usersite
+ uninstall_editable_from_usersite
+ uninstall_from_usersite_with_dist_in_global_site
+ build_env_isolation
+ user_config_accepted
+ )
+
+ distutils_install_for_testing
+
+ # generate the expression to exclude failing tests
+ local exclude_expr
+ printf -v exclude_expr "or %s " "${exclude_tests[@]}" || die
+ exclude_expr="not (${exclude_expr#or })" || die
+
+ local -x GENTOO_PIP_TESTING=1 \
+ PATH="${TEST_DIR}/scripts:${PATH}" \
+ PYTHONPATH="${TEST_DIR}/lib:${BUILD_DIR}/lib"
+
+ pytest -vv \
+ -k "${exclude_expr}" \
+ -m "not network" \
+ || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ # Prevent dbus auto-launch
+ # https://bugs.gentoo.org/692178
+ export DBUS_SESSION_BUS_ADDRESS="disabled:"
+
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='import sys; sys.argv[0] = "pip"; import pip.__main__; sys.exit(pip.__main__._main())'
+
+ ${PYTHON} -c "${pipcmd}" completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ ${PYTHON} -c "${pipcmd}" completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}
diff --git a/dev-python/pip/pip-9.0.1-r2.ebuild b/dev-python/pip/pip-9.0.1-r2.ebuild
new file mode 100644
index 000000000000..792b91c4cefa
--- /dev/null
+++ b/dev-python/pip/pip-9.0.1-r2.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_6 pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit eutils bash-completion-r1 distutils-r1
+
+DESCRIPTION="Installs python packages -- replacement for easy_install"
+HOMEPAGE="https://pip.pypa.io/ https://pypi.org/project/pip/ https://github.com/pypa/pip/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux"
+SLOT="0"
+
+IUSE="-vanilla"
+
+# Check pip/_vendor/vendor.txt for this
+#VENDOR_DEPEND="
+# >=dev-python/distlib-0.2.2[${PYTHON_USEDEP}]
+# >=dev-python/html5lib-1.0b8[${PYTHON_USEDEP}]
+# >=dev-python/six-1.10.0${PYTHON_USEDEP}]
+# >=dev-python/colorama-0.3.6[${PYTHON_USEDEP}]
+# >=dev-python/requests-2.9.1-r2[${PYTHON_USEDEP}]
+# >=dev-python/CacheControl-0.11.6[${PYTHON_USEDEP}]
+# >=dev-python/lockfile-0.12.2[${PYTHON_USEDEP}]
+# >=dev-python/progress-1.2[${PYTHON_USEDEP}]
+# >=dev-python/packaging-16.5[${PYTHON_USEDEP}]
+# >=dev-python/retrying-1.3.3[${PYTHON_USEDEP}]
+# >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
+# virtual/python-ipaddress[${PYTHON_USEDEP}]
+#"
+# https://github.com/pypa/pip/issues/3057
+#RDEPEND="${VENDOR_DEPEND}
+# >=dev-python/setuptools-19.2[${PYTHON_USEDEP}]
+# <dev-python/setuptools-19.4[${PYTHON_USEDEP}]
+#"
+#DEPEND="${RDEPEND}"
+
+# required test data isn't bundled with the tarball
+RESTRICT="test"
+
+#PATCHES=(
+# "${FILESDIR}"/${PN}-6.0.2-disable-version-check.patch
+# "${FILESDIR}"/${PN}-8.0.0-unbundle.patch
+# )
+
+#python_prepare_all() {
+# mv pip/_vendor/__init__.py "${T}" || die
+# rm -r pip/_vendor/* || die
+# mv "${T}"/__init__.py pip/_vendor/__init__.py || die
+#
+# distutils-r1_python_prepare_all
+#}
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-9.0.1-disable-version-check.patch"
+ )
+ if ! use vanilla; then
+ PATCHES+=( "${FILESDIR}/pip-disable-system-install.patch" )
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/*.rst )
+ distutils-r1_python_install_all
+
+ COMPLETION="${T}"/completion.tmp
+
+ "${PYTHON}" -m pip completion --bash > "${COMPLETION}" || die
+ newbashcomp "${COMPLETION}" ${PN}
+
+ "${PYTHON}" -m pip completion --zsh > "${COMPLETION}" || die
+ insinto /usr/share/zsh/site-functions
+ newins "${COMPLETION}" _pip
+}