@@ -59,6 +59,7 @@ def hub_builder(
5959 exposed_packages = {},
6060 extra_aliases = {},
6161 whl_libraries = {},
62+ group_map = {},
6263 _evaluate_markers_fn = evaluate_markers_fn ,
6364 _logger = logger ,
6465 _minor_mapping = minor_mapping ,
@@ -79,11 +80,21 @@ def hub_builder(
7980 python_version in self ._get_index_urls ,
8081 ),
8182 evaluate_markers = lambda * a , ** k : _evaluate_markers (self , * a , ** k ),
83+ build = lambda : _build (self ),
8284 )
8385
8486 # buildifier: enable=uninitialized
8587 return self
8688
89+ def _build (self ):
90+ return struct (
91+ whl_map = self .whl_map ,
92+ exposed_packages = self .exposed_packages ,
93+ extra_aliases = self .extra_aliases ,
94+ whl_libraries = self .whl_libraries ,
95+ group_map = self .group_map ,
96+ )
97+
8798def _add (self , * , pip_attr ):
8899 python_version = pip_attr .python_version
89100 if python_version in self .python_versions :
@@ -114,7 +125,8 @@ def _add(self, *, pip_attr):
114125 # cycles for different abis/oses? For now we will need the users to
115126 # assume the same groups across all versions/platforms until we start
116127 # using an alternative cycle resolution strategy.
117- self .group_map = pip_attr .experimental_requirement_cycles
128+ self .group_map .clear ()
129+ self .group_map .update (pip_attr .experimental_requirement_cycles )
118130
119131def _set_index_urls (self , pip_attr ):
120132 if not pip_attr .experimental_index_url :
0 commit comments