Open ended variants (#4746)

* Change directives to allow open-ended variants more easily

* make None default to open-ended
This commit is contained in:
becker33 2017-07-18 10:03:15 -07:00 committed by GitHub
parent 1215c3b20c
commit d2a63d55fa

View File

@ -372,7 +372,7 @@ def variant(
name, name,
default=None, default=None,
description='', description='',
values=(True, False), values=None,
multi=False, multi=False,
validator=None validator=None
): ):
@ -394,6 +394,12 @@ def variant(
logic. It receives a tuple of values and should raise an instance logic. It receives a tuple of values and should raise an instance
of SpackError if the group doesn't meet the additional constraints of SpackError if the group doesn't meet the additional constraints
""" """
if values is None:
if default in (True, False) or (type(default) is str and
default.upper() in ('TRUE', 'FALSE')):
values = (True, False)
else:
values = lambda x: True
if default is None: if default is None:
default = False if values == (True, False) else '' default = False if values == (True, False) else ''