Compare commits

...

2 commits

4 changed files with 20 additions and 3 deletions

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "tiramisu"
version = "5.2.0a18"
version = "5.2.0a19"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md"
description = "an options controller tool"

View file

@ -1128,3 +1128,15 @@ def test_default_calc():
od2 = OptionDescription('root', '', [od1])
cfg = Config(od2)
assert parse_od_get(cfg.value.get()) == {'od.interface0.var1': [{'od.interface0.var1': 'leader1', 'od.interface0.var2': ['leader1']}, {'od.interface0.var1': 'leader2', 'od.interface0.var2': ['leader2']}]}
def test_default_set_calc():
var1 = StrOption('var1', "", multi=True, properties=frozenset({"mandatory", "novalidator", "force_store_value"}))
var2 = StrOption('var2', "", default_multi=[Calculation(calc_value, Params((ParamOption(var1))))], multi=submulti, properties=frozenset({"mandatory",}))
leader = Leadership('interface0', '', [var1, var2])
od1 = OptionDescription('od', '', [leader])
od2 = OptionDescription('root', '', [od1])
cfg = Config(od2)
cfg.property.read_write()
cfg.option('od.interface0.var1').value.set(Calculation(calc_value, Params(ParamValue(['leader1', 'leader2']))))
assert parse_od_get(cfg.value.get()) == {'od.interface0.var1': [{'od.interface0.var1': 'leader1', 'od.interface0.var2': ['leader1']}, {'od.interface0.var1': 'leader2', 'od.interface0.var2': ['leader2']}]}

View file

@ -1 +1 @@
__version__ = "5.2.0a18"
__version__ = "5.2.0a19"

View file

@ -318,13 +318,18 @@ class Values:
elif isinstance(value, list):
# copy
value = value.copy()
elif isinstance(value, Calculation):
value, _has_calculation = get_calculated_value(
subconfig,
value,
)
self._setvalue(
subconfig,
ori_value,
owner,
)
if (
"force_store_value" in setting_properties
"force_store_value" in self_properties
and subconfig.option.impl_is_leader()
):
leader = subconfig.option.impl_get_leadership()