mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-28 14:01:43 +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=(
|
||||
"${FILESDIR}/pip-23.1-no-coverage.patch"
|
||||
# prepare to unbundle dependencies
|
||||
"${FILESDIR}/pip-24.1-unbundle.patch"
|
||||
"${FILESDIR}/pip-25.0.1-unbundle.patch"
|
||||
)
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
@ -106,6 +106,11 @@ python_compile_all() {
|
||||
}
|
||||
|
||||
python_test() {
|
||||
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
|
||||
einfo "Skipping tests on ${EPYTHON}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local EPYTEST_DESELECT=(
|
||||
tests/functional/test_inspect.py::test_inspect_basic
|
||||
# Internet
|
||||
Loading…
x
Reference in New Issue
Block a user