fix: remove negative_description support

This commit is contained in:
egarette@silique.fr 2025-04-29 22:48:33 +02:00
parent 3b0130420d
commit 52c8277238
9 changed files with 34 additions and 37 deletions

View file

@ -305,7 +305,6 @@ base_option_name:
not_export_with_import:
description: {_("In cache file, do not importation of Tiramisu and other dependencies")}
negative_description: {_("In cache file, do importation of Tiramisu and other dependencies")}
default: false
commandline: false
@ -337,12 +336,10 @@ suffix:
force_optional:
description: {_("Every variables in calculation are optionals")}
negative_description: {_("Variables in calculation are not optional by default")}
default: False
load_unexist_redefine:
description: {_("Loads redefine variables even if there don't already exists")}
negative_description: {_("Loads redefine variables even if there don't already exists")}
commandline: false
default: False

View file

@ -50,7 +50,6 @@ class Annotator(Walk):
self.not_for_commandline(variable)
else:
self.manage_alternative_name(variable)
self.manage_negative_description(variable)
def not_for_commandline(self, variable) -> None:
self.objectspace.properties.add(variable.path, "not_for_commandline", True)
@ -87,29 +86,3 @@ class Annotator(Walk):
False,
variable.version,
)
def manage_negative_description(self, variable) -> None:
if not variable.negative_description:
if variable.type == "boolean" and not self.objectspace.add_extra_options:
if variable.name == variable.description:
variable.negative_description = variable.name
else:
raise DictConsistencyError(
_(
'negative_description is mandatory for boolean variable, but "{0}" hasn\'t'
).format(variable.path),
200,
variable.xmlfiles,
)
elif variable.type != "boolean":
raise DictConsistencyError(
_(
'negative_description is only available for boolean variable, but "{0}" is "{1}"'
).format(variable.path, variable.type),
201,
variable.xmlfiles,
)
if variable.negative_description:
self.objectspace.informations.add(
variable.path, "negative_description", variable.negative_description
)

View file

@ -30,7 +30,6 @@ structural_commandline:
add_extra_options:
description: Add extra options to tiramisu-cmdline-parser
negative_description: Remove extra options to tiramisu-cmdline-parser
default: true
"""
return {

View file

@ -24,7 +24,6 @@ from pydantic import BaseModel
class Variable(BaseModel):
alternative_name: Optional[str] = None
commandline: bool = True
negative_description: Optional[str] = None
class Family(BaseModel):

View file

@ -47,7 +47,6 @@ main_dictionaries:
sort_dictionaries_all:
description: {_("Sort dictionaries from differents directories")}
negative_description: Sort dictionaries directory by directory
default: false
disabled:
jinja: >-

View file

@ -11,6 +11,6 @@ ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_3 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml'], 'type': 'string'})
optiondescription_2 = OptionDescription(name="family", doc="family", children=[option_3], properties=frozenset({"basic"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml']})
optiondescription_2 = OptionDescription(name="family", doc="family", children=[option_3], properties=frozenset({"basic"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml', '../rougail-tests/structures/16_3family_empty_at_ends/rougail/01-base.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"basic"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -7,5 +7,5 @@ ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="var1", doc="var1", properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="family", doc="family", children=[option_2], properties=frozenset({"basic"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml']})
optiondescription_1 = OptionDescription(name="family", doc="family", children=[option_2], properties=frozenset({"basic"}), informations={'ymlfiles': ['../rougail-tests/structures/16_3family_empty_at_ends/rougail/00-base.yml', '../rougail-tests/structures/16_3family_empty_at_ends/rougail/01-base.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -47,7 +47,7 @@ excludes = set([
])
test_ok -= excludes
test_raise -= excludes
# test_ok = ['40_9leadership-calculation-outside-follower-no-mandatory']
test_ok = ['00_2default_calculated_params_permissive']
#test_ok = []
# test_raise = ['22_0calculation_variable_leader_follower_multi']
#test_raise = []

View file

@ -31,7 +31,7 @@ excludes = set([])
# excludes = set(['60_5family_dynamic_variable_outside_sub_suffix'])
test_ok -= excludes
# test_ok = ['40_9calculation_variable_leader_follower_multi_inside']
test_ok = ['00_2default_calculated_params_permissive']
test_ok = list(test_ok)
@ -79,6 +79,7 @@ def launch_flattener(test_dir,
):
makedict_dir = join(test_dir, 'makedict')
makedict_file = join(makedict_dir, 'base.json')
makedict_read_write = join(makedict_dir, 'read_write.json')
makedict_before = join(makedict_dir, 'before.json')
makedict_after = join(makedict_dir, 'after.json')
informations_file = join(test_dir, 'informations.json')
@ -163,6 +164,35 @@ def launch_flattener(test_dir,
value_owner(test_dir, makedict_after, config, filename)
#
mandatory(test_dir, mandatory_file, config.value.mandatory(), filename)
#
# read_write
config.property.read_write()
config_dict = dict(option_value(config.value.get()))
if not isfile(makedict_read_write) or debug:
with open(makedict_read_write, 'w') as fh:
dump(config_dict, fh, indent=4)
fh.write('\n')
with open(makedict_read_write, 'r') as fh:
loaded_config_dict = load(fh)
if filename == 'no_namespace':
config_dict = config_add_rougail(config_dict)
elif filename != 'base':
config_dict_prefix = {'1': {}, '2': {}}
for key, value in config_dict.items():
prefix, path = key.split('.', 1)
if value and isinstance(value, list) and isinstance(value[0], dict):
new_value = []
for dct in value:
new_dct = {}
for k, v in dct.items():
k = k.split('.', 1)[-1]
new_dct[k] = v
new_value.append(new_dct)
value = new_value
config_dict_prefix[prefix][path] = value
assert loads(dumps(config_dict_prefix['1'])) == loads(dumps(config_dict_prefix['2']))
config_dict = config_dict_prefix['1']
assert loaded_config_dict == loads(dumps(config_dict)), f"error in file {makedict_read_write}"
def config_add_rougail(config):