fix: types inside extra namespace

This commit is contained in:
egarette@silique.fr 2026-03-06 08:07:36 +01:00
parent f7aad40ee7
commit ca588b9cd5
53 changed files with 472 additions and 100 deletions

View file

@ -346,6 +346,7 @@ class ParserVariable:
parent_dynamic: Optional[str] = None, parent_dynamic: Optional[str] = None,
copy_before_set: bool = False, copy_before_set: bool = False,
force_redefine: bool = False, force_redefine: bool = False,
custom_type: bool = False,
) -> None: ) -> None:
if name.startswith("_"): if name.startswith("_"):
msg = f'the variable or family name "{name}" is incorrect, it must not starts with "_" character' msg = f'the variable or family name "{name}" is incorrect, it must not starts with "_" character'
@ -381,6 +382,7 @@ class ParserVariable:
parent_dynamic=parent_dynamic, parent_dynamic=parent_dynamic,
copy_before_set=copy_before_set, copy_before_set=copy_before_set,
force_redefine=force_redefine, force_redefine=force_redefine,
custom_type=custom_type,
) )
def parse_family( def parse_family(
@ -398,6 +400,7 @@ class ParserVariable:
parent_dynamic: Optional[str] = None, parent_dynamic: Optional[str] = None,
copy_before_set: bool = False, copy_before_set: bool = False,
force_redefine: Union[bool, str] = False, force_redefine: Union[bool, str] = False,
custom_type: bool = False,
) -> None: ) -> None:
"""Parse a family""" """Parse a family"""
if obj is None: if obj is None:
@ -434,6 +437,7 @@ class ParserVariable:
family_is_dynamic=family_is_dynamic, family_is_dynamic=family_is_dynamic,
parent_dynamic=parent_dynamic, parent_dynamic=parent_dynamic,
copy_before_set=True, copy_before_set=True,
custom_type=True,
) )
force_redefine=True force_redefine=True
family_obj["type"] = self.paths[path].type family_obj["type"] = self.paths[path].type
@ -497,6 +501,7 @@ class ParserVariable:
sources, sources,
family_is_dynamic, family_is_dynamic,
parent_dynamic, parent_dynamic,
custom_type=custom_type,
) )
force_not_first = False force_not_first = False
if self.paths[path].type == "leadership": if self.paths[path].type == "leadership":
@ -523,6 +528,7 @@ class ParserVariable:
parent_dynamic=parent_dynamic, parent_dynamic=parent_dynamic,
force_redefine=force_redefine, force_redefine=force_redefine,
copy_before_set=copy_before_set, copy_before_set=copy_before_set,
custom_type=custom_type,
) )
def list_attributes( def list_attributes(
@ -578,6 +584,8 @@ class ParserVariable:
sources: list[str], sources: list[str],
family_is_dynamic: bool, family_is_dynamic: bool,
parent_dynamic: str, parent_dynamic: str,
*,
custom_type: bool=False,
) -> None: ) -> None:
"""Add a new family""" """Add a new family"""
family["path"] = path family["path"] = path
@ -585,6 +593,8 @@ class ParserVariable:
family["version"] = self.version family["version"] = self.version
family["xmlfiles"] = sources family["xmlfiles"] = sources
obj_type = self.get_family_or_variable_type(family) obj_type = self.get_family_or_variable_type(family)
if custom_type:
self.change_namespaces(family)
if obj_type == "dynamic": if obj_type == "dynamic":
family_obj = self.dynamic family_obj = self.dynamic
if self.version == "1.0": if self.version == "1.0":
@ -672,6 +682,7 @@ class ParserVariable:
parent_dynamic: Optional[str] = None, parent_dynamic: Optional[str] = None,
copy_before_set: bool = False, copy_before_set: bool = False,
force_redefine: bool = False, force_redefine: bool = False,
custom_type: bool = False,
) -> None: ) -> None:
"""Parse variable""" """Parse variable"""
if self.version == "1.0" or isinstance(obj, dict): if self.version == "1.0" or isinstance(obj, dict):
@ -705,7 +716,7 @@ class ParserVariable:
if obj_type in self.custom_variable_types: if obj_type in self.custom_variable_types:
redefine = True redefine = True
custom = self.custom_variable_types[obj_type].copy() custom = self.custom_variable_types[obj_type].copy()
self.add_variable(name, path, custom, custom['xmlfiles'].copy(), family_is_dynamic, parent_dynamic, family_is_leadership, first_variable) self.add_variable(name, path, custom, custom['xmlfiles'].copy(), family_is_dynamic, parent_dynamic, family_is_leadership, first_variable, custom_type=True)
del obj["type"] del obj["type"]
if path in self.paths: if path in self.paths:
if not self.load_unexist_redefine: if not self.load_unexist_redefine:
@ -733,7 +744,7 @@ class ParserVariable:
if not self.load_unexist_redefine and redefine: if not self.load_unexist_redefine and redefine:
msg = f'cannot redefine the inexisting variable "{path}"' msg = f'cannot redefine the inexisting variable "{path}"'
raise DictConsistencyError(msg, 46, sources) raise DictConsistencyError(msg, 46, sources)
self.add_variable(name, path, obj, sources, family_is_dynamic, parent_dynamic, family_is_leadership, first_variable) self.add_variable(name, path, obj, sources, family_is_dynamic, parent_dynamic, family_is_leadership, first_variable, custom_type=custom_type)
def parse_parameters( def parse_parameters(
self, self,
@ -880,6 +891,8 @@ class ParserVariable:
parent_dynamic: Optional[str], parent_dynamic: Optional[str],
family_is_leadership: bool, family_is_leadership: bool,
first_variable: bool, first_variable: bool,
*,
custom_type: bool=False,
) -> None: ) -> None:
"""Add a new variable""" """Add a new variable"""
variable["namespace"] = self.namespace variable["namespace"] = self.namespace
@ -887,6 +900,8 @@ class ParserVariable:
variable["xmlfiles"] = sources variable["xmlfiles"] = sources
variable["path"] = path variable["path"] = path
variable_type = self.get_family_or_variable_type(variable) variable_type = self.get_family_or_variable_type(variable)
if custom_type:
self.change_namespaces(variable)
obj = { obj = {
"symlink": SymLink, "symlink": SymLink,
"choice": self.variable, "choice": self.variable,
@ -919,6 +934,16 @@ class ParserVariable:
else: else:
self.followers.append(path) self.followers.append(path)
def change_namespaces(self, variable):
for key, value in variable.items():
if isinstance(value, Calculation):
value.namespace = self.namespace
if not isinstance(value, list):
continue
for idx, val in enumerate(value):
if isinstance(val, Calculation):
val.namespace = self.namespace
def del_family( def del_family(
self, self,
path: str, path: str,

View file

@ -209,8 +209,8 @@ class Paths:
and namespace != option_namespace and namespace != option_namespace
): ):
msg = _( msg = _(
'A variable or a family located in the "{0}" namespace shall not be used in the "{1}" namespace' 'The variable or the family "{0}" located in the "{1}" namespace shall not be used in the "{2}" namespace'
).format(option_namespace, namespace) ).format(path, option_namespace, namespace)
raise DictConsistencyError(msg, 38, xmlfiles) raise DictConsistencyError(msg, 38, xmlfiles)
return option, identifiers return option, identifiers

View file

@ -25,11 +25,13 @@ class TypeRougailConvert(StaticRougailConvert):
self, self,
main_structural_directories: list[str], main_structural_directories: list[str],
secret_pattern: str, secret_pattern: str,
default_structural_format_version: str,
) -> None: ) -> None:
super().__init__(False, {"sort_structural_files_all": True, super().__init__(False, {"sort_structural_files_all": True,
"main_namespace": None, "main_namespace": None,
"main_structural_directories": main_structural_directories, "main_structural_directories": main_structural_directories,
}) })
self.default_structural_format_version = default_structural_format_version
self.secret_pattern = secret_pattern self.secret_pattern = secret_pattern
@ -44,7 +46,7 @@ def rougail_type(rougailconfig):
types = rougailconfig["types"] types = rougailconfig["types"]
if not types: if not types:
return {}, {} return {}, {}
convert = TypeRougailConvert(types, rougailconfig["secret_manager.pattern"]) convert = TypeRougailConvert(types, rougailconfig["secret_manager.pattern"], rougailconfig["default_structural_format_version"])
convert.init() convert.init()
convert.parse_directories() convert.parse_directories()
return ({typ: to_dict_variable(convert.paths[typ]) for typ in convert.variables}, return ({typ: to_dict_variable(convert.paths[typ]) for typ in convert.variables},

View file

@ -1,12 +1,14 @@
from pytest import raises
from pathlib import Path from pathlib import Path
from json import dump, load, dumps, loads from json import dump, load, dumps, loads
from shutil import copyfile from shutil import copyfile
from rougail_tests.utils import config_to_dict from rougail_tests.utils import config_to_dict
from rougail import Rougail, RougailConfig from rougail import Rougail, RougailConfig
from rougail.error import DictConsistencyError
def type_variable(test_name): def type_variable(test_name, namespace=False):
tmp_file = Path("tmp/tiramisu.py") tmp_file = Path("tmp/tiramisu.py")
tmp_file.parent.mkdir(exist_ok=True) tmp_file.parent.mkdir(exist_ok=True)
tmp_file.unlink(missing_ok=True) tmp_file.unlink(missing_ok=True)
@ -16,7 +18,20 @@ def type_variable(test_name):
# #
rougailconfig = RougailConfig.copy() rougailconfig = RougailConfig.copy()
rougailconfig['types'] = [f'tests/types/types/{test_name}'] rougailconfig['types'] = [f'tests/types/types/{test_name}']
rougailconfig['main_structural_directories'] = [f'tests/types/structures/{ test_name }'] if namespace:
rougailconfig['main_namespace'] = None
rougailconfig['main_structural_directories'] = [f'tests/types/structures/{ test_name }']
tiramisu_file = result / "namespace_tiramisu.py"
variables_file = result / "namespace_variables.json"
variables_file_rw = result / "namespace_variables_rw.json"
else:
rougailconfig['main_namespace'] = 'NS1'
rougailconfig['main_structural_directories'] = ['tests/types/structures/main']
rougailconfig['extra_namespaces'] = {'NS2': [f'tests/types/structures/{ test_name }'],
}
tiramisu_file = result / "tiramisu.py"
variables_file = result / "variables.json"
variables_file_rw = result / "variables_rw.json"
try: try:
rougailconfig['tiramisu_cache'] = str(tmp_file) rougailconfig['tiramisu_cache'] = str(tmp_file)
except: except:
@ -24,7 +39,6 @@ def type_variable(test_name):
rougail = Rougail(rougailconfig=rougailconfig) rougail = Rougail(rougailconfig=rougailconfig)
config = rougail.run() config = rougail.run()
# #
tiramisu_file = result / "tiramisu.py"
if not tiramisu_file.is_file(): if not tiramisu_file.is_file():
copyfile(tmp_file, tiramisu_file) copyfile(tmp_file, tiramisu_file)
# tmp_file.copy(tiramisu_file) # tmp_file.copy(tiramisu_file)
@ -35,7 +49,6 @@ def type_variable(test_name):
assert loaded_tiramisu == tiramisu, f"error in file {tiramisu_file}" assert loaded_tiramisu == tiramisu, f"error in file {tiramisu_file}"
tmp_file.unlink() tmp_file.unlink()
# #
variables_file = result / "variables.json"
configuration = dict(config_to_dict(config.value.get())) configuration = dict(config_to_dict(config.value.get()))
if not variables_file.is_file(): if not variables_file.is_file():
with variables_file.open('w') as fh: with variables_file.open('w') as fh:
@ -45,43 +58,80 @@ def type_variable(test_name):
assert loaded_configuration == loads(dumps(configuration)), f"error in file {variables_file}" assert loaded_configuration == loads(dumps(configuration)), f"error in file {variables_file}"
# #
config.property.read_write() config.property.read_write()
variables_file = result / "variables_rw.json"
configuration = dict(config_to_dict(config.value.get())) configuration = dict(config_to_dict(config.value.get()))
if not variables_file.is_file(): if not variables_file_rw.is_file():
with variables_file.open('w') as fh: with variables_file_rw.open('w') as fh:
dump(configuration, fh, indent=4) dump(configuration, fh, indent=4)
with variables_file.open('r') as fh: with variables_file_rw.open('r') as fh:
loaded_configuration = load(fh) loaded_configuration = load(fh)
assert loaded_configuration == loads(dumps(configuration)), f"error in file {variables_file}" assert loaded_configuration == loads(dumps(configuration)), f"error in file {variables_file_rw}"
def test_type_variable(): def test_type_variable():
type_variable("variable") type_variable("variable")
def test_type_variable_namespace():
type_variable("variable", namespace=True)
def test_type_variables(): def test_type_variables():
type_variable("variables") type_variable("variables")
def test_type_variables_namespace():
type_variable("variables", namespace=True)
def test_type_family(): def test_type_family():
type_variable("family") type_variable("family")
def test_type_family_namespace():
type_variable("family", namespace=True)
def test_type_family_redefine(): def test_type_family_redefine():
type_variable("family_redefine") type_variable("family_redefine")
def test_type_family_redefine_namespace():
type_variable("family_redefine", namespace=True)
def test_type_family_subfamily(): def test_type_family_subfamily():
type_variable("family_subfamily") type_variable("family_subfamily")
def test_type_family_subfamily_namespace():
type_variable("family_subfamily", namespace=True)
def test_type_variable_hidden(): def test_type_variable_hidden():
type_variable("variable_hidden") type_variable("variable_hidden")
def test_type_variable_hidden_namespace():
type_variable("variable_hidden", namespace=True)
def test_type_dynfamily(): def test_type_dynfamily():
type_variable("family_dynfamily") type_variable("family_dynfamily")
def test_type_dynfamily_namespace():
type_variable("family_dynfamily", namespace=True)
def test_type_family_subfamily_add(): def test_type_family_subfamily_add():
type_variable("family_subfamily_add") type_variable("family_subfamily_add")
def test_type_family_subfamily_add_namespace():
type_variable("family_subfamily_add", namespace=True)
def test_type_error_version():
with raises(DictConsistencyError) as err:
type_variable("error_version")
assert err.errno == 27

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
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="my_type", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml'], 'type': 'string', 'tags': ('one_tag',)})
optiondescription_1 = OptionDescription(name="my_family", doc="My family type", children=[option_2], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml', 'tests/types/structures/family/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,3 @@
{
"my_family.my_type": "a value"
}

View file

@ -0,0 +1,3 @@
{
"my_family.my_type": "a value"
}

View file

@ -11,5 +11,5 @@ ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced") ALLOWED_LEADER_PROPERTIES.add("advanced")
option_3 = StrOption(name="my_type", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml'], 'type': 'string', 'tags': ('one_tag',)}) option_3 = StrOption(name="my_type", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml'], 'type': 'string', 'tags': ('one_tag',)})
optiondescription_2 = OptionDescription(name="my_family", doc="My family type", children=[option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml', 'tests/types/structures/family/00_structure.yml']}) optiondescription_2 = OptionDescription(name="my_family", doc="My family type", children=[option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family/00_type.yml', 'tests/types/structures/family/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"standard"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,3 +1,3 @@
{ {
"rougail.my_family.my_type": "a value" "ns2.my_family.my_type": "a value"
} }

View file

@ -1,3 +1,3 @@
{ {
"rougail.my_family.my_type": "a value" "ns2.my_family.my_type": "a value"
} }

View file

@ -0,0 +1,27 @@
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
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="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_4 = StrOption(name="identifier", doc="identifier", multi=True, default=["family"], default_multi="family", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_5 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml'], 'type': 'string'})
optiondescription_3 = OptionDescription(name="a_sub_{{ identifier }}", doc="My sub{{ identifier }}", children=[option_4, option_5], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
optiondescription_1 = OptionDescription(name="my_family_1", doc="My family type", children=[option_2, optiondescription_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
option_7 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_9 = StrOption(name="identifier", doc="identifier", multi=True, default=["family"], default_multi="family", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_10 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
optiondescription_8 = OptionDescription(name="a_sub_{{ identifier }}", doc="My sub{{ identifier }}", children=[option_9, option_10], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml']})
optiondescription_6 = OptionDescription(name="my_family_2", doc="My family type", children=[option_7, optiondescription_8], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
option_12 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_14 = StrOption(name="identifier", doc="identifier", multi=True, default=["family"], default_multi="family", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml'], 'type': 'string'})
option_15 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml'], 'type': 'string'})
optiondescription_13 = OptionDescription(name="a_sub_{{ identifier }}", doc="My sub{{ identifier }}", children=[option_14, option_15], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
optiondescription_11 = OptionDescription(name="my_family_3", doc="My family type", children=[option_12, optiondescription_13], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6, optiondescription_11])

View file

@ -0,0 +1,17 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,17 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_{{\u00a0identifier }}.identifier": [
"family"
],
"my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2"
}

View file

@ -24,5 +24,5 @@ option_15 = StrOption(name="identifier", doc="identifier", multi=True, default=[
option_16 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml'], 'type': 'string'}) option_16 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml'], 'type': 'string'})
optiondescription_14 = OptionDescription(name="a_sub_{{ identifier }}", doc="My sub{{ identifier }}", children=[option_15, option_16], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']}) optiondescription_14 = OptionDescription(name="a_sub_{{ identifier }}", doc="My sub{{ identifier }}", children=[option_15, option_16], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
optiondescription_12 = OptionDescription(name="my_family_3", doc="My family type", children=[option_13, optiondescription_14], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']}) optiondescription_12 = OptionDescription(name="my_family_3", doc="My family type", children=[option_13, optiondescription_14], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_dynfamily/00_structure.yml', 'tests/types/structures/family_dynfamily/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_7, optiondescription_12], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_7, optiondescription_12], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,17 +1,17 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_1.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_2.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null, "ns2.my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_3.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2" "ns2.my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2"
} }

View file

@ -1,17 +1,17 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_1.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_2.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null, "ns2.my_family_2.a_sub_{{\u00a0identifier }}.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_{{\u00a0identifier }}.identifier": [ "ns2.my_family_3.a_sub_{{\u00a0identifier }}.identifier": [
"family" "family"
], ],
"rougail.my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2" "ns2.my_family_3.a_sub_{{\u00a0identifier }}.a_second_variable": "a modified value 2"
} }

View file

@ -0,0 +1,21 @@
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
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="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml'], 'type': 'string'})
option_3 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="my_family_1", doc="My family type", children=[option_2, option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml']})
option_5 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml'], 'type': 'string'})
option_6 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml'], 'type': 'string'})
optiondescription_4 = OptionDescription(name="my_family_2", doc="My family type", children=[option_5, option_6], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml']})
option_8 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml'], 'type': 'string'})
option_9 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml'], 'type': 'string'})
optiondescription_7 = OptionDescription(name="my_family_3", doc="My family type", children=[option_8, option_9], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4, optiondescription_7])

View file

@ -0,0 +1,8 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,8 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -18,5 +18,5 @@ optiondescription_5 = OptionDescription(name="my_family_2", doc="My family type"
option_9 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml'], 'type': 'string'}) option_9 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml'], 'type': 'string'})
option_10 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml'], 'type': 'string'}) option_10 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml'], 'type': 'string'})
optiondescription_8 = OptionDescription(name="my_family_3", doc="My family type", children=[option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml']}) optiondescription_8 = OptionDescription(name="my_family_3", doc="My family type", children=[option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_redefine/00_structure.yml', 'tests/types/structures/family_redefine/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_5, optiondescription_8], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_5, optiondescription_8], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,8 +1,8 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_second_variable": "a modified value", "ns2.my_family_1.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null, "ns2.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2" "ns2.my_family_3.a_second_variable": "a modified value 2"
} }

View file

@ -1,8 +1,8 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_second_variable": "a modified value", "ns2.my_family_1.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null, "ns2.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2" "ns2.my_family_3.a_second_variable": "a modified value 2"
} }

