Update safety patch

This commit is contained in:
Matt Davis
2023-07-21 23:54:45 -04:00
committed by Oz Tiram
parent ed4fced07a
commit 301d2041e7
3 changed files with 28 additions and 28 deletions
@@ -17,7 +17,7 @@ index 599132611..f6ff8ad22 100644
sys.exit(_main())
diff --git a/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py b/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py
index 0ba06c52..6fdb59b7 100644
index de04e1d73..0f54c26a1 100644
--- a/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py
+++ b/pipenv/patched/pip/_internal/resolution/resolvelib/candidates.py
@@ -2,6 +2,7 @@ import logging
@@ -28,8 +28,8 @@ index 0ba06c52..6fdb59b7 100644
from pipenv.patched.pip._vendor.packaging.utils import NormalizedName, canonicalize_name
from pipenv.patched.pip._vendor.packaging.version import Version
@@ -253,7 +253,10 @@ class _InstallRequirementBackedCandidate(Candidate):
yield self._factory.make_requires_python_requirement(self.dist.requires_python)
@@ -244,7 +245,10 @@ class _InstallRequirementBackedCandidate(Candidate):
yield self._factory.make_requires_python_requirement(self.dist.requires_python)
def get_install_requirement(self) -> Optional[InstallRequirement]:
- return self._ireq
@@ -114,7 +114,7 @@ index 858a41014..868a1cad9 100644
"Show help for commands.",
),
diff --git a/pipenv/patched/pip/_internal/index/package_finder.py b/pipenv/patched/pip/_internal/index/package_finder.py
index 9bf247f02..9cfc3003a 100644
index b6f8d57e8..35bf105b9 100644
--- a/pipenv/patched/pip/_internal/index/package_finder.py
+++ b/pipenv/patched/pip/_internal/index/package_finder.py
@@ -125,6 +125,7 @@ class LinkEvaluator:
@@ -139,9 +139,9 @@ index 9bf247f02..9cfc3003a 100644
self._formats = formats
self._target_python = target_python
+ self._ignore_compatibility = ignore_compatibility
self.project_name = project_name
@@ -181,10 +185,10 @@ class LinkEvaluator:
LinkType.format_unsupported,
f"unsupported archive format: {ext}",
@@ -157,7 +157,7 @@ index 9bf247f02..9cfc3003a 100644
try:
@@ -199,7 +203,7 @@ class LinkEvaluator:
return (LinkType.different_project, reason)
supported_tags = self._target_python.get_tags()
- if not wheel.supported(supported_tags):
+ if not wheel.supported(supported_tags) and not self._ignore_compatibility:
@@ -172,11 +172,11 @@ index 9bf247f02..9cfc3003a 100644
+ if not supports_python and not self._ignore_compatibility:
reason = f"{version} Requires-Python {link.requires_python}"
return (LinkType.requires_python_mismatch, reason)
@@ -487,7 +491,10 @@ class CandidateEvaluator:
return sorted(filtered_applicable_candidates, key=self._sort_key)
- def _sort_key(self, candidate: InstallationCandidate) -> CandidateSortingKey:
+ def _sort_key(
+ self, candidate: InstallationCandidate,
@@ -202,7 +202,7 @@ index 9bf247f02..9cfc3003a 100644
if self._prefer_binary:
binary_preference = 1
if wheel.build_tag is not None:
@@ -601,6 +610,7 @@ class PackageFinder:
@@ -602,6 +611,7 @@ class PackageFinder:
format_control: Optional[FormatControl] = None,
candidate_prefs: Optional[CandidatePreferences] = None,
ignore_requires_python: Optional[bool] = None,
@@ -210,33 +210,33 @@ index 9bf247f02..9cfc3003a 100644
) -> None:
"""
This constructor is primarily meant to be used by the create() class
@@ -622,6 +632,7 @@ class PackageFinder:
@@ -623,6 +633,7 @@ class PackageFinder:
self._ignore_requires_python = ignore_requires_python
self._link_collector = link_collector
self._target_python = target_python
+ self._ignore_compatibility = ignore_compatibility
self.format_control = format_control
@@ -722,6 +733,7 @@ class PackageFinder:
target_python=self._target_python,
allow_yanked=self._allow_yanked,
ignore_requires_python=self._ignore_requires_python,
@@ -663,6 +674,7 @@ class PackageFinder:
allow_yanked=selection_prefs.allow_yanked,
format_control=selection_prefs.format_control,
ignore_requires_python=selection_prefs.ignore_requires_python,
+ ignore_compatibility=self._ignore_compatibility
)
def _sort_links(self, links: Iterable[Link]) -> List[Link]:
@property
diff --git a/pipenv/patched/pip/_internal/req/req_install.py b/pipenv/patched/pip/_internal/req/req_install.py
index a1e376c89..1406403a4 100644
index 1f479713a..34fb11c07 100644
--- a/pipenv/patched/pip/_internal/req/req_install.py
+++ b/pipenv/patched/pip/_internal/req/req_install.py
@@ -485,6 +485,7 @@ class InstallRequirement:
@@ -514,6 +514,7 @@ class InstallRequirement:
self.unpacked_source_directory,
backend,
backend_path=backend_path,
+ python_executable=os.getenv('PIP_PYTHON_PATH', sys.executable)
+ python_executable=os.getenv('PIPENV_PYTHON_PATH', sys.executable)
)
def isolated_editable_sanity_check(self) -> None:
diff --git a/pipenv/patched/pip/_vendor/requests/packages.py b/pipenv/patched/pip/_vendor/requests/packages.py
index 9582fa730..720410ab5 100644
@@ -244,7 +244,7 @@ index 9582fa730..720410ab5 100644
+++ b/pipenv/patched/pip/_vendor/requests/packages.py
@@ -4,13 +4,13 @@ import sys
# I don't like it either. Just look the other way. :)
for package in ('urllib3', 'idna', 'chardet'):
- vendored_package = "pip._vendor." + package
+ vendored_package = "pipenv.patched.pip._vendor." + package
@@ -257,5 +257,5 @@ index 9582fa730..720410ab5 100644
- sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod]
+ unprefixed_mod = mod[len("pipenv.patched.pip._vendor."):]
+ sys.modules['pipenv.patched.pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod]
# Kinda cool, though, right?
@@ -36,7 +36,7 @@ index 0120610c..ead5227e 100644
return link_collector
diff --git a/pipenv/patched/pip/_internal/models/search_scope.py b/pipenv/patched/pip/_internal/models/search_scope.py
index a64af738..76c44656 100644
index fe61e8116..dab85fbb9 100644
--- a/pipenv/patched/pip/_internal/models/search_scope.py
+++ b/pipenv/patched/pip/_internal/models/search_scope.py
@@ -3,7 +3,7 @@ import logging
@@ -86,7 +86,7 @@ index a64af738..76c44656 100644
def get_formatted_locations(self) -> str:
lines = []
@@ -130,4 +134,7 @@ class SearchScope:
@@ -129,4 +133,9 @@ class SearchScope:
loc = loc + "/"
return loc
@@ -94,6 +94,6 @@ index a64af738..76c44656 100644
+ index_urls = self.index_urls
+ if project_name in self.index_lookup:
+ index_urls = [self.index_lookup[project_name]]
+ else:
+ elif self.index_urls:
+ index_urls = [self.index_urls[0]]
+ return [mkurl_pypi_url(url) for url in index_urls]