1212
1313import ramble .error
1414import ramble .util .colors as rucolor
15+ from ramble .expander import Expander
1516
1617reserved_variants = {
1718 "modifier" ,
@@ -249,17 +250,37 @@ def value(self, name: str):
249250
250251 return None
251252
252- def as_set (self ):
253+ def _expanded_set (self , expander : Optional [Expander ] = None ) -> set :
254+ """Return an expanded version of the cached set in this variant set.
255+
256+ Args:
257+ expander (ramble.expander.Expander): Expander to use for expanding this set
258+
259+ Returns:
260+ (set): Set of exanded variant definitions
261+ """
262+
263+ if expander is None :
264+ return self ._set_cache
265+
266+ expanded_set = set ()
267+ for variant in self ._set_cache :
268+ expanded_set .add (expander .expand_var (variant ))
269+ return expanded_set
270+
271+ def as_set (self , expander : Optional [Expander ] = None ) -> set :
253272 """Construct a set of definitions for this variant set
254273
255274 The set of variant definitions will be used to determine if a when
256275 clause is valid or not.
257276
258277 Returns:
259278 set: A set consisting of strings with the variant definitions
279+ expander (ramble.expander.Expander): Expander to use when expanding
280+ variant definitions
260281 """
261282 if self ._set_cache is not None :
262- return self ._set_cache
283+ return self ._expanded_set ( expander )
263284
264285 defined_variants = set ()
265286 out_set = set ()
@@ -288,7 +309,7 @@ def as_set(self):
288309 out_set .add (variant .as_definition ())
289310
290311 self ._set_cache = out_set
291- return out_set
312+ return self . _expanded_set ( expander )
292313
293314
294315class Variant :
@@ -317,7 +338,7 @@ def copy(self):
317338 name = self .name , default = self .default , description = self .description , values = self .values
318339 )
319340
320- def as_definition (self ):
341+ def as_definition (self ) -> str :
321342 """Build a definition for this variant
322343
323344 Format the variant as a string which can be used to test against when
@@ -328,13 +349,6 @@ def as_definition(self):
328349 """
329350 return self ._definition
330351
331- if isinstance (self .default , bool ):
332- if self .default :
333- return f"+{ self .name } "
334- else :
335- return f"~{ self .name } "
336- return f"{ self .name } ={ str (self .default )} "
337-
338352 def as_str (self , n_indent : int = 0 , verbose : bool = False ):
339353 """String documentation of this variant
340354
0 commit comments