View file

@ -0,0 +1,24 @@
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
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="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml'], 'type': 'string'})
option_4 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml'], 'type': 'string'})
optiondescription_3 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
optiondescription_1 = OptionDescription(name="my_family_1", doc="My family type", children=[option_2, optiondescription_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
option_6 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml'], 'type': 'string'})
option_8 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml'], 'type': 'string'})
optiondescription_7 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_8], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml']})
optiondescription_5 = OptionDescription(name="my_family_2", doc="My family type", children=[option_6, optiondescription_7], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
option_10 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml'], 'type': 'string'})
option_12 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml'], 'type': 'string'})
optiondescription_11 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_12], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
optiondescription_9 = OptionDescription(name="my_family_3", doc="My family type", children=[option_10, optiondescription_11], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5, optiondescription_9])

View file

@ -0,0 +1,8 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_family.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_family.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_family.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,8 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_family.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_family.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_family.a_second_variable": "a modified value 2"
}

View file

@ -21,5 +21,5 @@ option_11 = StrOption(name="a_first_variable", doc="a first variable", default="
option_13 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml'], 'type': 'string'}) option_13 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml'], 'type': 'string'})
optiondescription_12 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_13], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']}) optiondescription_12 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_13], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
optiondescription_10 = OptionDescription(name="my_family_3", doc="My family type", children=[option_11, optiondescription_12], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']}) optiondescription_10 = OptionDescription(name="my_family_3", doc="My family type", children=[option_11, optiondescription_12], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily/00_structure.yml', 'tests/types/structures/family_subfamily/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_6, optiondescription_10], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_6, optiondescription_10], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,8 +1,8 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_family.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_family.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_family.a_second_variable": null, "ns2.my_family_2.a_sub_family.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_family.a_second_variable": "a modified value 2" "ns2.my_family_3.a_sub_family.a_second_variable": "a modified value 2"
} }

