fix: validators for an index

This commit is contained in:
egarette@silique.fr 2025-05-01 21:27:19 +02:00
parent 1dcc00429c
commit 2488cc471e
281 changed files with 1821 additions and 22 deletions

View file

@ -423,7 +423,6 @@ class ParserVariable:
obj,
filename,
family_is_dynamic,
False,
version,
typ="family",
)
@ -608,7 +607,6 @@ class ParserVariable:
family,
filename,
family_is_dynamic,
False,
version,
typ="family",
)
@ -668,7 +666,6 @@ class ParserVariable:
obj,
filename,
family_is_dynamic,
family_is_leadership is True and first_variable is False,
version,
)
self.parse_params(path, obj, filename)
@ -717,7 +714,6 @@ class ParserVariable:
obj: dict,
filename: str,
family_is_dynamic: bool,
is_follower: bool,
version: str,
*,
typ: str = "variable",
@ -741,7 +737,6 @@ class ParserVariable:
value,
path,
family_is_dynamic,
is_follower,
version,
[filename],
)
@ -767,7 +762,6 @@ class ParserVariable:
val,
path,
family_is_dynamic,
is_follower,
version,
[filename],
inside_list=True,
@ -798,7 +792,6 @@ class ParserVariable:
value=val,
type="any",
path=None,
is_follower=None,
attribute=None,
family_is_dynamic=None,
namespace=self.namespace,
@ -835,7 +828,6 @@ class ParserVariable:
secret_manager,
path,
family_is_dynamic,
False,
version,
[filename],
)
@ -949,7 +941,6 @@ class ParserVariable:
value: dict,
path: str,
family_is_dynamic: bool,
is_follower: bool,
version: str,
xmlfiles: List[str],
*,
@ -993,7 +984,6 @@ class ParserVariable:
val["key"] = key
val["path"] = path
val["family_is_dynamic"] = family_is_dynamic
val["is_follower"] = is_follower
val["attribute"] = attribute
val["namespace"] = self.namespace
val["xmlfiles"] = xmlfiles

View file

@ -147,7 +147,6 @@ class Param(BaseModel):
path,
attribute,
family_is_dynamic,
is_follower,
xmlfiles,
**kwargs,
) -> None:
@ -239,14 +238,11 @@ class InformationParam(Param):
class IndexParam(Param):
type: str
def __init__(
self,
**kwargs,
) -> None:
if not kwargs["is_follower"]:
msg = _('the variable "{0}" is not a follower, so cannot have index type for param in "{1}"').format(kwargs["path"], kwargs["attribute"])
raise DictConsistencyError(msg, 25, kwargs["xmlfiles"])
super().__init__(**kwargs)
def to_param(self, attribute_name, objectspace, path, version, namespace, xmlfiles) -> dict:
if path not in objectspace.followers and (attribute_name != 'validators' or path not in objectspace.multis):
msg = _('the variable "{0}" is not a follower, so cannot have index type for param in "{1}"').format(path, attribute)
raise DictConsistencyError(msg, 25, xmlfiles)
return super().to_param(attribute_name, objectspace, path, version, namespace, xmlfiles)
class NamespaceParam(Param):

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,3 @@
{
"rougail.version": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.empty": null
}

View file

@ -0,0 +1,6 @@
{
"rougail.var1": "no",
"rougail.var2": [
"no"
]
}

View file

@ -0,0 +1,12 @@
{
"rougail.var1": [
"no",
"yes",
"maybe"
],
"rougail.var2": [
"no",
"yes",
"maybe"
]
}

View file

@ -0,0 +1,20 @@
{
"rougail.leadership.var1": {
"owner": "default",
"value": [
"a_value"
]
},
"rougail.leadership.var2": {
"owner": [
"default"
],
"value": [
"a_value"
]
},
"rougail.var2": {
"owner": "default",
"value": "a_value"
}
}

View file

@ -0,0 +1,9 @@
{
"rougail.leadership.var1": [
{
"rougail.leadership.var1": "a_value",
"rougail.leadership.var2": "a_value"
}
],
"rougail.var2": "a_value"
}

View file

@ -0,0 +1,20 @@
{
"rougail.leadership.var1": {
"owner": "default",
"value": [
"a_value"
]
},
"rougail.leadership.var2": {
"owner": [
"default"
],
"value": [
"a_value"
]
},
"rougail.var2": {
"owner": "default",
"value": "a_value"
}
}

View file

@ -0,0 +1,3 @@
{
"rougail.var2": "a_value"
}

View file

