mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-30 15:02:06 +01:00
dev-python/pip: Sync with Gentoo
It's from Gentoo commit 603e17596a2000b7a0967370ae8b82c4a06246df.
This commit is contained in:
parent
d527f5c1fb
commit
2aee06f802
209
sdk_container/src/third_party/portage-stable/dev-python/pip/files/pip-25.0.1-unbundle.patch
vendored
Normal file
209
sdk_container/src/third_party/portage-stable/dev-python/pip/files/pip-25.0.1-unbundle.patch
vendored
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
diff --git a/src/pip/_internal/cli/main_parser.py b/src/pip/_internal/cli/main_parser.py
|
||||||
|
index 5ade356b9..d07dfeab8 100644
|
||||||
|
--- a/src/pip/_internal/cli/main_parser.py
|
||||||
|
+++ b/src/pip/_internal/cli/main_parser.py
|
||||||
|
@@ -80,6 +80,11 @@ def parse_command(args: List[str]) -> Tuple[str, List[str]]:
|
||||||
|
|
||||||
|
# --python
|
||||||
|
if general_options.python and "_PIP_RUNNING_IN_SUBPROCESS" not in os.environ:
|
||||||
|
+ raise CommandError(
|
||||||
|
+ "--python option is not supported on Gentoo, as it requires bundled "
|
||||||
|
+ "dependencies that have been removed to improve security"
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
# Re-invoke pip using the specified Python interpreter
|
||||||
|
interpreter = identify_python_interpreter(general_options.python)
|
||||||
|
if interpreter is None:
|
||||||
|
diff --git a/src/pip/_internal/commands/debug.py b/src/pip/_internal/commands/debug.py
|
||||||
|
index 567ca967e..427bfcf04 100644
|
||||||
|
--- a/src/pip/_internal/commands/debug.py
|
||||||
|
+++ b/src/pip/_internal/commands/debug.py
|
||||||
|
@@ -6,7 +6,6 @@ from optparse import Values
|
||||||
|
from types import ModuleType
|
||||||
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
|
-import pip._vendor
|
||||||
|
from pip._vendor.certifi import where
|
||||||
|
from pip._vendor.packaging.version import parse as parse_version
|
||||||
|
|
||||||
|
@@ -192,9 +191,7 @@ class DebugCommand(Command):
|
||||||
|
show_value("REQUESTS_CA_BUNDLE", os.environ.get("REQUESTS_CA_BUNDLE"))
|
||||||
|
show_value("CURL_CA_BUNDLE", os.environ.get("CURL_CA_BUNDLE"))
|
||||||
|
show_value("pip._vendor.certifi.where()", where())
|
||||||
|
- show_value("pip._vendor.DEBUNDLED", pip._vendor.DEBUNDLED)
|
||||||
|
-
|
||||||
|
- show_vendor_versions()
|
||||||
|
+ show_value("pip._vendor.DEBUNDLED", True)
|
||||||
|
|
||||||
|
show_tags(options)
|
||||||
|
|
||||||
|
diff --git a/tests/conftest.py b/tests/conftest.py
|
||||||
|
index d093eea46..bf4d9e782 100644
|
||||||
|
--- a/tests/conftest.py
|
||||||
|
+++ b/tests/conftest.py
|
||||||
|
@@ -418,6 +418,7 @@ def _common_wheel_editable_install(
|
||||||
|
)
|
||||||
|
install_dir = tmpdir_factory.mktemp(package) / "install"
|
||||||
|
lib_install_dir = install_dir / "lib"
|
||||||
|
+ return lib_install_dir
|
||||||
|
bin_install_dir = install_dir / "bin"
|
||||||
|
with WheelFile.open(wheel_candidates[0]) as source:
|
||||||
|
install(
|
||||||
|
diff --git a/tests/functional/test_check.py b/tests/functional/test_check.py
|
||||||
|
index f50f5593e..c42e88bbe 100644
|
||||||
|
--- a/tests/functional/test_check.py
|
||||||
|
+++ b/tests/functional/test_check.py
|
||||||
|
@@ -10,10 +10,8 @@ from tests.lib import (
|
||||||
|
def matches_expected_lines(string: str, expected_lines: Collection[str]) -> bool:
|
||||||
|
# Ignore empty lines
|
||||||
|
output_lines = list(filter(None, string.splitlines()))
|
||||||
|
- # We'll match the last n lines, given n lines to match.
|
||||||
|
- last_few_output_lines = output_lines[-len(expected_lines) :]
|
||||||
|
# And order does not matter
|
||||||
|
- return set(last_few_output_lines) == set(expected_lines)
|
||||||
|
+ return set(expected_lines).issubset(set(output_lines))
|
||||||
|
|
||||||
|
|
||||||
|
def test_basic_check_clean(script: PipTestEnvironment) -> None:
|
||||||
|
diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
|
||||||
|
index 0a7cedd11..ea2fef37d 100644
|
||||||
|
--- a/tests/functional/test_freeze.py
|
||||||
|
+++ b/tests/functional/test_freeze.py
|
||||||
|
@@ -82,8 +82,8 @@ def test_basic_freeze(script: PipTestEnvironment) -> None:
|
||||||
|
result = script.pip("freeze", expect_stderr=True)
|
||||||
|
expected = textwrap.dedent(
|
||||||
|
"""\
|
||||||
|
- ...simple==2.0
|
||||||
|
- simple2==3.0...
|
||||||
|
+ ...simple==2.0...
|
||||||
|
+ ...simple2==3.0...
|
||||||
|
<BLANKLINE>"""
|
||||||
|
)
|
||||||
|
_check_output(result.stdout, expected)
|
||||||
|
@@ -1016,7 +1016,7 @@ def test_freeze_skip_work_dir_pkg(script: PipTestEnvironment) -> None:
|
||||||
|
|
||||||
|
# Freeze should not include package simple when run from package directory
|
||||||
|
result = script.pip("freeze", cwd=pkg_path)
|
||||||
|
- assert "simple" not in result.stdout
|
||||||
|
+ assert "\nsimple==" not in result.stdout
|
||||||
|
|
||||||
|
|
||||||
|
def test_freeze_include_work_dir_pkg(script: PipTestEnvironment) -> None:
|
||||||
|
diff --git a/tests/functional/test_install_check.py b/tests/functional/test_install_check.py
|
||||||
|
index 8a8a7c93a..bbda083f7 100644
|
||||||
|
--- a/tests/functional/test_install_check.py
|
||||||
|
+++ b/tests/functional/test_install_check.py
|
||||||
|
@@ -57,6 +57,7 @@ def test_check_install_canonicalization(script: PipTestEnvironment) -> None:
|
||||||
|
)
|
||||||
|
assert "requires" not in result.stderr
|
||||||
|
assert result.returncode == 0
|
||||||
|
+ return
|
||||||
|
|
||||||
|
# Double check that all errors are resolved in the end
|
||||||
|
result = script.pip("check")
|
||||||
|
diff --git a/tests/functional/test_list.py b/tests/functional/test_list.py
|
||||||
|
index e611fe7cb..c716f65c5 100644
|
||||||
|
--- a/tests/functional/test_list.py
|
||||||
|
+++ b/tests/functional/test_list.py
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
+import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
@@ -42,8 +43,8 @@ def test_basic_list(simple_script: PipTestEnvironment) -> None:
|
||||||
|
|
||||||
|
"""
|
||||||
|
result = simple_script.pip("list")
|
||||||
|
- assert "simple 1.0" in result.stdout, str(result)
|
||||||
|
- assert "simple2 3.0" in result.stdout, str(result)
|
||||||
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
||||||
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
||||||
|
|
||||||
|
|
||||||
|
def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
|
||||||
|
@@ -55,8 +56,8 @@ def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
|
||||||
|
assert "Version" in result.stdout, str(result)
|
||||||
|
assert "Location" in result.stdout, str(result)
|
||||||
|
assert "Installer" in result.stdout, str(result)
|
||||||
|
- assert "simple 1.0" in result.stdout, str(result)
|
||||||
|
- assert "simple2 3.0" in result.stdout, str(result)
|
||||||
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
||||||
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
||||||
|
|
||||||
|
|
||||||
|
def test_columns_flag(simple_script: PipTestEnvironment) -> None:
|
||||||
|
@@ -67,8 +68,8 @@ def test_columns_flag(simple_script: PipTestEnvironment) -> None:
|
||||||
|
assert "Package" in result.stdout, str(result)
|
||||||
|
assert "Version" in result.stdout, str(result)
|
||||||
|
assert "simple (1.0)" not in result.stdout, str(result)
|
||||||
|
- assert "simple 1.0" in result.stdout, str(result)
|
||||||
|
- assert "simple2 3.0" in result.stdout, str(result)
|
||||||
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
||||||
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
||||||
|
|
||||||
|
|
||||||
|
def test_format_priority(simple_script: PipTestEnvironment) -> None:
|
||||||
|
@@ -80,16 +81,16 @@ def test_format_priority(simple_script: PipTestEnvironment) -> None:
|
||||||
|
)
|
||||||
|
assert "simple==1.0" in result.stdout, str(result)
|
||||||
|
assert "simple2==3.0" in result.stdout, str(result)
|
||||||
|
- assert "simple 1.0" not in result.stdout, str(result)
|
||||||
|
- assert "simple2 3.0" not in result.stdout, str(result)
|
||||||
|
+ assert not re.search(r"simple\s+1\.0", result.stdout), str(result)
|
||||||
|
+ assert not re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
||||||
|
|
||||||
|
result = simple_script.pip("list", "--format=freeze", "--format=columns")
|
||||||
|
assert "Package" in result.stdout, str(result)
|
||||||
|
assert "Version" in result.stdout, str(result)
|
||||||
|
assert "simple==1.0" not in result.stdout, str(result)
|
||||||
|
assert "simple2==3.0" not in result.stdout, str(result)
|
||||||
|
- assert "simple 1.0" in result.stdout, str(result)
|
||||||
|
- assert "simple2 3.0" in result.stdout, str(result)
|
||||||
|
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
|
||||||
|
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
|
||||||
|
|
||||||
|
|
||||||
|
def test_local_flag(simple_script: PipTestEnvironment) -> None:
|
||||||
|
@@ -125,8 +126,8 @@ def test_multiple_exclude_and_normalization(
|
||||||
|
assert "Normalizable_Name" in result.stdout
|
||||||
|
assert "pip" in result.stdout
|
||||||
|
result = script.pip("list", "--exclude", "normalizablE-namE", "--exclude", "pIp")
|
||||||
|
- assert "Normalizable_Name" not in result.stdout
|
||||||
|
- assert "pip" not in result.stdout
|
||||||
|
+ assert "Normalizable_Name " not in result.stdout
|
||||||
|
+ assert "pip " not in result.stdout
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.network
|
||||||
|
diff --git a/tests/lib/venv.py b/tests/lib/venv.py
|
||||||
|
index fac54d3bd..6bfe3cfdc 100644
|
||||||
|
--- a/tests/lib/venv.py
|
||||||
|
+++ b/tests/lib/venv.py
|
||||||
|
@@ -9,6 +9,7 @@ import venv as _venv
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Dict, Literal, Optional, Union
|
||||||
|
|
||||||
|
+import pytest
|
||||||
|
import virtualenv as _virtualenv
|
||||||
|
|
||||||
|
VirtualEnvironmentType = Literal["virtualenv", "venv"]
|
||||||
|
@@ -35,7 +36,7 @@ class VirtualEnvironment:
|
||||||
|
self._venv_type = venv_type
|
||||||
|
else:
|
||||||
|
self._venv_type = "virtualenv"
|
||||||
|
- self._user_site_packages = False
|
||||||
|
+ self._user_site_packages = True
|
||||||
|
self._template = template
|
||||||
|
self._sitecustomize: Optional[str] = None
|
||||||
|
self._update_paths()
|
||||||
|
@@ -234,6 +235,8 @@ class VirtualEnvironment:
|
||||||
|
|
||||||
|
@user_site_packages.setter
|
||||||
|
def user_site_packages(self, value: bool) -> None:
|
||||||
|
+ if not value:
|
||||||
|
+ pytest.skip("Gentoo: skipping due to lack of system site-packages")
|
||||||
|
self._user_site_packages = value
|
||||||
|
if self._legacy_virtualenv:
|
||||||
|
marker = self.lib / "no-global-site-packages.txt"
|
||||||
@ -75,7 +75,7 @@ python_prepare_all() {
|
|||||||
local PATCHES=(
|
local PATCHES=(
|
||||||
"${FILESDIR}/pip-23.1-no-coverage.patch"
|
"${FILESDIR}/pip-23.1-no-coverage.patch"
|
||||||
# prepare to unbundle dependencies
|
# prepare to unbundle dependencies
|
||||||
"${FILESDIR}/pip-24.1-unbundle.patch"
|
"${FILESDIR}/pip-25.0.1-unbundle.patch"
|
||||||
)
|
)
|
||||||
|
|
||||||
distutils-r1_python_prepare_all
|
distutils-r1_python_prepare_all
|
||||||
@ -106,6 +106,11 @@ python_compile_all() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
python_test() {
|
python_test() {
|
||||||
|
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
|
||||||
|
einfo "Skipping tests on ${EPYTHON}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
local EPYTEST_DESELECT=(
|
local EPYTEST_DESELECT=(
|
||||||
tests/functional/test_inspect.py::test_inspect_basic
|
tests/functional/test_inspect.py::test_inspect_basic
|
||||||
# Internet
|
# Internet
|
||||||
Loading…
x
Reference in New Issue
Block a user