View file

@ -1,8 +1,8 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_family.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_family.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_family.a_second_variable": null, "ns2.my_family_2.a_sub_family.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_family.a_second_variable": "a modified value 2" "ns2.my_family_3.a_sub_family.a_second_variable": "a modified value 2"
} }

View file

@ -0,0 +1,27 @@
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
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="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
option_4 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_3 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_6 = StrOption(name="a_second_variable", doc="a_second_variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_5 = OptionDescription(name="a_new_subfamily", doc="a_new_subfamily", children=[option_6], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/structures/family_subfamily_add/00_structure.yml']})
optiondescription_1 = OptionDescription(name="my_family_1", doc="My family type", children=[option_2, optiondescription_3, optiondescription_5], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_8 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml'], 'type': 'string'})
option_10 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_9 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_10], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml']})
optiondescription_7 = OptionDescription(name="my_family_2", doc="My family type", children=[option_8, optiondescription_9], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_12 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml'], 'type': 'string'})
option_14 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_13 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_14], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_15 = StrOption(name="a_new_variable", doc="a_new_variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_11 = OptionDescription(name="my_family_3", doc="My family type", children=[option_12, optiondescription_13, option_15], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7, optiondescription_11])

View file

@ -0,0 +1,10 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_family.a_second_variable": "a modified value",
"my_family_1.a_new_subfamily.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_family.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_family.a_second_variable": "a modified value 2",
"my_family_3.a_new_variable": "a modified value"
}

View file

@ -0,0 +1,10 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_1.a_sub_family.a_second_variable": "a modified value",
"my_family_1.a_new_subfamily.a_second_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_sub_family.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_sub_family.a_second_variable": "a modified value 2",
"my_family_3.a_new_variable": "a modified value"
}

