diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py index 21e317d0..006eeb34 100644 --- a/src/rougail/annotator/variable.py +++ b/src/rougail/annotator/variable.py @@ -120,7 +120,11 @@ class VariableAnnotator: # pylint: disable=R0903 families.doc = families.name families.path = families.name for family in families.family.values(): - family.doc = family.name + if not hasattr(family, 'description'): + family.description = family.name + for key, value in RENAME_ATTIBUTES.items(): + setattr(family, value, getattr(family, key)) + setattr(family, key, None) family.name = normalize_family(family.name) if not hasattr(family, 'variable'): continue diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py index 0b9962e0..fd202672 100644 --- a/src/rougail/tiramisureflector.py +++ b/src/rougail/tiramisureflector.py @@ -299,7 +299,7 @@ class Variable(Common): value = getattr(self.elt, key) if key in FORCE_INFORMATIONS: if key == 'test': # pragma: no cover - value = value.split(',') + value = value.split('|') if self.object_type == 'IntOption': value = [int(v) for v in value] elif self.object_type == 'FloatOption': diff --git a/tests/dictionaries/01family_description/00-base.xml b/tests/dictionaries/01family_description/00-base.xml new file mode 100644 index 00000000..6ecb2e8e --- /dev/null +++ b/tests/dictionaries/01family_description/00-base.xml @@ -0,0 +1,12 @@ + + + + + + non + + + + + diff --git a/tests/dictionaries/01family_description/__init__.py b/tests/dictionaries/01family_description/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/01family_description/makedict/base.json b/tests/dictionaries/01family_description/makedict/base.json new file mode 100644 index 00000000..797595b0 --- /dev/null +++ b/tests/dictionaries/01family_description/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.mode_conteneur_actif": "non"} diff --git a/tests/dictionaries/01family_description/tiramisu/__init__.py b/tests/dictionaries/01family_description/tiramisu/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/01family_description/tiramisu/base.py b/tests/dictionaries/01family_description/tiramisu/base.py new file mode 100644 index 00000000..2c10d346 --- /dev/null +++ b/tests/dictionaries/01family_description/tiramisu/base.py @@ -0,0 +1,18 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif', doc='mode_conteneur_actif', multi=False, default='non') +option_2 = OptionDescription(name='general', doc='Other description', properties=frozenset({'normal'}), children=[option_3]) +option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2]) +option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1]) diff --git a/tests/dictionaries/20family_dynamic_description/00-base.xml b/tests/dictionaries/20family_dynamic_description/00-base.xml new file mode 100644 index 00000000..5d234aa0 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_description/00-base.xml @@ -0,0 +1,15 @@ + + + + + + + val1 + val2 + + + + + + + diff --git a/tests/dictionaries/20family_dynamic_description/__init__.py b/tests/dictionaries/20family_dynamic_description/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/20family_dynamic_description/makedict/base.json b/tests/dictionaries/20family_dynamic_description/makedict/base.json new file mode 100644 index 00000000..64024485 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_description/makedict/base.json @@ -0,0 +1 @@ +{"rougail.general.varname": ["val1", "val2"], "rougail.dynval1.vardynval1": null, "rougail.dynval2.vardynval2": null} diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/__init__.py b/tests/dictionaries/20family_dynamic_description/tiramisu/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/base.py b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py new file mode 100644 index 00000000..73fa3ba2 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py @@ -0,0 +1,20 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +from rougail.tiramisu import ConvertDynOptionDescription +option_3 = StrOption(properties=frozenset({'mandatory', 'normal'}), name='varname', doc='No change', multi=True, default=['val1', 'val2'], default_multi='val2') +option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3]) +option_5 = StrOption(properties=frozenset({'normal'}), name='vardyn', doc='No change', multi=False) +option_4 = ConvertDynOptionDescription(name='dyn', doc='Dyn ', suffixes=Calculation(func.calc_value, Params((ParamOption(option_3)))), properties=frozenset({'normal'}), children=[option_5]) +option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2, option_4]) +option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1])