@@ -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
0 commit comments