View file

@ -24,5 +24,5 @@ option_15 = StrOption(name="a_second_variable", doc="a second variable", default
optiondescription_14 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_15], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']}) optiondescription_14 = OptionDescription(name="a_sub_family", doc="My subfamily", children=[option_15], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
option_16 = StrOption(name="a_new_variable", doc="a_new_variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'}) option_16 = StrOption(name="a_new_variable", doc="a_new_variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/structures/family_subfamily_add/00_structure.yml'], 'type': 'string'})
optiondescription_12 = OptionDescription(name="my_family_3", doc="My family type", children=[option_13, optiondescription_14, option_16], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']}) optiondescription_12 = OptionDescription(name="my_family_3", doc="My family type", children=[option_13, optiondescription_14, option_16], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/family_subfamily_add/00_structure.yml', 'tests/types/structures/family_subfamily_add/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_8, optiondescription_12], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_8, optiondescription_12], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,10 +1,10 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_family.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_family.a_second_variable": "a modified value",
"rougail.my_family_1.a_new_subfamily.a_second_variable": "a modified value", "ns2.my_family_1.a_new_subfamily.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_family.a_second_variable": null, "ns2.my_family_2.a_sub_family.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_family.a_second_variable": "a modified value 2", "ns2.my_family_3.a_sub_family.a_second_variable": "a modified value 2",
"rougail.my_family_3.a_new_variable": "a modified value" "ns2.my_family_3.a_new_variable": "a modified value"
} }

