Add float spec

master
Tom Wilson 5 years ago
parent 6a1ae80e3a
commit 90e0d9dd88

@ -63,6 +63,24 @@ class IntSpec(_ValueSpecification):
str(self.maxval)) str(self.maxval))
@preservable
class FloatSpec(_ValueSpecification):
def __init__(self, minval=None, maxval=None, helptext=""):
super().__init__(helptext)
self.minval = minval
self.maxval = maxval
def validate(self, value):
if not isinstance(value, float):
raise InvalidConfigError("Config value must be a float")
if self.minval is not None and value < self.minval:
raise InvalidConfigError("Config value must be >= " +
str(self.minval))
if self.maxval is not None and value > self.maxval:
raise InvalidConfigError("Config value must be <= " +
str(self.maxval))
@preservable @preservable
class StringSpec(_ValueSpecification): class StringSpec(_ValueSpecification):
def __init__(self, regex=None, helptext=""): def __init__(self, regex=None, helptext=""):

@ -12,18 +12,22 @@ def example_spec():
confspec.add_spec("boollist_a", ListSpec(BoolSpec(), helptext="Bool List A")) confspec.add_spec("boollist_a", ListSpec(BoolSpec(), helptext="Bool List A"))
confspec.add_spec("int_a", IntSpec(-4, 4, helptext="Int A")) confspec.add_spec("int_a", IntSpec(-4, 4, helptext="Int A"))
confspec.add_spec("intlist_a", ListSpec(IntSpec(-4, 4, "Int A"))) confspec.add_spec("intlist_a", ListSpec(IntSpec(-4, 4, "Int A")))
confspec.add_spec("float_a", FloatSpec(-4, 4, helptext="Float A"))
confspec.add_spec("floatlist_a", ListSpec(FloatSpec(-4, 4, "Float A")))
confspec.add_spec("string_a", StringSpec(helptext="String A")) confspec.add_spec("string_a", StringSpec(helptext="String A"))
confspec.add_spec("stringlist_a", ListSpec(StringSpec(), helptext="String List A")) confspec.add_spec("stringlist_a", ListSpec(StringSpec(), helptext="String List A"))
confdictspec = confspec.add_spec("dict_a", DictSpec(helptext="Dict A")) confdictspec = confspec.add_spec("dict_a", DictSpec(helptext="Dict A"))
confdictspec.add_spec("bool_b", BoolSpec(helptext="Bool B")) confdictspec.add_spec("bool_b", BoolSpec(helptext="Bool B"))
confdictspec.add_spec("int_b", IntSpec(helptext="Int B")) confdictspec.add_spec("int_b", IntSpec(helptext="Int B"))
confdictspec.add_spec("float_b", FloatSpec(helptext="Float B"))
confdictspec.add_spec("string_b", StringSpec(helptext="String B")) confdictspec.add_spec("string_b", StringSpec(helptext="String B"))
confdictlist = confspec.add_spec("dictlist_a", ListSpec( confdictlist = confspec.add_spec("dictlist_a", ListSpec(
DictSpec(), helptext="List of Dicts B")) DictSpec(), helptext="List of Dicts B"))
confdictlist.add_specs({"bool_c": BoolSpec(helptext="Bool C"), confdictlist.add_specs({"bool_c": BoolSpec(helptext="Bool C"),
"int_c": IntSpec(helptext="Int C"), "int_c": IntSpec(helptext="Int C"),
"float_c": FloatSpec(helptext="Float C"),
"string_c": StringSpec(helptext="String C")}) "string_c": StringSpec(helptext="String C")})
return confspec return confspec
@ -35,17 +39,22 @@ def example_values():
'boollist_a': [False, True], 'boollist_a': [False, True],
'int_a': 1, 'int_a': 1,
'intlist_a': [1, 2, 3, 4], 'intlist_a': [1, 2, 3, 4],
'float_a': 1.5,
'floatlist_a': [1.2, 2.1, 3.7, 2.8],
'string_a': 'sometext', 'string_a': 'sometext',
'stringlist_a': ['somemoretext', 'yetmoretext'], 'stringlist_a': ['somemoretext', 'yetmoretext'],
'dict_a': { 'dict_a': {
'bool_b': False, 'bool_b': False,
'int_b': 0, 'int_b': 0,
'float_b': 0.5,
'string_b': 'texttesttext'}, 'string_b': 'texttesttext'},
'dictlist_a': [{'bool_c': False, 'dictlist_a': [{'bool_c': False,
'int_c': 3, 'int_c': 3,
'float_c': 3.4,
'string_c': 'string1'}, 'string_c': 'string1'},
{'bool_c': True, {'bool_c': True,
'int_c': 0, 'int_c': 0,
'float_c': 0.4,
'string_c': 'string2'}]} 'string_c': 'string2'}]}
return vals return vals

Loading…
Cancel
Save