diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py index 7655fc169..6b19fc9e6 100644 --- a/src/rougail/annotator/variable.py +++ b/src/rougail/annotator/variable.py @@ -142,7 +142,6 @@ class Annotator(Walk): # pylint: disable=R0903 if variable.path in self.objectspace.leaders: variable.multi = self.objectspace.multis[variable.path] = True elif variable.version != "1.0" and isinstance(variable.default, VariableCalculation): - # FIXME calculated_variable_path, calculated_variable, identifier = variable.default.get_variable( self.objectspace ) diff --git a/tests/dictionaries/16_3family_empty_at_ends/tiramisu/base.py b/tests/dictionaries/16_3family_empty_at_ends/tiramisu/base.py new file mode 100644 index 000000000..d0123625b --- /dev/null +++ b/tests/dictionaries/16_3family_empty_at_ends/tiramisu/base.py @@ -0,0 +1,16 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('../rougail-tests/funcs/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_2 = OptionDescription(name="family", doc="family", children=[option_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/16_3family_empty_at_ends/tiramisu/no_namespace.py b/tests/dictionaries/16_3family_empty_at_ends/tiramisu/no_namespace.py new file mode 100644 index 000000000..324febe01 --- /dev/null +++ b/tests/dictionaries/16_3family_empty_at_ends/tiramisu/no_namespace.py @@ -0,0 +1,11 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('../rougail-tests/funcs/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="family", doc="family", children=[option_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/base.py b/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/base.py index 54a445145..341924393 100644 --- a/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/base.py +++ b/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/base.py @@ -12,7 +12,7 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="var", doc="a variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="fam1", doc="first family", children=[option_3], properties=frozenset({"standard"})) -option_5 = StrOption(name="var", doc="a varaible", default=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="a variable", default=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_4 = OptionDescription(name="fam2", doc="second family", children=[option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/no_namespace.py b/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/no_namespace.py index b493cb1a6..aa290241b 100644 --- a/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/no_namespace.py +++ b/tests/dictionaries/40_8calculation_multi_variable_parent2/tiramisu/no_namespace.py @@ -8,6 +8,6 @@ ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") option_2 = StrOption(name="var", doc="a variable", default="no", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="fam1", doc="first family", children=[option_2], properties=frozenset({"standard"})) -option_4 = StrOption(name="var", doc="a varaible", default=Calculation(func['calc_value'], Params((ParamOption(option_2)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_4 = StrOption(name="var", doc="a variable", default=Calculation(func['calc_value'], Params((ParamOption(option_2)))), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_3 = OptionDescription(name="fam2", doc="second family", children=[option_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_3]) diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi/tiramisu/base.py index e4069d48d..08f34457f 100644 --- a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi/tiramisu/base.py +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi/tiramisu/base.py @@ -14,6 +14,6 @@ option_2 = StrOption(name="var1", doc="A suffix variable", multi=True, default=[ option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) -option_6 = StrOption(name="var2", doc="A variable calculated", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_6 = StrOption(name="var2", doc="A variable calculated", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1"])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "notunique", "standard"}), informations={'type': 'string'}) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/after.json b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/after.json new file mode 100644 index 000000000..7f32d937e --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/after.json @@ -0,0 +1,32 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval1.dynval2.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.dynval2.var": { + "owner": "default", + "value": null + }, + "rougail.var2": { + "owner": "default", + "value": [ + null, + null + ] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/base.json b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/base.json new file mode 100644 index 000000000..cccd7c422 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/base.json @@ -0,0 +1,14 @@ +{ + "rougail.var1": [ + "val1", + "val2" + ], + "rougail.dynval1.dynval1.var": null, + "rougail.dynval1.dynval2.var": null, + "rougail.dynval2.dynval1.var": null, + "rougail.dynval2.dynval2.var": null, + "rougail.var2": [ + null, + null + ] +} diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/before.json b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/before.json new file mode 100644 index 000000000..7f32d937e --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/before.json @@ -0,0 +1,32 @@ +{ + "rougail.var1": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval1.dynval2.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.dynval1.var": { + "owner": "default", + "value": null + }, + "rougail.dynval2.dynval2.var": { + "owner": "default", + "value": null + }, + "rougail.var2": { + "owner": "default", + "value": [ + null, + null + ] + } +} diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/mandatory.json b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/mandatory.json new file mode 100644 index 000000000..15fa27a3e --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.dynval1.dynval1.var", "rougail.dynval1.dynval2.var", "rougail.dynval2.dynval1.var", "rougail.dynval2.dynval2.var", "rougail.var2"] \ No newline at end of file diff --git a/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/tiramisu/base.py b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/tiramisu/base.py new file mode 100644 index 000000000..d9a679009 --- /dev/null +++ b/tests/dictionaries/60_6family_dynamic_suffix_auto_multi2/tiramisu/base.py @@ -0,0 +1,19 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from re import compile as re_compile +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('../rougail-tests/funcs/test.py') +try: + groups.namespace +except: + groups.addgroup('namespace') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="var1", doc="A suffix variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ identifier }}", doc="dyn{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var1'}) +option_6 = StrOption(name="var2", doc="A variable calculated", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ["val1", None])), kwargs={'__internal_multi': ParamValue(True)})), properties=frozenset({"mandatory", "notunique", "standard"}), informations={'type': 'string'}) +optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3, option_6], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/60_9extra_dynamic_extra/tiramisu/base.py b/tests/dictionaries/60_9extra_dynamic_extra/tiramisu/base.py index 9a8c6c689..c432272ba 100644 --- a/tests/dictionaries/60_9extra_dynamic_extra/tiramisu/base.py +++ b/tests/dictionaries/60_9extra_dynamic_extra/tiramisu/base.py @@ -13,7 +13,7 @@ ALLOWED_LEADER_PROPERTIES.add("advanced") option_3 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"standard"})) -option_5 = StrOption(name="var", doc="a varaible", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) +option_5 = StrOption(name="var", doc="a variable", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "standard"}), informations={'type': 'string'}) option_7 = StrOption(name="var", doc="var", properties=frozenset({"basic", "mandatory"}), informations={'type': 'string'}) optiondescription_6 = ConvertDynOptionDescription(name="dyn_{{ identifier }}", doc="dyn_{{ identifier }}", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_5)))), children=[option_7], properties=frozenset({"basic"}), informations={'dynamic_variable': 'extra.var'}) optiondescription_4 = OptionDescription(name="extra", doc="extra", group_type=groups.namespace, children=[option_5, optiondescription_6], properties=frozenset({"basic"})) diff --git a/tests/errors/21_0calculation_variable_inside_list_non_list/rougail/00-base.yml b/tests/errors/21_0calculation_variable_inside_list_non_list/rougail/00-base.yml index b2f377466..5dc5c2ad3 100644 --- a/tests/errors/21_0calculation_variable_inside_list_non_list/rougail/00-base.yml +++ b/tests/errors/21_0calculation_variable_inside_list_non_list/rougail/00-base.yml @@ -4,7 +4,7 @@ version: 1.1 var1: "no" # a variable var2: - description: a varaible + description: a variable multi: false default: - variable: _.var1 diff --git a/tests/errors/21_0calculation_variable_multi_non_multi/rougail/00-base.yml b/tests/errors/21_0calculation_variable_multi_non_multi/rougail/00-base.yml index f992e01b2..3061713e1 100644 --- a/tests/errors/21_0calculation_variable_multi_non_multi/rougail/00-base.yml +++ b/tests/errors/21_0calculation_variable_multi_non_multi/rougail/00-base.yml @@ -4,7 +4,7 @@ version: 1.1 var1: "no" # a variable var2: - description: a varaible + description: a variable multi: true default: variable: _.var1 diff --git a/tests/errors/21_0calculation_variable_multi_non_multi_2/rougail/00-base.yml b/tests/errors/21_0calculation_variable_multi_non_multi_2/rougail/00-base.yml index 59fa04263..840463f30 100644 --- a/tests/errors/21_0calculation_variable_multi_non_multi_2/rougail/00-base.yml +++ b/tests/errors/21_0calculation_variable_multi_non_multi_2/rougail/00-base.yml @@ -5,7 +5,7 @@ var1: # a variable - no var2: - description: a varaible + description: a variable multi: false default: variable: _.var1