View file

@ -1,10 +1,10 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_family.a_second_variable": "a modified value", "ns2.my_family_1.a_sub_family.a_second_variable": "a modified value",
"rougail.my_family_1.a_new_subfamily.a_second_variable": "a modified value", "ns2.my_family_1.a_new_subfamily.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_family.a_second_variable": null, "ns2.my_family_2.a_sub_family.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_family.a_second_variable": "a modified value 2", "ns2.my_family_3.a_sub_family.a_second_variable": "a modified value 2",
"rougail.my_family_3.a_new_variable": "a modified value" "ns2.my_family_3.a_new_variable": "a modified value"
} }

View file

@ -0,0 +1,13 @@
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
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = StrOption(name="my_var", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variable/00_type.yml', 'tests/types/structures/variable/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])

View file

@ -0,0 +1,3 @@
{
"my_var": "a value"
}

View file

@ -0,0 +1,3 @@
{
"my_var": "a value"
}

View file

@ -10,5 +10,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced") ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="my_var", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variable/00_type.yml', 'tests/types/structures/variable/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)}) option_2 = StrOption(name="my_var", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variable/00_type.yml', 'tests/types/structures/variable/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[option_2], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[option_2], properties=frozenset({"standard"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,3 +1,3 @@
{ {
"rougail.my_var": "a value" "ns2.my_var": "a value"
} }

