@@ -147,8 +147,8 @@ def _build(self):
147147 whl_libraries = self ._whl_libraries ,
148148 )
149149
150- def _pip_parse (self , module_ctx , pip_attr ):
151- python_version = pip_attr .python_version
150+ def _pip_parse (self , module_ctx , pip_attr , python_version = None ):
151+ python_version = python_version or pip_attr .python_version
152152 if python_version in self ._platforms :
153153 fail ((
154154 "Duplicate pip python version '{version}' for hub " +
@@ -197,8 +197,9 @@ def _pip_parse(self, module_ctx, pip_attr):
197197 self ,
198198 module_ctx ,
199199 pip_attr = pip_attr ,
200- enable_pipstar = self ._config .enable_pipstar or self ._get_index_urls .get (pip_attr .python_version ),
201- enable_pipstar_extract = self ._config .enable_pipstar_extract or self ._get_index_urls .get (pip_attr .python_version ),
200+ python_version = python_version ,
201+ enable_pipstar = self ._config .enable_pipstar or self ._get_index_urls .get (python_version ),
202+ enable_pipstar_extract = self ._config .enable_pipstar_extract or self ._get_index_urls .get (python_version ),
202203 )
203204
204205### end of PUBLIC methods
@@ -410,11 +411,11 @@ def _set_get_index_urls(self, pip_attr):
410411 )
411412 return True
412413
413- def _detect_interpreter (self , pip_attr ):
414+ def _detect_interpreter (self , pip_attr , python_version ):
414415 python_interpreter_target = pip_attr .python_interpreter_target
415416 if python_interpreter_target == None and not pip_attr .python_interpreter :
416417 python_name = "python_{}_host" .format (
417- pip_attr . python_version .replace ("." , "_" ),
418+ python_version .replace ("." , "_" ),
418419 )
419420 if python_name not in self ._available_interpreters :
420421 fail ((
@@ -424,7 +425,7 @@ def _detect_interpreter(self, pip_attr):
424425 "Expected to find {python_name} among registered versions:\n {labels}"
425426 ).format (
426427 hub_name = self .name ,
427- version = pip_attr . python_version ,
428+ version = python_version ,
428429 python_name = python_name ,
429430 labels = " \n " .join (self ._available_interpreters ),
430431 ))
@@ -488,17 +489,17 @@ def _platforms(module_ctx, *, python_version, config, target_platforms):
488489 )
489490 return platforms
490491
491- def _evaluate_markers (self , pip_attr , enable_pipstar ):
492+ def _evaluate_markers (self , pip_attr , python_version , enable_pipstar ):
492493 if self ._evaluate_markers_fn :
493494 return self ._evaluate_markers_fn
494495
495496 if enable_pipstar :
496497 return lambda _ , requirements : evaluate_markers_star (
497498 requirements = requirements ,
498- platforms = self ._platforms [pip_attr . python_version ],
499+ platforms = self ._platforms [python_version ],
499500 )
500501
501- interpreter = _detect_interpreter (self , pip_attr )
502+ interpreter = _detect_interpreter (self , pip_attr , python_version )
502503
503504 # NOTE @aignas 2024-08-02: , we will execute any interpreter that we find either
504505 # in the PATH or if specified as a label. We will configure the env
@@ -518,7 +519,7 @@ def _evaluate_markers(self, pip_attr, enable_pipstar):
518519 module_ctx ,
519520 requirements = {
520521 k : {
521- p : self ._platforms [pip_attr . python_version ][p ].triple
522+ p : self ._platforms [python_version ][p ].triple
522523 for p in plats
523524 }
524525 for k , plats in requirements .items ()
@@ -534,6 +535,7 @@ def _create_whl_repos(
534535 module_ctx ,
535536 * ,
536537 pip_attr ,
538+ python_version ,
537539 enable_pipstar = False ,
538540 enable_pipstar_extract = False ):
539541 """create all of the whl repositories
@@ -542,11 +544,12 @@ def _create_whl_repos(
542544 self: the builder.
543545 module_ctx: {type}`module_ctx`.
544546 pip_attr: {type}`struct` - the struct that comes from the tag class iteration.
547+ python_version: {type}`str` - the resolved python version for this pip.parse call.
545548 enable_pipstar: {type}`bool` - enable the pipstar or not.
546549 enable_pipstar_extract: {type}`bool` - enable the pipstar extraction or not.
547550 """
548551 logger = self ._logger
549- platforms = self ._platforms [pip_attr . python_version ]
552+ platforms = self ._platforms [python_version ]
550553 requirements_by_platform = parse_requirements (
551554 module_ctx ,
552555 requirements_by_platform = requirements_files_by_platform (
@@ -558,15 +561,15 @@ def _create_whl_repos(
558561 extra_pip_args = pip_attr .extra_pip_args ,
559562 platforms = sorted (platforms ), # here we only need keys
560563 python_version = full_version (
561- version = pip_attr . python_version ,
564+ version = python_version ,
562565 minor_mapping = self ._minor_mapping ,
563566 ),
564567 logger = logger ,
565568 ),
566569 platforms = platforms ,
567570 extra_pip_args = pip_attr .extra_pip_args ,
568- get_index_urls = self ._get_index_urls .get (pip_attr . python_version ),
569- evaluate_markers = _evaluate_markers (self , pip_attr , enable_pipstar ),
571+ get_index_urls = self ._get_index_urls .get (python_version ),
572+ evaluate_markers = _evaluate_markers (self , pip_attr , python_version , enable_pipstar ),
570573 logger = logger ,
571574 )
572575
@@ -588,7 +591,7 @@ def _create_whl_repos(
588591 enable_pipstar = enable_pipstar ,
589592 )
590593
591- interpreter = _detect_interpreter (self , pip_attr )
594+ interpreter = _detect_interpreter (self , pip_attr , python_version )
592595
593596 for whl in requirements_by_platform :
594597 whl_library_args = common_args | _whl_library_args (
@@ -602,17 +605,17 @@ def _create_whl_repos(
602605 whl_library_args = whl_library_args ,
603606 download_only = pip_attr .download_only ,
604607 netrc = self ._config .netrc or pip_attr .netrc ,
605- use_downloader = _use_downloader (self , pip_attr . python_version , whl .name ),
608+ use_downloader = _use_downloader (self , python_version , whl .name ),
606609 auth_patterns = self ._config .auth_patterns or pip_attr .auth_patterns ,
607- python_version = _major_minor_version (pip_attr . python_version ),
610+ python_version = _major_minor_version (python_version ),
608611 is_multiple_versions = whl .is_multiple_versions ,
609612 interpreter = interpreter ,
610613 enable_pipstar = enable_pipstar ,
611614 enable_pipstar_extract = enable_pipstar_extract ,
612615 )
613616 _add_whl_library (
614617 self ,
615- python_version = pip_attr . python_version ,
618+ python_version = python_version ,
616619 whl = whl ,
617620 repo = repo ,
618621 enable_pipstar = enable_pipstar ,
0 commit comments