@ -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")
dict_env['default_rougail.var2'] = "{{ var1[0] }}"
option_3 = StrOption(name="var1", doc="a first variable", multi=True, default=["a_value"], properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
option_4 = StrOption(name="var2", doc="a first variable", multi=True, default_multi="a_value", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
optiondescription_2 = Leadership(name="leadership", doc="leadership", children=[option_3, option_4], properties=frozenset({"hidden", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml']})
option_5 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("rougail.var2"), 'var1': ParamOption(option_3)})), properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2, option_5], properties=frozenset({"standard"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,14 @@
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")
dict_env['default_var2'] = "{{ var1[0] }}"
option_2 = StrOption(name="var1", doc="a first variable", multi=True, default=["a_value"], properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
option_3 = StrOption(name="var2", doc="a first variable", multi=True, default_multi="a_value", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
optiondescription_1 = Leadership(name="leadership", doc="leadership", children=[option_2, option_3], properties=frozenset({"hidden", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml']})
option_4 = StrOption(name="var2", doc="a second variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml']), '__internal_attribute': ParamValue("default"), '__internal_variable': ParamValue("var2"), 'var1': ParamOption(option_2)})), properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_params_permissive/rougail/00-base.yml'], 'type': 'string'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, option_4])

View file

@ -0,0 +1,4 @@
{
"rougail.var1": [],
"rougail.var2": []
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.without_type": "non"
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": true,
"rougail.var2": true,
"rougail.var3": true,
"rougail.var4": false,
"rougail.var5": false,
"rougail.var6": false
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": true
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": null,
"rougail.var2": null,
"rougail.var3": null,
"rougail.var4": null,
"rougail.var5": "a",
"rougail.var6": 1
}

View file

@ -0,0 +1,3 @@
{
"rougail.var": 9
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": [
"a",
"b",
"c"
],
"rougail.var2": "a"
}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"a",
"b",
"c"
],
"rougail.var2": "a",
"rougail.var3": "a"
}

View file

@ -0,0 +1,9 @@
{
"rougail.var1": [
"a",
"b",
"c"
],
"rougail.var2": "a",
"rougail.family.var3": "a"
}

View file

@ -0,0 +1,4 @@
{
"rougail.custom1": null,
"rougail.custom2": "value"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "my.domain.name"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "my.domain.name"
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": 0.0,
"rougail.var2": 0.0,
"rougail.var3": 0.0,
"rougail.var4": 10.1,
"rougail.var5": 10.1,
"rougail.var6": 10.1
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": 0,
"rougail.var2": 0,
"rougail.var3": 0,
"rougail.var4": 10,
"rougail.var5": 10,
"rougail.var6": 10
}

View file

@ -0,0 +1,5 @@
{
"rougail.variable1": null,
"rougail.variable2": "8080",
"rougail.variable3": "8080"
}

View file

@ -0,0 +1,3 @@
{
"rougail.var": "#a1a1a1"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "#a1a1a1",
"rougail.var2": "#a1a1a1"
}

View file

@ -0,0 +1,4 @@
{
"rougail.secret1": null,
"rougail.secret2": "value"
}

View file

@ -0,0 +1,5 @@
{
"rougail.secret1": null,
"rougail.secret2": "value",
"rougail.secret3": "value"
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": null,
"rougail.var2": null,
"rougail.var3": null,
"rougail.var4": "value",
"rougail.var5": "value",
"rougail.var6": "value"
}

View file

@ -0,0 +1,3 @@
{
"rougail.var": "quote'"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "quote\""
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "quote'\""
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "quote\\\"\\'"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "quote'"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "value"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "Rougail"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "Rougail"
}

View file

@ -0,0 +1,8 @@
{
"rougail.var1": null,
"rougail.var2": "value",
"rougail.var3": null,
"rougail.var4": null,
"rougail.var5": true,
"rougail.var6": []
}

View file

@ -0,0 +1,4 @@
{
"rougail.variable1": [],
"rougail.variable2": []
}

View file

@ -0,0 +1,5 @@
{
"rougail.source_variable_1": "val1",
"rougail.source_variable_2": "val2",
"rougail.my_variable": "val1"
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "string_1_True_None"
}

View file

@ -0,0 +1,3 @@
{
"rougail.var": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": "value"
}

View file

@ -0,0 +1,6 @@
{
"rougail.my_variable": "val1",
"rougail.my_calculated_variable": [
"val1"
]
}

View file

@ -0,0 +1,6 @@
{
"rougail.my_variable": "val1",
"rougail.my_calculated_variable": [
"val1"
]
}

View file

@ -0,0 +1,3 @@
{
"rougail.my_calculated_variable": []
}

View file

@ -0,0 +1,10 @@
{
"rougail.my_variable": [
"val1",
"val2"
],
"rougail.my_calculated_variable": [
"val1",
"val2"
]
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "no",
"rougail.var2": "no"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": null,
"rougail.var2": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.var": 9
}

View file

@ -0,0 +1,4 @@
{
"rougail.variable": "rougail",
"extra.variable": "no"
}

View file

@ -0,0 +1,6 @@
{
"rougail.variable": "value",
"extra.variable1": "value",
"extra.variable2": "value",
"extra.variable3": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.variable": "value in extra",
"extra.variable": "value in extra"
}

View file

@ -0,0 +1,26 @@
{
"rougail.var1": [
true
],
"rougail.var2": [
true
],
"rougail.var3": [
true
],
"rougail.var4": [
false
],
"rougail.var5": [
false
],
"rougail.var6": [
false
],
"rougail.var7": [
true
],
"rougail.var8": [
true
]
}

View file

@ -0,0 +1,6 @@
{
"rougail.custom1": [],
"rougail.custom2": [
"value"
]
}

View file

@ -0,0 +1,26 @@
{
"rougail.var1": [
0.0
],
"rougail.var2": [
0.0
],
"rougail.var3": [
0.0
],
"rougail.var4": [
10.1
],
"rougail.var5": [
10.1
],
"rougail.var6": [
10.1
],
"rougail.var7": [
0.0
],
"rougail.var8": [
0.0
]
}

View file

@ -0,0 +1,26 @@
{
"rougail.var1": [
0
],
"rougail.var2": [
0
],
"rougail.var3": [
0
],
"rougail.var4": [
10
],
"rougail.var5": [
10
],
"rougail.var6": [
10
],
"rougail.var7": [
0
],
"rougail.var8": [
0
]
}

View file

@ -0,0 +1,6 @@
{
"rougail.var1": [
"value",
null
]
}

View file

@ -0,0 +1,20 @@
{
"rougail.var1": [],
"rougail.var2": [],
"rougail.var3": [],
"rougail.var4": [
"value"
],
"rougail.var5": [
"value"
],
"rougail.var6": [
"value"
],
"rougail.var7": [
"value"
],
"rougail.var8": [
"value"
]
}

View file

@ -0,0 +1,5 @@
{
"rougail.variable": [
"quote\""
]
}

View file

@ -0,0 +1,5 @@
{
"rougail.variable": [
"quote'\""
]
}

View file

@ -0,0 +1,5 @@
{
"rougail.variable": [
"quote'"
]
}

View file

@ -0,0 +1,5 @@
{
"rougail.variable": [
"value"
]
}

View file

@ -0,0 +1,8 @@
{
"rougail.variable1": [
"a",
"b",
"c"
],
"rougail.variable2": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.int": 10
}

View file

@ -0,0 +1,3 @@
{
"rougail.variable": "no"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "no",
"rougail.var2": "no"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "no",
"rougail.var2": "yes"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "value",
"rougail.var3": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "value",
"rougail.var3": "value"
}

View file

@ -0,0 +1,3 @@
{
"rougail.var3": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var2": null,
"rougail.var3": "value"
}

View file

@ -0,0 +1,3 @@
{
"rougail.var1": "value"
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "value",
"rougail.var3": null
}

View file

@ -0,0 +1,5 @@
{
"rougail.condition": "no",
"rougail.variable1": null,
"rougail.variable2": null
}

View file

@ -0,0 +1,5 @@
{
"rougail.condition": "no",
"rougail.var1": "no",
"rougail.var2": "no"
}

View file

@ -0,0 +1,5 @@
{
"rougail.condition": "no",
"rougail.variable1": [],
"rougail.variable2": []
}

View file

@ -0,0 +1,3 @@
{
"rougail.condition": "no"
}

View file

@ -0,0 +1,4 @@
{
"rougail.condition": false,
"rougail.variable": null
}

View file

@ -0,0 +1,3 @@
{
"rougail.condition": true
}

View file

@ -0,0 +1,3 @@
{
"rougail.condition": "yes"
}

View file

@ -0,0 +1,4 @@
{
"rougail.condition": "yes",
"rougail.variable": null
}

View file

@ -0,0 +1,4 @@
{
"rougail.condition": false,
"rougail.variable": []
}

View file

@ -0,0 +1,5 @@
{
"rougail.condition": "no",
"rougail.var1": "no",
"rougail.var2": "no"
}

View file

@ -0,0 +1,3 @@
{
"rougail.condition": "no"
}

View file

@ -0,0 +1,5 @@
{
"rougail.condition": "no",
"rougail.var1": "no",
"rougail.var2": "no"
}

View file

@ -0,0 +1,3 @@
{
"rougail.int": null
}

View file

@ -0,0 +1,4 @@
{
"rougail.var1": "oui",
"rougail.var2": "no"
}

Some files were not shown because too many files have changed in this diff Show more