View file

@ -1,3 +1,3 @@
{ {
"rougail.my_var": "a value" "ns2.my_var": "a value"
} }

View file

@ -0,0 +1,21 @@
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
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="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
option_3 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_2), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_2), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="my_family_1", doc="My family type", children=[option_2, option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
option_5 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
option_6 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "force_default_on_freeze", "mandatory", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_5), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_5), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_4 = OptionDescription(name="my_family_2", doc="My family type", children=[option_5, option_6], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
option_8 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
option_9 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_8), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_8), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_7 = OptionDescription(name="my_family_3", doc="My family type", children=[option_8, option_9], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4, optiondescription_7])

View file

@ -0,0 +1,7 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,7 @@
{
"my_family_1.a_first_variable": "a modified value",
"my_family_2.a_first_variable": "a value",
"my_family_2.a_second_variable": null,
"my_family_3.a_first_variable": "a value",
"my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -18,5 +18,5 @@ optiondescription_5 = OptionDescription(name="my_family_2", doc="My family type"
option_9 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'}) option_9 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
option_10 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'}) option_10 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_8 = OptionDescription(name="my_family_3", doc="My family type", children=[option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']}) optiondescription_8 = OptionDescription(name="my_family_3", doc="My family type", children=[option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_5, optiondescription_8], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[optiondescription_2, optiondescription_5, optiondescription_8], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,7 +1,7 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null, "ns2.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2" "ns2.my_family_3.a_second_variable": "a modified value 2"
} }

