fix: support {{ suffix }} name in 1.1 format version

This commit is contained in:
egarette@silique.fr 2025-05-02 08:12:06 +02:00
parent 46e2ede81d
commit 6167e1ea2c
9 changed files with 24 additions and 22 deletions

View file

@ -464,7 +464,7 @@ class ParserVariable:
if obj_type == "dynamic":
family_is_dynamic = True
if "{{ identifier }}" not in name:
if version == "1.0" and "{{ suffix }}" in name:
if "{{ suffix }}" in name:
name = name.replace("{{ suffix }}", "{{ identifier }}")
path = path.replace("{{ suffix }}", "{{ identifier }}")
elif "variable" in family_obj:
@ -841,6 +841,8 @@ class ParserVariable:
parent_dynamic: Optional[str],
version: str,
) -> None:
if "{ suffix" in variable["path"]:
raise Exception()
"""Add a new variable"""
if not isinstance(filename, list):
filename = [filename]

View file

@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
dict_env['validators_rougail.var1'] = "{% if _.var1 != index %}\n value != than index\n{% endif %}"
option_2 = IntOption(name="var1", doc="a second variable", multi=True, default=[0, 1, 2], default_multi=0, validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.var1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.var1"), 'index': ParamIndex(), '_.var1': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml'], 'type': 'number'})
option_2 = IntOption(name="var1", doc="a second variable", multi=True, default=[0, 1, 2], default_multi=0, validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.var1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("rougail.var1"), 'index': ParamIndex(), '_.var1': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml'], 'type': 'number', 'test': (0,)})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2], properties=frozenset({"standard"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
dict_env['validators_var1'] = "{% if _.var1 != index %}\n value != than index\n{% endif %}"
option_1 = IntOption(name="var1", doc="a second variable", multi=True, default=[0, 1, 2], default_multi=0, validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_var1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("var1"), 'index': ParamIndex(), '_.var1': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml'], 'type': 'number'})
option_1 = IntOption(name="var1", doc="a second variable", multi=True, default=[0, 1, 2], default_multi=0, validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_var1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml']), '__internal_attribute': ParamValue("validators"), '__internal_variable': ParamValue("var1"), 'index': ParamIndex(), '_.var1': ParamSelfOption(whole=False)}))], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5validators_multi3/rougail/00-base.yml'], 'type': 'number', 'test': (0,)})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])

View file

@ -6,19 +6,19 @@
"val2"
]
},
"rougail.{{ suffix }}val1.{{ suffix }}val1.var": {
"rougail.val1.val1.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val1.{{ suffix }}val2.var": {
"rougail.val1.val2.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val2.{{ suffix }}val1.var": {
"rougail.val2.val1.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val2.{{ suffix }}val2.var": {
"rougail.val2.val2.var": {
"owner": "default",
"value": null
}

View file

@ -3,8 +3,8 @@
"val1",
"val2"
],
"rougail.{{ suffix }}val1.{{ suffix }}val1.var": null,
"rougail.{{ suffix }}val1.{{ suffix }}val2.var": null,
"rougail.{{ suffix }}val2.{{ suffix }}val1.var": null,
"rougail.{{ suffix }}val2.{{ suffix }}val2.var": null
"rougail.val1.val1.var": null,
"rougail.val1.val2.var": null,
"rougail.val2.val1.var": null,
"rougail.val2.val2.var": null
}

View file

@ -6,19 +6,19 @@
"val2"
]
},
"rougail.{{ suffix }}val1.{{ suffix }}val1.var": {
"rougail.val1.val1.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val1.{{ suffix }}val2.var": {
"rougail.val1.val2.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val2.{{ suffix }}val1.var": {
"rougail.val2.val1.var": {
"owner": "default",
"value": null
},
"rougail.{{ suffix }}val2.{{ suffix }}val2.var": {
"rougail.val2.val2.var": {
"owner": "default",
"value": null
}

View file

@ -1 +1 @@
["rougail.{{ suffix }}val1.{{ suffix }}val1.var", "rougail.{{ suffix }}val1.{{ suffix }}val2.var", "rougail.{{ suffix }}val2.{{ suffix }}val1.var", "rougail.{{ suffix }}val2.{{ suffix }}val2.var"]
["rougail.val1.val1.var", "rougail.val1.val2.var", "rougail.val2.val1.var", "rougail.val2.val2.var"]

View file

@ -3,8 +3,8 @@
"val1",
"val2"
],
"rougail.{{ suffix }}val1.{{ suffix }}val1.var": null,
"rougail.{{ suffix }}val1.{{ suffix }}val2.var": null,
"rougail.{{ suffix }}val2.{{ suffix }}val1.var": null,
"rougail.{{ suffix }}val2.{{ suffix }}val2.var": null
"rougail.val1.val1.var": null,
"rougail.val1.val2.var": null,
"rougail.val2.val1.var": null,
"rougail.val2.val2.var": null
}

View file

@ -12,7 +12,7 @@ ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="var", doc="A identifier variable", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml'], 'type': 'string'})
option_5 = StrOption(name="var", doc="A dynamic variable", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml'], 'type': 'string'})
optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var', 'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml']})
optiondescription_3 = ConvertDynOptionDescription(name="{{ suffix }}{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var', 'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml']})
optiondescription_4 = ConvertDynOptionDescription(name="{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var', 'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml']})
optiondescription_3 = ConvertDynOptionDescription(name="{{ identifier }}", doc="A dynamic family", identifiers=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_4], properties=frozenset({"basic"}), informations={'dynamic_variable': 'rougail.var', 'ymlfiles': ['../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2/rougail/00-base.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])