Skip to content

Commit 28b08a0

Browse files
QuentinLee5Martinn1996
authored andcommitted
Update self._logged_links after calling static function
1 parent e7eaede commit 28b08a0

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

src/pip/_internal/index/package_finder.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -994,7 +994,7 @@ def _find_all_candidates_static(
994994
link_evaluator_tuple, # type: LinkEvaluatorTuple
995995
project_name # type: str
996996
):
997-
# type: (...) -> List[InstallationCandidate]
997+
# type: (...) -> Tuple[List[InstallationCandidate], Set[Link]]
998998
"""Find all available InstallationCandidate for project_name
999999
10001000
This checks index_urls and find_links.
@@ -1004,15 +1004,13 @@ def _find_all_candidates_static(
10041004
are accepted.
10051005
"""
10061006

1007-
# Need to convert logged_links to normal set, so we can update it.
10081007
package_finder_tuple = PackageFinderTuple(
10091008
logged_links=set(package_finder_tuple.logged_links),
10101009
link_collector=package_finder_tuple.link_collector,
10111010
target_python=package_finder_tuple.target_python,
10121011
candidate_prefs=package_finder_tuple.candidate_prefs
10131012
)
10141013

1015-
# Add link_collector to the tuple
10161014
collected_links = package_finder_tuple.link_collector.collect_links(
10171015
project_name
10181016
)
@@ -1023,7 +1021,6 @@ def _find_all_candidates_static(
10231021
links=collected_links.find_links,
10241022
)
10251023

1026-
# Only needs link collector from package_finder
10271024
page_versions = []
10281025
for project_url in collected_links.project_urls:
10291026
package_links = PackageFinder._process_project_url_static(
@@ -1049,7 +1046,10 @@ def _find_all_candidates_static(
10491046
)
10501047

10511048
# This is an intentional priority ordering
1052-
return file_versions + find_links_versions + page_versions
1049+
return (
1050+
file_versions + find_links_versions + page_versions,
1051+
package_finder_tuple.logged_links
1052+
)
10531053

10541054
def find_all_candidates(self, project_name):
10551055
# type: (str) -> List[InstallationCandidate]
@@ -1065,12 +1065,17 @@ def find_all_candidates(self, project_name):
10651065

10661066
package_finder_tuple = self.get_state_as_tuple(immutable=True)
10671067
link_evaluator_tuple = link_evaluator.get_state_as_tuple()
1068-
return self._find_all_candidates_static(
1068+
1069+
(candidates, logged_links) = self._find_all_candidates_static(
10691070
package_finder_tuple,
10701071
link_evaluator_tuple,
10711072
project_name
10721073
)
10731074

1075+
self._logged_links = logged_links
1076+
1077+
return candidates
1078+
10741079
@staticmethod
10751080
def _make_candidate_evaluator_static(
10761081
package_finder_tuple, # type: PackageFinderTuple
@@ -1115,20 +1120,20 @@ def _find_best_candidate_static(
11151120
specifier=None, # type: Optional[specifiers.BaseSpecifier]
11161121
hashes=None # type: Optional[Hashes]
11171122
):
1118-
# type: (...) -> BestCandidateResult
1123+
# type: (...) -> Tuple[BestCandidateResult, Set[Link]]
11191124
candidate_evaluator = PackageFinder._make_candidate_evaluator_static(
11201125
package_finder_tuple,
11211126
project_name,
11221127
specifier,
11231128
hashes
11241129
)
1125-
candidates = PackageFinder._find_all_candidates_static(
1130+
(candidates, logged_links) = PackageFinder._find_all_candidates_static(
11261131
package_finder_tuple,
11271132
link_evaluator_tuple,
11281133
project_name
11291134
)
11301135

1131-
return candidate_evaluator.compute_best_candidate(candidates)
1136+
return (candidate_evaluator.compute_best_candidate(candidates), logged_links)
11321137

11331138
def find_best_candidate(
11341139
self,
@@ -1151,14 +1156,18 @@ def find_best_candidate(
11511156
package_finder_tuple = self.get_state_as_tuple(immutable=True)
11521157
link_evaluator_tuple = link_evaluator.get_state_as_tuple()
11531158

1154-
return self._find_best_candidate_static(
1159+
(best_candidate, logged_links) = self._find_best_candidate_static(
11551160
package_finder_tuple,
11561161
link_evaluator_tuple,
11571162
project_name,
11581163
specifier,
11591164
hashes
11601165
)
11611166

1167+
self._logged_links = logged_links
1168+
1169+
return best_candidate
1170+
11621171
def find_requirement(self, req, upgrade):
11631172
# type: (InstallRequirement, bool) -> Optional[InstallationCandidate]
11641173
"""Try to find a Link matching req

tests/unit/test_resolution_legacy_resolver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class TestYankedWarning:
180180
"""
181181
def _make_test_resolver(self, monkeypatch, mock_candidates):
182182
def _find_candidates(package_finder, link_evaluator, project_name):
183-
return mock_candidates
183+
return (mock_candidates, [])
184184

185185
finder = make_test_finder()
186186
monkeypatch.setattr(

0 commit comments

Comments
 (0)