View file

@ -1,7 +1,7 @@
{ {
"rougail.my_family_1.a_first_variable": "a modified value", "ns2.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value", "ns2.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null, "ns2.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value", "ns2.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2" "ns2.my_family_3.a_second_variable": "a modified value 2"
} }

View file

@ -0,0 +1,15 @@
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
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = StrOption(name="my_var1", doc="My type", default="a value", properties=frozenset({"an_other_tag", "mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('an_other_tag',)})
option_2 = StrOption(name="my_var2", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)})
option_3 = StrOption(name="my_var3", doc="my_var3", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/structures/variables/00_structure.yml'], 'type': 'string'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2, option_3])

View file

@ -0,0 +1,5 @@
{
"my_var1": "a value",
"my_var2": "a value",
"my_var3": null
}

View file

@ -0,0 +1,5 @@
{
"my_var1": "a value",
"my_var2": "a value",
"my_var3": null
}

View file

@ -12,5 +12,5 @@ ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="my_var1", doc="My type", default="a value", properties=frozenset({"an_other_tag", "mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('an_other_tag',)}) option_2 = StrOption(name="my_var1", doc="My type", default="a value", properties=frozenset({"an_other_tag", "mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('an_other_tag',)})
option_3 = StrOption(name="my_var2", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)}) option_3 = StrOption(name="my_var2", doc="My type", default="a value", properties=frozenset({"mandatory", "one_tag", "standard"}), informations={'ymlfiles': ['tests/types/types/variables/00_type.yml', 'tests/types/structures/variables/00_structure.yml'], 'type': 'string', 'tags': ('one_tag',)})
option_4 = StrOption(name="my_var3", doc="my_var3", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/structures/variables/00_structure.yml'], 'type': 'string'}) option_4 = StrOption(name="my_var3", doc="my_var3", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['tests/types/structures/variables/00_structure.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[option_2, option_3, option_4], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="ns2", doc="NS2", group_type=groups.namespace, children=[option_2, option_3, option_4], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -1,5 +1,5 @@
{ {
"rougail.my_var1": "a value", "ns2.my_var1": "a value",
"rougail.my_var2": "a value", "ns2.my_var2": "a value",
"rougail.my_var3": null "ns2.my_var3": null
} }

View file

@ -1,5 +1,5 @@
{ {
"rougail.my_var1": "a value", "ns2.my_var1": "a value",
"rougail.my_var2": "a value", "ns2.my_var2": "a value",
"rougail.my_var3": null "ns2.my_var3": null
} }

View file

@ -0,0 +1,11 @@
%YAML 1.2
---
my_family_type:
description: My family type
my_type:
description: My type
default: a value
tags:
- one_tag
...