From 9705830e88b111354767b84dd5a51442932c8a62 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 19 Jun 2024 17:36:18 +0200 Subject: [PATCH] Reactive error tests --- pyproject.toml | 1 + src/rougail/annotator/family.py | 43 ++- src/rougail/annotator/value.py | 23 +- src/rougail/annotator/variable.py | 28 +- src/rougail/convert.py | 327 ++++++++++++------ src/rougail/error.py | 6 - src/rougail/object_model.py | 140 ++++++-- src/rougail/reflector.py | 220 ------------ src/rougail/tiramisu.py | 81 ++++- src/rougail/tiramisureflector.py | 263 +++++--------- src/rougail/utils.py | 9 +- tests/dictionaries/00empty/tiramisu/base.py | 18 +- tests/dictionaries/00empty/tiramisu/multi.py | 18 +- .../dictionaries/rougail/00-base.yml | 3 +- .../00empty_family/makedict/after.json | 1 + .../00empty_family/makedict/base.json | 1 + .../00empty_family/makedict/before.json | 1 + .../makedict/mandatory.json | 0 .../00empty_family/tiramisu/base.py | 9 + .../00empty_family/tiramisu/multi.py | 10 + .../dictionaries/rougail/00-base.yml | 2 + .../00empty_subfamily/makedict/after.json | 1 + .../00empty_subfamily/makedict/base.json | 1 + .../00empty_subfamily/makedict/before.json | 1 + .../makedict/mandatory.json | 0 .../00empty_subfamily/tiramisu/base.py | 9 + .../00empty_subfamily/tiramisu/multi.py | 10 + .../00empty_variable/tiramisu/base.py | 18 +- .../00empty_variable/tiramisu/multi.py | 18 +- .../00load_notype/tiramisu/base.py | 18 +- .../00load_notype/tiramisu/multi.py | 18 +- .../dictionaries/00load_save/tiramisu/base.py | 18 +- .../00load_save/tiramisu/multi.py | 18 +- .../00load_subfolder/tiramisu/base.py | 18 +- .../00load_subfolder/tiramisu/multi.py | 18 +- .../01base_auto_bool/tiramisu/base.py | 18 +- .../01base_auto_bool/tiramisu/multi.py | 18 +- .../01base_auto_bool_multi/tiramisu/base.py | 18 +- .../01base_auto_bool_multi/tiramisu/multi.py | 18 +- .../01base_auto_float/tiramisu/base.py | 18 +- .../01base_auto_float/tiramisu/multi.py | 18 +- .../01base_auto_float_multi/tiramisu/base.py | 18 +- .../01base_auto_float_multi/tiramisu/multi.py | 18 +- .../01base_auto_number/tiramisu/base.py | 18 +- .../01base_auto_number/tiramisu/multi.py | 18 +- .../01base_auto_number_multi/tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../01base_custom/tiramisu/base.py | 18 +- .../01base_custom/tiramisu/multi.py | 18 +- .../01base_domainname/tiramisu/base.py | 20 +- .../01base_domainname/tiramisu/multi.py | 22 +- .../01base_domainname_params/tiramisu/base.py | 20 +- .../tiramisu/multi.py | 22 +- .../01base_float/tiramisu/base.py | 18 +- .../01base_float/tiramisu/multi.py | 18 +- .../01base_help_quote/tiramisu/base.py | 24 +- .../01base_help_quote/tiramisu/multi.py | 30 +- .../01base_multi/tiramisu/base.py | 18 +- .../01base_multi/tiramisu/multi.py | 18 +- .../01base_multi_auto/tiramisu/base.py | 18 +- .../01base_multi_auto/tiramisu/multi.py | 18 +- .../01base_multi_notuniq/tiramisu/base.py | 18 +- .../01base_multi_notuniq/tiramisu/multi.py | 18 +- .../01base_multi_uniq/tiramisu/base.py | 18 +- .../01base_multi_uniq/tiramisu/multi.py | 18 +- .../01base_value_doublequote/tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../01base_value_multi_quote/tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../01base_value_quote/tiramisu/base.py | 18 +- .../01base_value_quote/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../01boolean_no_mandatory/tiramisu/base.py | 18 +- .../01boolean_no_mandatory/tiramisu/multi.py | 18 +- .../01family_description/tiramisu/base.py | 18 +- .../01family_description/tiramisu/multi.py | 18 +- tests/dictionaries/01test/tiramisu/base.py | 21 +- tests/dictionaries/01test/tiramisu/multi.py | 24 +- .../01test_boolean/tiramisu/base.py | 21 +- .../01test_boolean/tiramisu/multi.py | 24 +- .../01test_multi/tiramisu/base.py | 21 +- .../01test_multi/tiramisu/multi.py | 24 +- .../01test_multi_none/tiramisu/base.py | 21 +- .../01test_multi_none/tiramisu/multi.py | 24 +- .../01test_redefine/tiramisu/base.py | 21 +- .../01test_redefine/tiramisu/multi.py | 24 +- .../01test_redefine_base/tiramisu/base.py | 21 +- .../01test_redefine_base/tiramisu/multi.py | 24 +- .../01test_redefine_remove/tiramisu/base.py | 18 +- .../01test_redefine_remove/tiramisu/multi.py | 18 +- .../10autosave_hidden/tiramisu/base.py | 65 +--- .../10autosave_hidden/tiramisu/multi.py | 65 +--- .../10check_base/tiramisu/base.py | 18 +- .../10check_base/tiramisu/multi.py | 18 +- .../10check_no_param/tiramisu/base.py | 65 +--- .../10check_no_param/tiramisu/multi.py | 65 +--- tests/dictionaries/10check_option/tmp/base.py | 71 ---- .../10check_optional/tiramisu/base.py | 65 +--- .../10check_optional/tiramisu/multi.py | 65 +--- .../10check_valid_differ/tiramisu/base.py | 65 +--- .../10check_valid_differ/tiramisu/multi.py | 65 +--- .../10check_valid_differ_add/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10check_valid_in_network/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10check_valid_ipnetmask/tiramisu/base.py | 65 +--- .../10check_valid_ipnetmask/tiramisu/multi.py | 65 +--- .../10check_valid_jinja/tiramisu/base.py | 65 +--- .../10check_valid_jinja/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10disabled_with_variable/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 3 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- tests/dictionaries/10fill/tiramisu/base.py | 65 +--- tests/dictionaries/10fill/tiramisu/multi.py | 65 +--- .../10fill_optional/tiramisu/base.py | 65 +--- .../10fill_optional/tiramisu/multi.py | 65 +--- .../10fill_quote/tiramisu/base.py | 65 +--- .../10fill_quote/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10fill_target_optional/tiramisu/base.py | 18 +- .../10fill_target_optional/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 68 +--- .../tiramisu/multi.py | 71 +--- .../10integer_jinja/makedict/after.json | 6 + .../10integer_jinja/makedict/base.json | 3 + .../10integer_jinja/makedict/before.json | 6 + .../10integer_jinja/makedict/mandatory.json | 1 + .../10integer_jinja/tiramisu/base.py | 11 + .../10integer_jinja/tiramisu/multi.py | 16 + .../10leadership_append/tiramisu/base.py | 65 +--- .../10leadership_append/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10leadership_append_name/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10leadership_auto/tiramisu/base.py | 65 +--- .../10leadership_auto/tiramisu/multi.py | 65 +--- .../10leadership_auto_index/tiramisu/base.py | 65 +--- .../10leadership_auto_index/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 11 +- .../tiramisu/base.py | 67 +--- .../tiramisu/multi.py | 69 +--- .../10leadership_autoleader/tiramisu/base.py | 65 +--- .../10leadership_autoleader/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 19 +- .../makedict/after.json | 15 - .../makedict/base.json | 8 - .../makedict/before.json | 15 - .../tiramisu/base.py | 80 +---- .../tiramisu/multi.py | 99 +----- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10leadership_empty/tiramisu/base.py | 18 +- .../10leadership_empty/tiramisu/multi.py | 18 +- .../10leadership_hidden/tiramisu/base.py | 65 +--- .../10leadership_hidden/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 4 +- .../tiramisu/base.py | 24 +- .../tiramisu/multi.py | 34 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../10leadership_multi/tiramisu/base.py | 65 +--- .../10leadership_multi/tiramisu/multi.py | 65 +--- .../10load_disabled_if_in/tiramisu/base.py | 65 +--- .../10load_disabled_if_in/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_frozenifin/tiramisu/base.py | 65 +--- .../10load_frozenifin/tiramisu/multi.py | 65 +--- .../10load_frozenifin_auto/tiramisu/base.py | 65 +--- .../10load_frozenifin_auto/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_frozenifnotin/tiramisu/base.py | 65 +--- .../10load_frozenifnotin/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_hidden_if_family/tiramisu/base.py | 65 +--- .../10load_hidden_if_family/tiramisu/multi.py | 65 +--- .../10load_hidden_if_family2/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_hidden_if_family3/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_leadership/tiramisu/base.py | 65 +--- .../10load_leadership/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 22 +- .../tiramisu/multi.py | 26 +- .../tiramisu/base.py | 22 +- .../tiramisu/multi.py | 26 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_leadership_name/tiramisu/base.py | 65 +--- .../10load_leadership_name/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10load_mandatoryifin/tiramisu/base.py | 65 +--- .../10load_mandatoryifin/tiramisu/multi.py | 65 +--- .../tmp/base.py | 72 ---- .../10load_multivalue/tiramisu/base.py | 18 +- .../10load_multivalue/tiramisu/multi.py | 18 +- .../dictionaries/rougail/00-base.yml | 2 +- .../10load_param_relative/tiramisu/base.py | 65 +--- .../10load_param_relative/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../10valid_enum_accent/tiramisu/base.py | 21 +- .../10valid_enum_accent/tiramisu/multi.py | 24 +- .../10valid_enum_append/tmp/base.py | 28 -- .../10valid_enum_auto/tiramisu/base.py | 18 +- .../10valid_enum_auto/tiramisu/multi.py | 18 +- .../10valid_enum_base/tiramisu/base.py | 21 +- .../10valid_enum_base/tiramisu/multi.py | 24 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 21 +- .../tiramisu/multi.py | 24 +- .../10valid_enum_leader/tiramisu/base.py | 18 +- .../10valid_enum_leader/tiramisu/multi.py | 18 +- .../10valid_enum_mandatory/tiramisu/base.py | 18 +- .../10valid_enum_mandatory/tiramisu/multi.py | 18 +- .../10valid_enum_multi/tiramisu/base.py | 18 +- .../10valid_enum_multi/tiramisu/multi.py | 18 +- .../10valid_enum_none/tiramisu/base.py | 21 +- .../10valid_enum_none/tiramisu/multi.py | 24 +- .../10valid_enum_number/tiramisu/base.py | 21 +- .../10valid_enum_number/tiramisu/multi.py | 24 +- .../tiramisu/base.py | 21 +- .../tiramisu/multi.py | 24 +- .../10valid_enum_param_empty/tiramisu/base.py | 21 +- .../tiramisu/multi.py | 24 +- .../tiramisu/base.py | 21 +- .../tiramisu/multi.py | 24 +- .../10valid_enum_quote/tiramisu/base.py | 21 +- .../10valid_enum_quote/tiramisu/multi.py | 24 +- .../10valid_enum_value/tiramisu/base.py | 18 +- .../10valid_enum_value/tiramisu/multi.py | 18 +- .../rougail/{00-base.xml => 00-base.yml} | 3 +- .../makedict/after.json | 14 + .../10valid_enum_variables/makedict/base.json | 5 + .../makedict/before.json | 14 + .../makedict/mandatory.json | 1 + .../10valid_enum_variables/tiramisu/base.py | 12 + .../10valid_enum_variables/tiramisu/multi.py | 18 + .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../11fill_multi_calc_val/tiramisu/base.py | 65 +--- .../11fill_multi_calc_val/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../11valid_enum_function/tiramisu/base.py | 65 +--- .../11valid_enum_function/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../11valid_enum_variable/tiramisu/base.py | 65 +--- .../11valid_enum_variable/tiramisu/multi.py | 65 +--- .../dictionaries/12auto_base/tiramisu/base.py | 65 +--- .../12auto_base/tiramisu/multi.py | 65 +--- .../12auto_func_variable/tiramisu/base.py | 65 +--- .../12auto_func_variable/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../12auto_jinja_base/tiramisu/base.py | 65 +--- .../12auto_jinja_base/tiramisu/multi.py | 65 +--- .../12auto_jinja_if/tiramisu/base.py | 65 +--- .../12auto_jinja_if/tiramisu/multi.py | 65 +--- .../12auto_jinja_if_bool/tiramisu/base.py | 65 +--- .../12auto_jinja_if_bool/tiramisu/multi.py | 65 +--- .../12auto_jinja_if_int/tiramisu/base.py | 65 +--- .../12auto_jinja_if_int/tiramisu/multi.py | 65 +--- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 + .../makedict/after.json | 10 + .../makedict/base.json | 4 + .../makedict/before.json | 10 + .../makedict/mandatory.json | 1 + .../tiramisu/base.py | 12 + .../tiramisu/multi.py | 18 + .../12auto_jinja_set/tiramisu/base.py | 65 +--- .../12auto_jinja_set/tiramisu/multi.py | 65 +--- .../12auto_withoutparam/tiramisu/base.py | 65 +--- .../12auto_withoutparam/tiramisu/multi.py | 65 +--- .../13fill_information/tiramisu/base.py | 65 +--- .../13fill_information/tiramisu/multi.py | 65 +--- .../13fill_information_multi/tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../13fill_option/tiramisu/base.py | 65 +--- .../13fill_option/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 17 +- .../informations.json | 1 + .../makedict/after.json | 10 + .../makedict/base.json | 4 + .../makedict/before.json | 10 + .../makedict/mandatory.json | 1 + .../tiramisu/base.py | 14 + .../tiramisu/multi.py | 22 ++ .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../15fill_autosave/tiramisu/base.py | 65 +--- .../15fill_autosave/tiramisu/multi.py | 65 +--- .../dictionaries/15fill_base/tiramisu/base.py | 65 +--- .../15fill_base/tiramisu/multi.py | 65 +--- .../15fill_mandatory/tiramisu/base.py | 65 +--- .../15fill_mandatory/tiramisu/multi.py | 65 +--- .../15fill_number/tiramisu/base.py | 65 +--- .../15fill_number/tiramisu/multi.py | 65 +--- .../15fill_only_optional/tiramisu/base.py | 65 +--- .../15fill_only_optional/tiramisu/multi.py | 65 +--- .../15load_autosave/tiramisu/base.py | 18 +- .../15load_autosave/tiramisu/multi.py | 18 +- .../15load_autosaveexpert/tiramisu/base.py | 18 +- .../15load_autosaveexpert/tiramisu/multi.py | 18 +- .../20family_append/tiramisu/base.py | 18 +- .../20family_append/tiramisu/multi.py | 18 +- .../20family_disabled/tiramisu/base.py | 18 +- .../20family_disabled/tiramisu/multi.py | 18 +- .../dictionaries/rougail/00-base.yml | 10 +- .../20family_dynamic/tiramisu/base.py | 68 +--- .../20family_dynamic/tiramisu/multi.py | 70 +--- .../20family_dynamic_1.1/tiramisu/base.py | 68 +--- .../20family_dynamic_1.1/tiramisu/multi.py | 70 +--- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 10 +- .../20family_dynamic_1_0/makedict/after.json | 17 + .../20family_dynamic_1_0/makedict/base.json | 8 + .../20family_dynamic_1_0/makedict/before.json | 17 + .../makedict/mandatory.json | 1 + .../20family_dynamic_1_0/tiramisu/base.py | 13 + .../20family_dynamic_1_0/tiramisu/multi.py | 20 ++ .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 11 + .../20family_dynamic_both/makedict/after.json | 14 + .../20family_dynamic_both/makedict/base.json | 5 + .../makedict/before.json | 14 + .../makedict/mandatory.json | 1 + .../20family_dynamic_both/tiramisu/base.py | 12 + .../20family_dynamic_both/tiramisu/multi.py | 18 + .../dictionaries/rougail/00-base.yml | 2 +- .../20family_dynamic_calc/tiramisu/base.py | 70 +--- .../20family_dynamic_calc/tiramisu/multi.py | 74 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../20family_dynamic_calc2/tiramisu/base.py | 74 +--- .../20family_dynamic_calc2/tiramisu/multi.py | 82 +---- .../dictionaries/rougail/00-base.yml | 7 +- .../tiramisu/base.py | 68 +--- .../tiramisu/multi.py | 70 +--- .../dictionaries/rougail/00-base.yml | 9 +- .../tiramisu/base.py | 72 +--- .../tiramisu/multi.py | 78 +---- .../dictionaries/rougail/00-base.yml | 9 +- .../tiramisu/base.py | 68 +--- .../tiramisu/multi.py | 70 +--- .../dictionaries/rougail/00-base.yml | 24 +- .../makedict/after.json | 10 +- .../makedict/base.json | 6 +- .../makedict/before.json | 10 +- .../20family_dynamic_inside/tiramisu/base.py | 80 +---- .../20family_dynamic_inside/tiramisu/multi.py | 94 +---- .../dictionaries/rougail/00-base.yml | 2 +- .../20family_dynamic_jinja/tiramisu/base.py | 70 +--- .../20family_dynamic_jinja/tiramisu/multi.py | 74 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 70 +--- .../tiramisu/multi.py | 74 +--- .../tiramisu/base.py | 70 +--- .../tiramisu/multi.py | 74 +--- .../tiramisu/base.py | 70 +--- .../tiramisu/multi.py | 74 +--- .../dictionaries/rougail/00-base.yml | 2 + .../makedict/after.json | 6 +- .../makedict/base.json | 6 +- .../makedict/before.json | 6 +- .../makedict/mandatory.json | 2 +- .../tiramisu/base.py | 76 +--- .../tiramisu/multi.py | 90 +---- .../dictionaries/rougail/00-base.yml | 7 +- .../tiramisu/base.py | 68 +--- .../tiramisu/multi.py | 70 +--- .../dictionaries/rougail/00-base.yml | 2 +- .../20family_dynamic_number/tiramisu/base.py | 70 +--- .../20family_dynamic_number/tiramisu/multi.py | 74 +--- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 8 + .../makedict/after.json | 10 + .../makedict/base.json | 4 + .../makedict/before.json | 10 + .../makedict/mandatory.json | 1 + .../20family_dynamic_static/tiramisu/base.py | 11 + .../20family_dynamic_static/tiramisu/multi.py | 16 + .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 28 ++ .../tiramisu/base.py | 15 + .../tiramisu/multi.py | 24 ++ .../dictionaries/rougail/00-base.yml | 7 +- .../makedict/after.json | 4 +- .../makedict/base.json | 4 +- .../makedict/before.json | 4 +- .../tiramisu/base.py | 70 +--- .../tiramisu/multi.py | 74 +--- .../dictionaries/rougail/00-base.yml | 30 ++ .../makedict/after.json | 21 ++ .../makedict/base.json | 9 + .../makedict/before.json | 21 ++ .../makedict/mandatory.json | 1 + .../tiramisu/base.py | 14 + .../tiramisu/multi.py | 22 ++ .../dictionaries/rougail/00-base.yml | 2 +- .../tiramisu/base.py | 70 +--- .../tiramisu/multi.py | 74 +--- .../20family_empty/tiramisu/base.py | 18 +- .../20family_empty/tiramisu/multi.py | 18 +- .../20family_hidden/tiramisu/base.py | 18 +- .../20family_hidden/tiramisu/multi.py | 18 +- .../20family_mode/tiramisu/base.py | 18 +- .../20family_mode/tiramisu/multi.py | 18 +- .../20family_modeleadership/tiramisu/base.py | 18 +- .../20family_modeleadership/tiramisu/multi.py | 18 +- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 40 +++ .../20family_sub_dynamic/makedict/after.json | 71 ++++ .../20family_sub_dynamic/makedict/base.json | 26 ++ .../20family_sub_dynamic/makedict/before.json | 71 ++++ .../makedict/mandatory.json | 1 + .../20family_sub_dynamic/tiramisu/base.py | 18 + .../20family_sub_dynamic/tiramisu/multi.py | 30 ++ .../21family_empty/tiramisu/base.py | 18 +- .../21family_empty/tiramisu/multi.py | 18 +- .../21family_empty_sub/tiramisu/base.py | 18 +- .../21family_empty_sub/tiramisu/multi.py | 18 +- .../30mandatory_withoutvalue/tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../30mandatory_withvalue/tiramisu/base.py | 18 +- .../30mandatory_withvalue/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../40condition_base/tiramisu/base.py | 65 +--- .../40condition_base/tiramisu/multi.py | 65 +--- .../40condition_base_add/tiramisu/base.py | 65 +--- .../40condition_base_add/tiramisu/multi.py | 65 +--- .../40condition_fallback/tmp/base.py | 75 ---- .../40empty_param/tiramisu/base.py | 65 +--- .../40empty_param/tiramisu/multi.py | 65 +--- .../40empty_param2/tiramisu/base.py | 65 +--- .../40empty_param2/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 9 +- .../40family_underscode/makedict/after.json | 1 + .../40family_underscode/makedict/base.json | 1 + .../40family_underscode/makedict/before.json | 1 + .../makedict/mandatory.json | 1 + .../40family_underscode/tiramisu/base.py | 22 ++ .../40family_underscode/tiramisu/multi.py | 38 ++ .../makedict/after.json | 6 + .../makedict/base.json | 3 + .../makedict/before.json | 6 + .../makedict/mandatory.json | 1 + .../tiramisu/base.py | 12 + .../tiramisu/multi.py | 18 + .../40ifin_leadership/tiramisu/base.py | 65 +--- .../40ifin_leadership/tiramisu/multi.py | 65 +--- .../40ifin_leadershipauto/tiramisu/base.py | 65 +--- .../40ifin_leadershipauto/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 65 +--- .../tiramisu/multi.py | 65 +--- .../40ifin_multi/tiramisu/base.py | 65 +--- .../40ifin_multi/tiramisu/multi.py | 65 +--- .../40ifin_multi2/tiramisu/base.py | 65 +--- .../40ifin_multi2/tiramisu/multi.py | 65 +--- .../40ifin_validenum/tiramisu/base.py | 65 +--- .../40ifin_validenum/tiramisu/multi.py | 65 +--- .../40space_param/tiramisu/base.py | 65 +--- .../40space_param/tiramisu/multi.py | 65 +--- .../dictionaries/rougail/00-base.yml | 3 + .../40version_underscode/tiramisu/base.py | 10 + .../40version_underscode/tiramisu/multi.py | 14 + .../45extra_without_family/tiramisu/base.py | 65 +--- .../45extra_without_family/tiramisu/multi.py | 65 +--- .../45multi_family/tiramisu/base.py | 18 +- .../45multi_family/tiramisu/multi.py | 18 +- .../45multi_family_basic/tiramisu/base.py | 18 +- .../45multi_family_basic/tiramisu/multi.py | 18 +- .../45multi_family_expert/tiramisu/base.py | 18 +- .../45multi_family_expert/tiramisu/multi.py | 18 +- .../45multi_family_order/tiramisu/base.py | 18 +- .../45multi_family_order/tiramisu/multi.py | 18 +- .../45without_family/tiramisu/base.py | 18 +- .../45without_family/tiramisu/multi.py | 18 +- .../50exists_exists/tiramisu/base.py | 18 +- .../50exists_exists/tiramisu/multi.py | 18 +- .../50redefine_description/tiramisu/base.py | 18 +- .../50redefine_description/tiramisu/multi.py | 18 +- .../51exists_nonexists/tiramisu/base.py | 18 +- .../51exists_nonexists/tiramisu/multi.py | 18 +- .../51exists_redefine/tiramisu/base.py | 18 +- .../51exists_redefine/tiramisu/multi.py | 18 +- .../51redefine_auto/tiramisu/base.py | 65 +--- .../51redefine_auto/tiramisu/multi.py | 65 +--- .../51redefine_autofill/tiramisu/base.py | 65 +--- .../51redefine_autofill/tiramisu/multi.py | 65 +--- .../51redefine_family/tiramisu/base.py | 65 +--- .../51redefine_family/tiramisu/multi.py | 65 +--- .../51redefine_fill/tiramisu/base.py | 65 +--- .../51redefine_fill/tiramisu/multi.py | 65 +--- .../51redefine_fillauto/tiramisu/base.py | 65 +--- .../51redefine_fillauto/tiramisu/multi.py | 65 +--- .../51redefine_help/tiramisu/base.py | 24 +- .../51redefine_help/tiramisu/multi.py | 30 +- .../51redefine_hidden/tiramisu/base.py | 18 +- .../51redefine_hidden/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 + .../dictionaries/rougail/01-base.yml | 7 +- .../51redefine_leadership/tiramisu/base.py | 12 + .../51redefine_leadership/tiramisu/multi.py | 18 + .../51redefine_multi/tiramisu/base.py | 18 +- .../51redefine_multi/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../51redefine_validenum/tiramisu/base.py | 18 +- .../51redefine_validenum/tiramisu/multi.py | 18 +- .../51redefine_value/tiramisu/base.py | 18 +- .../51redefine_value/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../51remove_fill/tiramisu/base.py | 18 +- .../51remove_fill/tiramisu/multi.py | 18 +- .../52exists_redefine/tiramisu/base.py | 18 +- .../52exists_redefine/tiramisu/multi.py | 18 +- .../60action_external/tiramisu/base.py | 65 +--- .../60action_external/tiramisu/multi.py | 65 +--- .../60extra_basic/tiramisu/base.py | 65 +--- .../60extra_basic/tiramisu/multi.py | 65 +--- .../dictionaries/extra/00-base.yml | 22 -- .../dictionaries/extra1/00-base.yml | 12 - .../dictionaries/rougail/00-base.yml | 13 - .../makedict/after.json | 30 -- .../makedict/base.json | 9 - .../makedict/before.json | 30 -- .../tiramisu/base.py | 83 ----- .../tiramisu/multi.py | 99 ------ .../60extra_help/tiramisu/base.py | 68 +--- .../60extra_help/tiramisu/multi.py | 71 +--- .../60extra_leadership/tiramisu/base.py | 18 +- .../60extra_leadership/tiramisu/multi.py | 18 +- .../60extra_leadership_name/tiramisu/base.py | 18 +- .../60extra_leadership_name/tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../60extra_load/tiramisu/base.py | 65 +--- .../60extra_load/tiramisu/multi.py | 65 +--- .../60extra_mandatory/tiramisu/base.py | 65 +--- .../60extra_mandatory/tiramisu/multi.py | 65 +--- .../60extra_name_family/tiramisu/base.py | 65 +--- .../60extra_name_family/tiramisu/multi.py | 65 +--- .../60extra_no_condition/tiramisu/base.py | 18 +- .../60extra_no_condition/tiramisu/multi.py | 18 +- .../60extra_redefine/tiramisu/base.py | 65 +--- .../60extra_redefine/tiramisu/multi.py | 65 +--- .../tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../60familyaction/tiramisu/base.py | 18 +- .../60familyaction/tiramisu/multi.py | 18 +- .../60familyaction_mandatory/tiramisu/base.py | 18 +- .../tiramisu/multi.py | 18 +- .../dictionaries/extra/00-base.yml | 2 +- .../dictionaries/61extra_dyn/tiramisu/base.py | 68 +--- .../61extra_dyn/tiramisu/multi.py | 70 +--- .../dictionaries/extra/00-base.yml | 2 +- .../61extra_dyn_extra/tiramisu/base.py | 68 +--- .../61extra_dyn_extra/tiramisu/multi.py | 70 +--- .../dictionaries/rougail/00-base.yml | 6 - .../dictionaries/services/00-base.yml | 5 - .../dictionaries/rougail/00-base.yml | 13 - .../dictionaries/rougail/00-base.yml | 12 - .../dictionaries/rougail/00-base.yml | 9 - .../80check_without_target/errno_9 | 0 .../dictionaries/rougail/00-base.yml | 8 - .../dictionaries/rougail/00-base.yml | 6 - .../80condition_not_exists_error/errno_12 | 0 .../dictionaries/rougail/00-base.yml | 6 - .../80condition_not_exists_error_var/errno_12 | 0 .../80condition_without_target/errno_9 | 0 .../dictionaries/rougail/00-base.yml | 11 - .../dictionaries/services/00-base.yml | 5 - .../errno_34 | 0 .../dictionaries/rougail/00-base.yml | 8 - .../dictionaries/services/00-base.yml | 4 - .../dictionaries/services/01-base.yml | 5 - .../80container_filesredefine_error/errno_45 | 0 tests/dictionaries/80empty_dir/__init__.py | 0 tests/dictionaries/80empty_dir/errno_77 | 0 .../80empty_param_number/__init__.py | 0 .../80empty_typeeole_eole/__init__.py | 0 .../80empty_typeeole_eole/errno_27 | 0 .../80empty_typeeole_number/__init__.py | 0 .../80empty_typeeole_number/errno_27 | 0 .../dictionaries/extra/00-base.yml | 23 +- .../dictionaries/extra1/00-base.yml | 12 +- .../dictionaries/rougail/00-base.yml | 10 +- .../errno_38 | 0 .../80extra_externalspaceauto/errno_41 | 0 .../__init__.py | 0 .../dictionaries/extra/00-base.yml | 3 +- .../dictionaries/extra1/00-base.yml | 9 + .../errno_38 | 0 .../__init__.py | 0 .../dictionaries/extra/00-base.yml | 21 -- .../dictionaries/extra1/00-base.yml | 5 - .../dictionaries/rougail/00-base.yml | 8 - .../__init__.py | 0 .../dictionaries/extra/00-base.yml | 5 - .../dictionaries/rougail/00-base.yml | 8 - .../dictionaries/80extra_rougail/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - tests/dictionaries/80extra_rougail/errno_21 | 0 .../dictionaries/80extra_services/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../dictionaries/services/00-base.yml | 21 -- tests/dictionaries/80extra_services/errno_21 | 0 .../80family_appendaccent/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 16 - .../dictionaries/rougail/01-base.yml | 7 - .../dictionaries/rougail/02-base.yml | 7 - .../80family_appendaccent/errno_76 | 0 .../dictionaries/80family_change/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../dictionaries/rougail/01-base.yml | 5 - tests/dictionaries/80family_change/errno_47 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 26 -- .../80family_dynamic_check/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 15 - .../80family_dynamic_check/errno_35 | 0 .../dictionaries/rougail/00-base.yml | 17 +- .../errno_20 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 15 + .../errno_88 | 0 .../80family_dynamic_with_family/__init__.py | 0 .../80family_dynamic_with_family/errno_22 | 0 .../dictionaries/rougail/00-base.yml | 29 +- .../80family_only_on_suffix/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 15 - .../80family_only_on_suffix/errno_35 | 0 .../dictionaries/rougail/00-base.yml | 27 +- .../errno_16 | 0 .../dictionaries/80family_unique/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 4 - tests/dictionaries/80family_unique/errno_55 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 2 - .../80family_variable_not_same_name/errno_57 | 0 .../80family_variable_not_same_name/no_yml | 0 .../80familyaction_accent/__init__.py | 0 .../dictionaries/extra/00-base.yml | 6 - .../dictionaries/rougail/00-base.yml | 7 - .../80familyaction_accent/errno_76 | 0 .../80file_group_wrong_type/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 4 - .../dictionaries/services/00-base.yml | 7 - .../80file_group_wrong_type/errno_58 | 0 .../80file_owner_wrong_type/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 5 - .../dictionaries/services/00-base.yml | 7 - .../80file_owner_wrong_type/errno_58 | 0 .../80file_wrong_type/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 4 - .../dictionaries/services/00-base.yml | 6 - tests/dictionaries/80file_wrong_type/errno_58 | 0 .../80fill_baseaccent/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 13 - tests/dictionaries/80fill_baseaccent/errno_76 | 0 tests/dictionaries/80fill_error/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 9 - tests/dictionaries/80fill_multi/__init__.py | 0 tests/dictionaries/80fill_multi/errno_24 | 0 .../80fill_not_exists/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 14 - tests/dictionaries/80fill_not_exists/errno_42 | 0 tests/dictionaries/80fill_option/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - tests/dictionaries/80fill_option/errno_90 | 0 .../80fill_unknown_function/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../80frozenifin_unknown/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 24 -- .../80frozenifin_unknown/errno_23 | 0 .../80hidden_if_in_dynamic/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 23 -- .../80hidden_if_in_filelist/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 11 - .../dictionaries/services/00-base.yml | 7 - .../80hidden_if_in_filelist/errno_10 | 0 tests/dictionaries/80invalid_bool/__init__.py | 0 tests/dictionaries/80invalid_dtd/__init__.py | 0 tests/dictionaries/80invalid_dtd/errno_43 | 0 tests/dictionaries/80invalid_dtd/no_yml | 0 tests/dictionaries/80invalid_xml/__init__.py | 0 tests/dictionaries/80invalid_xml/errno_52 | 0 tests/dictionaries/80invalid_xml/no_yml | 0 .../80leadership_accent/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 17 - .../dictionaries/80leadership_accent/errno_76 | 0 .../80leadership_accent_leader/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 23 -- .../80leadership_accent_leader/errno_76 | 0 .../80leadership_familyaccent/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 25 -- .../80leadership_familyaccent/errno_76 | 0 .../dictionaries/rougail/00-base.yml | 15 +- .../errno_24 | 0 .../80leadership_subfamily/tiramisu/base.py | 38 -- .../80leadership_subfamily/tiramisu/multi.py | 52 --- .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 32 -- .../errno_76 | 0 .../80load_emptyvalue/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 5 - tests/dictionaries/80load_emptyvalue/errno_95 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 20 -- .../dictionaries/rougail/01-base.yml | 5 - .../errno_76 | 0 .../80load_mandatoryifin_family/__init__.py | 0 .../80load_mandatoryifin_family/errno_51 | 0 .../dictionaries/rougail/00-base.yml | 9 +- .../dictionaries/rougail/00-base.yml | 2 +- .../dictionaries/80nil_with_value/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 24 -- tests/dictionaries/80nil_with_value/errno_40 | 0 .../dictionaries/rougail/00-base.yml | 7 +- .../errno_25 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 6 + .../errno_60 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 2 + .../errno_27 | 0 .../dictionaries/80override_twice/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 6 - .../dictionaries/services/00-base.yml | 3 - tests/dictionaries/80override_twice/errno_69 | 0 tests/dictionaries/80override_twice/no_yml | 0 .../80redefine_double_error/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 - .../dictionaries/rougail/01-base.yml | 4 - .../dictionaries/rougail/02-base.yml | 5 - .../80redefine_double_error/errno_48 | 0 .../dictionaries/rougail/00-base.yml | 8 +- .../dictionaries/rougail/01-redefine.yml | 8 +- .../80redefine_fillerror/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 9 - .../80redefine_fillerror/errno_24 | 0 .../dictionaries/80redefine_type/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 - .../dictionaries/rougail/01-redefine.yml | 5 - tests/dictionaries/80redefine_type/errno_48 | 0 .../80remove_fill_no_fill/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 10 - .../dictionaries/rougail/01-base.yml | 4 - .../80remove_fill_no_fill/errno_89 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 4 - .../dictionaries/services/00-base.yml | 3 - .../80service_not_managed_overrides/errno_66 | 0 .../80services_ip_cidr_netmask/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 - .../dictionaries/services/00-base.yml | 6 - .../80services_ip_cidr_netmask/errno_59 | 0 .../80services_ip_netmask/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 - .../dictionaries/services/00-base.yml | 5 - .../80services_ip_netmask/errno_59 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 4 - .../dictionaries/services/00-base.yml | 4 - .../80services_ip_network_no_netmask/errno_64 | 0 .../80services_ip_not_netmask/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 7 - .../dictionaries/services/00-base.yml | 5 - .../80services_ip_not_netmask/errno_65 | 0 .../80services_ip_wrong_type/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 5 - .../dictionaries/services/00-base.yml | 4 - .../80services_ip_wrong_type/errno_70 | 0 .../80target_list_unknown/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 3 - .../80target_list_unknown/errno_2 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 3 + .../errno_28 | 0 .../80valid_entier_invalid_param/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../80valid_entier_invalid_param/errno_19 | 0 .../80valid_entier_not_number/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../80valid_entier_not_number/errno_18 | 0 .../80valid_entier_without_param/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../80valid_entier_without_param/errno_17 | 0 .../dictionaries/rougail/00-base.yml | 23 +- .../errno_18} | 0 .../80valid_enum_multi_param/errno_5 | 0 .../errno_18} | 0 .../80valid_enum_multi_variable/errno_5 | 0 .../dictionaries/rougail/00-base.yml | 16 +- .../errno_19} | 0 .../80valid_enum_no_choice/errno_4 | 0 .../dictionaries/rougail/00-base.yml | 23 +- .../errno_20} | 0 .../80valid_enum_none_multi_variable/errno_6 | 0 .../errno_11 | 0 .../80valid_enum_not_choice/errno_3 | 0 .../__init__.py | 0 .../errno_14 | 0 .../80valid_enum_variables/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 26 -- .../makedict/after.json | 14 - .../80valid_enum_variables/makedict/base.json | 8 - .../makedict/before.json | 14 - .../80valid_enum_variables/tiramisu/base.py | 69 ---- .../80valid_enum_variables/tiramisu/multi.py | 36 -- .../80variable_accent/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - .../dictionaries/rougail/01-base.yml | 7 - .../dictionaries/rougail/02-base.yml | 7 - tests/dictionaries/80variable_accent/errno_76 | 0 .../dictionaries/80variable_extra/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 2 - tests/dictionaries/80variable_extra/errno_54 | 0 .../__init__.py | 0 .../dictionaries/rougail/00-base.yml | 3 - .../80variable_family_not_same_name/errno_56 | 0 .../80variable_rougail/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 2 - .../dictionaries/80variable_rougail/errno_54 | 0 .../errno_16} | 0 tests/dictionaries/80variable_up/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 12 - tests/dictionaries/80variable_up/errno_76 | 0 .../81extra_externalspace/__init__.py | 0 .../dictionaries/extra/00-base.yml | 21 -- .../dictionaries/extra1/00-base.yml | 5 - .../dictionaries/rougail/00-base.yml | 7 - .../81extra_externalspace/errno_41 | 0 .../88remove_choice_not_choice/__init__.py | 0 .../dictionaries/rougail/00-base.yml | 3 - .../88remove_choice_not_choice/errno_33 | 0 .../88valid_enum_invalid_default/errno_15 | 0 .../errno_26} | 0 tests/test_1_flattener.py | 62 ++-- tests/test_2_makedict.py | 53 ++- 970 files changed, 3272 insertions(+), 25076 deletions(-) delete mode 100644 src/rougail/reflector.py create mode 100644 tests/dictionaries/00empty_family/makedict/after.json create mode 100644 tests/dictionaries/00empty_family/makedict/base.json create mode 100644 tests/dictionaries/00empty_family/makedict/before.json rename tests/dictionaries/{10leadership_autoleader_expert => 00empty_family}/makedict/mandatory.json (100%) create mode 100644 tests/dictionaries/00empty_family/tiramisu/base.py create mode 100644 tests/dictionaries/00empty_family/tiramisu/multi.py create mode 100644 tests/dictionaries/00empty_subfamily/makedict/after.json create mode 100644 tests/dictionaries/00empty_subfamily/makedict/base.json create mode 100644 tests/dictionaries/00empty_subfamily/makedict/before.json rename tests/dictionaries/{60extra_externalspacecondition => 00empty_subfamily}/makedict/mandatory.json (100%) create mode 100644 tests/dictionaries/00empty_subfamily/tiramisu/base.py create mode 100644 tests/dictionaries/00empty_subfamily/tiramisu/multi.py delete mode 100644 tests/dictionaries/10check_option/tmp/base.py create mode 100644 tests/dictionaries/10integer_jinja/makedict/after.json create mode 100644 tests/dictionaries/10integer_jinja/makedict/base.json create mode 100644 tests/dictionaries/10integer_jinja/makedict/before.json create mode 100644 tests/dictionaries/10integer_jinja/makedict/mandatory.json create mode 100644 tests/dictionaries/10integer_jinja/tiramisu/base.py create mode 100644 tests/dictionaries/10integer_jinja/tiramisu/multi.py delete mode 100644 tests/dictionaries/10leadership_autoleader_expert/makedict/after.json delete mode 100644 tests/dictionaries/10leadership_autoleader_expert/makedict/base.json delete mode 100644 tests/dictionaries/10leadership_autoleader_expert/makedict/before.json delete mode 100644 tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py delete mode 100644 tests/dictionaries/10valid_enum_append/tmp/base.py rename tests/dictionaries/10valid_enum_variables/dictionaries/rougail/{00-base.xml => 00-base.yml} (90%) create mode 100644 tests/dictionaries/10valid_enum_variables/makedict/after.json create mode 100644 tests/dictionaries/10valid_enum_variables/makedict/base.json create mode 100644 tests/dictionaries/10valid_enum_variables/makedict/before.json create mode 100644 tests/dictionaries/10valid_enum_variables/makedict/mandatory.json create mode 100644 tests/dictionaries/10valid_enum_variables/tiramisu/base.py create mode 100644 tests/dictionaries/10valid_enum_variables/tiramisu/multi.py rename tests/dictionaries/{60extra_externalspacecondition => 12auto_jinja_not_return_boolean}/__init__.py (100%) create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/makedict/after.json create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/makedict/base.json create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/makedict/before.json create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/makedict/mandatory.json create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/base.py create mode 100644 tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/multi.py rename tests/dictionaries/{80auto_family => 13fill_option_information_parent}/__init__.py (100%) rename tests/dictionaries/{80fill_multi => 13fill_option_information_parent}/dictionaries/rougail/00-base.yml (50%) create mode 100644 tests/dictionaries/13fill_option_information_parent/informations.json create mode 100644 tests/dictionaries/13fill_option_information_parent/makedict/after.json create mode 100644 tests/dictionaries/13fill_option_information_parent/makedict/base.json create mode 100644 tests/dictionaries/13fill_option_information_parent/makedict/before.json create mode 100644 tests/dictionaries/13fill_option_information_parent/makedict/mandatory.json create mode 100644 tests/dictionaries/13fill_option_information_parent/tiramisu/base.py create mode 100644 tests/dictionaries/13fill_option_information_parent/tiramisu/multi.py rename tests/dictionaries/{80base_file_mode_wrong_type => 20family_dynamic_1_0}/__init__.py (100%) rename tests/dictionaries/{80family_dynamic_with_family => 20family_dynamic_1_0}/dictionaries/rougail/00-base.yml (81%) create mode 100644 tests/dictionaries/20family_dynamic_1_0/makedict/after.json create mode 100644 tests/dictionaries/20family_dynamic_1_0/makedict/base.json create mode 100644 tests/dictionaries/20family_dynamic_1_0/makedict/before.json create mode 100644 tests/dictionaries/20family_dynamic_1_0/makedict/mandatory.json create mode 100644 tests/dictionaries/20family_dynamic_1_0/tiramisu/base.py create mode 100644 tests/dictionaries/20family_dynamic_1_0/tiramisu/multi.py rename tests/dictionaries/{80check_self => 20family_dynamic_both}/__init__.py (100%) create mode 100644 tests/dictionaries/20family_dynamic_both/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/20family_dynamic_both/makedict/after.json create mode 100644 tests/dictionaries/20family_dynamic_both/makedict/base.json create mode 100644 tests/dictionaries/20family_dynamic_both/makedict/before.json create mode 100644 tests/dictionaries/20family_dynamic_both/makedict/mandatory.json create mode 100644 tests/dictionaries/20family_dynamic_both/tiramisu/base.py create mode 100644 tests/dictionaries/20family_dynamic_both/tiramisu/multi.py rename tests/dictionaries/{80check_unknown => 20family_dynamic_static}/__init__.py (100%) create mode 100644 tests/dictionaries/20family_dynamic_static/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/20family_dynamic_static/makedict/after.json create mode 100644 tests/dictionaries/20family_dynamic_static/makedict/base.json create mode 100644 tests/dictionaries/20family_dynamic_static/makedict/before.json create mode 100644 tests/dictionaries/20family_dynamic_static/makedict/mandatory.json create mode 100644 tests/dictionaries/20family_dynamic_static/tiramisu/base.py create mode 100644 tests/dictionaries/20family_dynamic_static/tiramisu/multi.py rename tests/dictionaries/{80check_unknown_var => 20family_dynamic_unknown_suffix}/__init__.py (100%) create mode 100644 tests/dictionaries/20family_dynamic_unknown_suffix/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/base.py create mode 100644 tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/multi.py create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/after.json create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/base.json create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/before.json create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/mandatory.json create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/base.py create mode 100644 tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py rename tests/dictionaries/{80check_without_target => 20family_sub_dynamic}/__init__.py (100%) create mode 100644 tests/dictionaries/20family_sub_dynamic/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/20family_sub_dynamic/makedict/after.json create mode 100644 tests/dictionaries/20family_sub_dynamic/makedict/base.json create mode 100644 tests/dictionaries/20family_sub_dynamic/makedict/before.json create mode 100644 tests/dictionaries/20family_sub_dynamic/makedict/mandatory.json create mode 100644 tests/dictionaries/20family_sub_dynamic/tiramisu/base.py create mode 100644 tests/dictionaries/20family_sub_dynamic/tiramisu/multi.py delete mode 100644 tests/dictionaries/40condition_fallback/tmp/base.py create mode 100644 tests/dictionaries/40family_underscode/makedict/after.json create mode 100644 tests/dictionaries/40family_underscode/makedict/base.json create mode 100644 tests/dictionaries/40family_underscode/makedict/before.json create mode 100644 tests/dictionaries/40family_underscode/makedict/mandatory.json create mode 100644 tests/dictionaries/40family_underscode/tiramisu/base.py create mode 100644 tests/dictionaries/40family_underscode/tiramisu/multi.py create mode 100644 tests/dictionaries/40family_unique_not_same_family/makedict/after.json create mode 100644 tests/dictionaries/40family_unique_not_same_family/makedict/base.json create mode 100644 tests/dictionaries/40family_unique_not_same_family/makedict/before.json create mode 100644 tests/dictionaries/40family_unique_not_same_family/makedict/mandatory.json create mode 100644 tests/dictionaries/40family_unique_not_same_family/tiramisu/base.py create mode 100644 tests/dictionaries/40family_unique_not_same_family/tiramisu/multi.py create mode 100644 tests/dictionaries/40version_underscode/dictionaries/rougail/00-base.yml create mode 100644 tests/dictionaries/40version_underscode/tiramisu/base.py create mode 100644 tests/dictionaries/40version_underscode/tiramisu/multi.py rename tests/dictionaries/{80condition_itself => 51redefine_leadership}/__init__.py (100%) create mode 100644 tests/dictionaries/51redefine_leadership/dictionaries/rougail/00-base.yml rename tests/dictionaries/{88remove_choice_not_choice => 51redefine_leadership}/dictionaries/rougail/01-base.yml (54%) create mode 100644 tests/dictionaries/51redefine_leadership/tiramisu/base.py create mode 100644 tests/dictionaries/51redefine_leadership/tiramisu/multi.py delete mode 100644 tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml delete mode 100644 tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml delete mode 100644 tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/60extra_externalspacecondition/makedict/after.json delete mode 100644 tests/dictionaries/60extra_externalspacecondition/makedict/base.json delete mode 100644 tests/dictionaries/60extra_externalspacecondition/makedict/before.json delete mode 100644 tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py delete mode 100644 tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py delete mode 100644 tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80check_without_target/errno_9 delete mode 100644 tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80condition_not_exists_error/errno_12 delete mode 100644 tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80condition_not_exists_error_var/errno_12 delete mode 100644 tests/dictionaries/80condition_without_target/errno_9 delete mode 100644 tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80container_files_symlink_without_source/errno_34 delete mode 100644 tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml delete mode 100644 tests/dictionaries/80container_filesredefine_error/errno_45 delete mode 100644 tests/dictionaries/80empty_dir/__init__.py delete mode 100644 tests/dictionaries/80empty_dir/errno_77 delete mode 100644 tests/dictionaries/80empty_param_number/__init__.py delete mode 100644 tests/dictionaries/80empty_typeeole_eole/__init__.py delete mode 100644 tests/dictionaries/80empty_typeeole_eole/errno_27 delete mode 100644 tests/dictionaries/80empty_typeeole_number/__init__.py delete mode 100644 tests/dictionaries/80empty_typeeole_number/errno_27 rename tests/dictionaries/{80extra_externalspacecondition2 => 80extra_externalspaceauto}/errno_38 (100%) delete mode 100644 tests/dictionaries/80extra_externalspaceauto/errno_41 rename tests/dictionaries/{80condition_not_exists_error => 80extra_externalspacecondition}/__init__.py (100%) rename tests/dictionaries/{80variable_extra => 80extra_externalspacecondition}/dictionaries/extra/00-base.yml (51%) create mode 100644 tests/dictionaries/80extra_externalspacecondition/dictionaries/extra1/00-base.yml rename tests/dictionaries/{80extra_externalspacecondition3 => 80extra_externalspacecondition}/errno_38 (100%) delete mode 100644 tests/dictionaries/80extra_externalspacecondition2/__init__.py delete mode 100644 tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml delete mode 100644 tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml delete mode 100644 tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80extra_externalspacecondition3/__init__.py delete mode 100644 tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml delete mode 100644 tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80extra_rougail/__init__.py delete mode 100644 tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80extra_rougail/errno_21 delete mode 100644 tests/dictionaries/80extra_services/__init__.py delete mode 100644 tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80extra_services/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80extra_services/errno_21 delete mode 100644 tests/dictionaries/80family_appendaccent/__init__.py delete mode 100644 tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml delete mode 100644 tests/dictionaries/80family_appendaccent/errno_76 delete mode 100644 tests/dictionaries/80family_change/__init__.py delete mode 100644 tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80family_change/errno_47 delete mode 100644 tests/dictionaries/80family_dynamic_calc_invalid_suffix/__init__.py delete mode 100644 tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_dynamic_check/__init__.py delete mode 100644 tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_dynamic_check/errno_35 rename tests/dictionaries/{80hidden_if_in_dynamic => 80family_dynamic_not_multi}/errno_20 (100%) rename tests/dictionaries/{80condition_not_exists_error_var => 80family_dynamic_unknown_variable}/__init__.py (100%) create mode 100644 tests/dictionaries/80family_dynamic_unknown_variable/dictionaries/rougail/00-base.yml rename tests/dictionaries/{80invalid_bool => 80family_dynamic_unknown_variable}/errno_88 (100%) delete mode 100644 tests/dictionaries/80family_dynamic_with_family/__init__.py delete mode 100644 tests/dictionaries/80family_dynamic_with_family/errno_22 delete mode 100644 tests/dictionaries/80family_only_on_suffix/__init__.py delete mode 100644 tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_only_on_suffix/errno_35 rename tests/dictionaries/{80family_dynamic_not_multi => 80family_underscode}/errno_16 (100%) delete mode 100644 tests/dictionaries/80family_unique/__init__.py delete mode 100644 tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_unique/errno_55 delete mode 100644 tests/dictionaries/80family_variable_not_same_name/__init__.py delete mode 100644 tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80family_variable_not_same_name/errno_57 delete mode 100644 tests/dictionaries/80family_variable_not_same_name/no_yml delete mode 100644 tests/dictionaries/80familyaction_accent/__init__.py delete mode 100644 tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml delete mode 100644 tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80familyaction_accent/errno_76 delete mode 100644 tests/dictionaries/80file_group_wrong_type/__init__.py delete mode 100644 tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80file_group_wrong_type/errno_58 delete mode 100644 tests/dictionaries/80file_owner_wrong_type/__init__.py delete mode 100644 tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80file_owner_wrong_type/errno_58 delete mode 100644 tests/dictionaries/80file_wrong_type/__init__.py delete mode 100644 tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80file_wrong_type/errno_58 delete mode 100644 tests/dictionaries/80fill_baseaccent/__init__.py delete mode 100644 tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80fill_baseaccent/errno_76 delete mode 100644 tests/dictionaries/80fill_error/__init__.py delete mode 100644 tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80fill_multi/__init__.py delete mode 100644 tests/dictionaries/80fill_multi/errno_24 delete mode 100644 tests/dictionaries/80fill_not_exists/__init__.py delete mode 100644 tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80fill_not_exists/errno_42 delete mode 100644 tests/dictionaries/80fill_option/__init__.py delete mode 100644 tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80fill_option/errno_90 delete mode 100644 tests/dictionaries/80fill_unknown_function/__init__.py delete mode 100644 tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80frozenifin_unknown/__init__.py delete mode 100644 tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80frozenifin_unknown/errno_23 delete mode 100644 tests/dictionaries/80hidden_if_in_dynamic/__init__.py delete mode 100644 tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80hidden_if_in_filelist/__init__.py delete mode 100644 tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80hidden_if_in_filelist/errno_10 delete mode 100644 tests/dictionaries/80invalid_bool/__init__.py delete mode 100644 tests/dictionaries/80invalid_dtd/__init__.py delete mode 100644 tests/dictionaries/80invalid_dtd/errno_43 delete mode 100644 tests/dictionaries/80invalid_dtd/no_yml delete mode 100644 tests/dictionaries/80invalid_xml/__init__.py delete mode 100644 tests/dictionaries/80invalid_xml/errno_52 delete mode 100644 tests/dictionaries/80invalid_xml/no_yml delete mode 100644 tests/dictionaries/80leadership_accent/__init__.py delete mode 100644 tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80leadership_accent/errno_76 delete mode 100644 tests/dictionaries/80leadership_accent_leader/__init__.py delete mode 100644 tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80leadership_accent_leader/errno_76 delete mode 100644 tests/dictionaries/80leadership_familyaccent/__init__.py delete mode 100644 tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80leadership_familyaccent/errno_76 rename tests/dictionaries/{80fill_error => 80leadership_subfamily}/errno_24 (100%) delete mode 100644 tests/dictionaries/80leadership_subfamily/tiramisu/base.py delete mode 100644 tests/dictionaries/80leadership_subfamily/tiramisu/multi.py delete mode 100644 tests/dictionaries/80load_disabled_if_inaccent_family/__init__.py delete mode 100644 tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80load_disabled_if_inaccent_family/errno_76 delete mode 100644 tests/dictionaries/80load_emptyvalue/__init__.py delete mode 100644 tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80load_emptyvalue/errno_95 delete mode 100644 tests/dictionaries/80load_leadership_normalize_family/__init__.py delete mode 100644 tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80load_leadership_normalize_family/errno_76 delete mode 100644 tests/dictionaries/80load_mandatoryifin_family/__init__.py delete mode 100644 tests/dictionaries/80load_mandatoryifin_family/errno_51 delete mode 100644 tests/dictionaries/80nil_with_value/__init__.py delete mode 100644 tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80nil_with_value/errno_40 rename tests/dictionaries/{80fill_unknown_function => 80no_leadership_index}/errno_25 (100%) rename tests/dictionaries/{80condition_without_target => 80no_leadership_index2}/__init__.py (100%) create mode 100644 tests/dictionaries/80no_leadership_index2/dictionaries/rougail/00-base.yml rename tests/dictionaries/{80no_leadership_index => 80no_leadership_index2}/errno_60 (100%) rename tests/dictionaries/{80container_files_symlink_without_source => 80no_version}/__init__.py (100%) create mode 100644 tests/dictionaries/80no_version/dictionaries/rougail/00-base.yml rename tests/dictionaries/{80empty_param_number => 80no_version}/errno_27 (100%) delete mode 100644 tests/dictionaries/80override_twice/__init__.py delete mode 100644 tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80override_twice/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80override_twice/errno_69 delete mode 100644 tests/dictionaries/80override_twice/no_yml delete mode 100644 tests/dictionaries/80redefine_double_error/__init__.py delete mode 100644 tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml delete mode 100644 tests/dictionaries/80redefine_double_error/errno_48 delete mode 100644 tests/dictionaries/80redefine_fillerror/__init__.py delete mode 100644 tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80redefine_fillerror/errno_24 delete mode 100644 tests/dictionaries/80redefine_type/__init__.py delete mode 100644 tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml delete mode 100644 tests/dictionaries/80redefine_type/errno_48 delete mode 100644 tests/dictionaries/80remove_fill_no_fill/__init__.py delete mode 100644 tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80remove_fill_no_fill/errno_89 delete mode 100644 tests/dictionaries/80service_not_managed_overrides/__init__.py delete mode 100644 tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80service_not_managed_overrides/errno_66 delete mode 100644 tests/dictionaries/80services_ip_cidr_netmask/__init__.py delete mode 100644 tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_cidr_netmask/errno_59 delete mode 100644 tests/dictionaries/80services_ip_netmask/__init__.py delete mode 100644 tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_netmask/errno_59 delete mode 100644 tests/dictionaries/80services_ip_network_no_netmask/__init__.py delete mode 100644 tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_network_no_netmask/errno_64 delete mode 100644 tests/dictionaries/80services_ip_not_netmask/__init__.py delete mode 100644 tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_not_netmask/errno_65 delete mode 100644 tests/dictionaries/80services_ip_wrong_type/__init__.py delete mode 100644 tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml delete mode 100644 tests/dictionaries/80services_ip_wrong_type/errno_70 delete mode 100644 tests/dictionaries/80target_list_unknown/__init__.py delete mode 100644 tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80target_list_unknown/errno_2 rename tests/dictionaries/{80container_filesredefine_error => 80unsupported_version}/__init__.py (100%) create mode 100644 tests/dictionaries/80unsupported_version/dictionaries/rougail/00-base.yml rename tests/dictionaries/{80family_dynamic_calc_invalid_suffix => 80unsupported_version}/errno_28 (100%) delete mode 100644 tests/dictionaries/80valid_entier_invalid_param/__init__.py delete mode 100644 tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80valid_entier_invalid_param/errno_19 delete mode 100644 tests/dictionaries/80valid_entier_not_number/__init__.py delete mode 100644 tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80valid_entier_not_number/errno_18 delete mode 100644 tests/dictionaries/80valid_entier_without_param/__init__.py delete mode 100644 tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80valid_entier_without_param/errno_17 rename tests/dictionaries/{80auto_family/errno_8 => 80valid_enum_multi_param/errno_18} (100%) delete mode 100644 tests/dictionaries/80valid_enum_multi_param/errno_5 rename tests/dictionaries/{80base_file_mode_wrong_type/errno_43 => 80valid_enum_multi_variable/errno_18} (100%) delete mode 100644 tests/dictionaries/80valid_enum_multi_variable/errno_5 rename tests/dictionaries/{80base_file_mode_wrong_type/errno_93 => 80valid_enum_no_choice/errno_19} (100%) delete mode 100644 tests/dictionaries/80valid_enum_no_choice/errno_4 rename tests/dictionaries/{80check_self/errno_80 => 80valid_enum_none_multi_variable/errno_20} (100%) delete mode 100644 tests/dictionaries/80valid_enum_none_multi_variable/errno_6 rename tests/dictionaries/{80condition_itself => 80valid_enum_not_choice}/errno_11 (100%) delete mode 100644 tests/dictionaries/80valid_enum_not_choice/errno_3 delete mode 100644 tests/dictionaries/80valid_enum_number_without_value/__init__.py delete mode 100644 tests/dictionaries/80valid_enum_number_without_value/errno_14 delete mode 100644 tests/dictionaries/80valid_enum_variables/__init__.py delete mode 100644 tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80valid_enum_variables/makedict/after.json delete mode 100644 tests/dictionaries/80valid_enum_variables/makedict/base.json delete mode 100644 tests/dictionaries/80valid_enum_variables/makedict/before.json delete mode 100644 tests/dictionaries/80valid_enum_variables/tiramisu/base.py delete mode 100644 tests/dictionaries/80valid_enum_variables/tiramisu/multi.py delete mode 100644 tests/dictionaries/80variable_accent/__init__.py delete mode 100644 tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml delete mode 100644 tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml delete mode 100644 tests/dictionaries/80variable_accent/errno_76 delete mode 100644 tests/dictionaries/80variable_extra/__init__.py delete mode 100644 tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80variable_extra/errno_54 delete mode 100644 tests/dictionaries/80variable_family_not_same_name/__init__.py delete mode 100644 tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80variable_family_not_same_name/errno_56 delete mode 100644 tests/dictionaries/80variable_rougail/__init__.py delete mode 100644 tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80variable_rougail/errno_54 rename tests/dictionaries/{80check_unknown/errno_1 => 80variable_underscode/errno_16} (100%) delete mode 100644 tests/dictionaries/80variable_up/__init__.py delete mode 100644 tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/80variable_up/errno_76 delete mode 100644 tests/dictionaries/81extra_externalspace/__init__.py delete mode 100644 tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml delete mode 100644 tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml delete mode 100644 tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/81extra_externalspace/errno_41 delete mode 100644 tests/dictionaries/88remove_choice_not_choice/__init__.py delete mode 100644 tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml delete mode 100644 tests/dictionaries/88remove_choice_not_choice/errno_33 delete mode 100644 tests/dictionaries/88valid_enum_invalid_default/errno_15 rename tests/dictionaries/{80check_unknown_var/errno_42 => 88valid_enum_invalid_default/errno_26} (100%) diff --git a/pyproject.toml b/pyproject.toml index 8d1ae415c..859db2627 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ dependencies = [ "pyyaml ~= 6.0.1", "pydantic ~= 2.5.2", "jinja2 ~= 3.1.2", + "tiramisu ~= 4.1.0", ] [project.optional-dependancies] dev = [ diff --git a/src/rougail/annotator/family.py b/src/rougail/annotator/family.py index ca3aded6c..d2d98426d 100644 --- a/src/rougail/annotator/family.py +++ b/src/rougail/annotator/family.py @@ -30,7 +30,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from typing import Optional from rougail.i18n import _ from rougail.error import DictConsistencyError +from rougail.utils import get_realpath from rougail.annotator.variable import Walk +from rougail.object_model import VariableCalculation class Mode: # pylint: disable=R0903 @@ -67,11 +69,23 @@ class Annotator(Walk): name: Mode(idx) for idx, name in enumerate(self.objectspace.rougailconfig["modes_level"]) } + self.check_leadership() self.remove_empty_families() self.family_names() self.change_modes() self.convert_help() + def check_leadership(self) -> None: + """No subfamily in a leadership""" + for family in self.get_families(): + if family.type != "leadership": + continue + for variable_path in self.objectspace.parents[family.path]: + variable = self.objectspace.paths[variable_path] + if variable.type in self.objectspace.family_types: + msg = f'the leadership "{family.path}" cannot have the { variable.type } "{ variable.path}"' + raise DictConsistencyError(msg, 24, variable.xmlfiles) + def remove_empty_families(self) -> None: """Remove all families without any variable""" removed_families = [] @@ -103,9 +117,6 @@ class Annotator(Walk): if not family.description: family.description = family.name - # family.doc = family.description - # del family.description - def change_modes(self): """change the mode of variables""" modes_level = self.objectspace.rougailconfig["modes_level"] @@ -161,6 +172,7 @@ class Annotator(Walk): continue if leader is None and family.type == "leadership": leader = variable + leader_mode = leader.mode if variable_path in self.objectspace.families: # set default mode a subfamily if family_mode and not self._has_mode(variable): @@ -171,9 +183,9 @@ class Annotator(Walk): if leader: self._set_default_mode_leader(leader, variable) self._set_default_mode_variable(variable, family_mode) - if leader: + if leader and leader_mode is not None: # here because follower can change leader mode - self._set_auto_mode(family, leader.mode) + self._set_auto_mode(family, leader_mode) def _has_mode(self, obj) -> bool: return obj.mode and not obj.path in self.mode_auto @@ -259,7 +271,7 @@ class Annotator(Walk): # change variable mode, but not if variables are not in a family is_leadership = family.type == "leadership" if family.path in self.objectspace.parents: - for idx, variable_path in enumerate(self.objectspace.parents[family.path]): + for variable_path in self.objectspace.parents[family.path]: variable = self.objectspace.paths[variable_path] if variable.type == "symlink": continue @@ -275,6 +287,10 @@ class Annotator(Walk): if not family.mode: # set the lower variable mode to family self._set_auto_mode(family, min_variable_mode) + if self.modes[family.mode] < self.modes[min_variable_mode]: + msg = _(f'the family "{family.name}" is in "{family.mode}" mode but variables and ' + f'families inside have the higher modes "{min_variable_mode}"') + raise DictConsistencyError(msg, 62, family.xmlfiles) def _change_variable_mode( self, @@ -298,6 +314,21 @@ class Annotator(Walk): if not variable.mode: variable.mode = variable_mode + def dynamic_families(self): + """link dynamic families to object""" + for family in self.get_families(): + if family.type != "dynamic": + continue + for variable in self.objectspace.parents[family.path]: + if ( + isinstance(variable, self.objectspace.family) + and not variable.leadership + ): + msg = _( + f'dynamic family "{family.name}" cannot contains another family' + ) + raise DictConsistencyError(msg, 22, family.xmlfiles) + def convert_help(self): """Convert variable help""" for family in self.get_families(): diff --git a/src/rougail/annotator/value.py b/src/rougail/annotator/value.py index cef0a00c8..2891b6d19 100644 --- a/src/rougail/annotator/value.py +++ b/src/rougail/annotator/value.py @@ -48,7 +48,7 @@ class Annotator(Walk): # pylint: disable=R0903 return self.objectspace = objectspace self.convert_value() - self.add_choice_nil() + self.valid_choices() def convert_value(self) -> None: """convert value""" @@ -95,17 +95,22 @@ class Annotator(Walk): # pylint: disable=R0903 self.objectspace.default_multi[variable.path] = variable.default variable.default = None - def add_choice_nil(self) -> None: + def valid_choices(self) -> None: """A variable with type "Choice" that is not mandatory must has "nil" value""" for variable in self.get_variables(): if variable.type != "choice": continue - is_none = False if isinstance(variable.choices, Calculation): continue - for choice in variable.choices: - if choice is None: - is_none = True - break - if not variable.mandatory and not is_none: - variable.choices.append(None) + if variable.choices is None: + msg = f'the variable "{variable.path}" is a "choice" variable but don\'t have any choice' + raise DictConsistencyError(msg, 19, variable.xmlfiles) + if not variable.mandatory: + self.add_choice_nil(variable) + + def add_choice_nil(self, variable) -> None: + """A variable with type "Choice" that is not mandatory must has "nil" value""" + for choice in variable.choices: + if choice is None: + return + variable.choices.append(None) diff --git a/src/rougail/annotator/variable.py b/src/rougail/annotator/variable.py index 40b8cc001..447de9ebe 100644 --- a/src/rougail/annotator/variable.py +++ b/src/rougail/annotator/variable.py @@ -31,6 +31,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from rougail.i18n import _ from rougail.error import DictConsistencyError from rougail.object_model import Calculation +from tiramisu.error import display_list class Walk: @@ -75,6 +76,7 @@ class Annotator(Walk): # pylint: disable=R0903 self.convert_variable() self.convert_test() self.convert_help() + self.verify_choices() def convert_variable(self): """convert variable""" @@ -93,7 +95,6 @@ class Annotator(Walk): # pylint: disable=R0903 self, variable, ) -> None: - # variable has no type if variable.type is None: # choice type inference from the `choices` attribute @@ -157,3 +158,28 @@ class Annotator(Walk): # pylint: disable=R0903 continue self.objectspace.informations.add(variable.path, "help", variable.help) del variable.help + + def verify_choices(self): + for variable in self.get_variables(): + if variable.default is None or variable.type != 'choice': + continue + if not isinstance(variable.choices, list): + continue + choices = variable.choices + has_calculation = False + for choice in choices: + if isinstance(choice, Calculation): + has_calculation = True + break + if has_calculation: + continue + + default = variable.default + if not isinstance(default, list): + default = [default] + for value in default: + if isinstance(value, Calculation): + continue + if value not in choices: + msg = _(f'the variable "{variable.path}" has an unvalid default value "{value}" should be in {display_list(choices, separator="or", add_quote=True)}') + raise DictConsistencyError(msg, 26, variable.xmlfiles) diff --git a/src/rougail/convert.py b/src/rougail/convert.py index 7176f42a5..526092abb 100644 --- a/src/rougail/convert.py +++ b/src/rougail/convert.py @@ -47,6 +47,8 @@ from re import findall, compile from yaml import safe_load from pydantic import ValidationError +from tiramisu.error import display_list + from .i18n import _ from .annotator import SpaceAnnotator from .tiramisureflector import TiramisuReflector @@ -99,9 +101,12 @@ class Property: class Paths: _regexp_relative = compile(r"^_*\.(.*)$") - def __init__(self) -> None: + def __init__(self, + default_namespace: str, + ) -> None: self._data: Dict[str, Union[Variable, Family]] = {} - self._dynamics: List[str] = [] + self._dynamics: Dict[str: str] = {} + self.default_namespace = default_namespace self.path_prefix = None def has_value(self) -> bool: @@ -112,21 +117,25 @@ class Paths: path: str, data: Any, is_dynamic: bool, + dynamic: str, *, force: bool = False, ) -> None: self._data[path] = data if not force and is_dynamic: - self._dynamics.append(path) + self._dynamics[path] = dynamic def get_with_dynamic( self, path: str, suffix_path: str, current_path: str, + version: str, + namespace: str, + xmlfiles: List[str], ) -> Any: suffix = None - if self._regexp_relative.search(path): + if version != '1.0' and self._regexp_relative.search(path): relative, subpath = path.split(".", 1) relative_len = len(relative) path_len = current_path.count(".") @@ -134,48 +143,80 @@ class Paths: path = parent_path + "." + subpath else: path = get_realpath(path, suffix_path) - dynamic_path = None - dynamic_variable_path = None - if not path in self._data: - for dynamic in self._dynamics: - if "{{ suffix }}" in dynamic: - regexp = "^" + dynamic.replace("{{ suffix }}", "(.*)") + "." - finded = findall(regexp, path) - if len(finded) != 1: - continue - splitted_dynamic = dynamic.split(".") - splitted_path = path.split(".") - for idx, s in enumerate(splitted_dynamic): - if "{{ suffix }}" in s: - break - - suffix_path = ".".join(splitted_path[idx + 1 :]) - if suffix_path: - suffix_path = "." + suffix_path - suffix = splitted_path[idx] + suffix_path - dynamic_path = dynamic - dynamic_variable_path = dynamic + suffix_path - break - elif path.startswith(dynamic): - subpaths = path[len(dynamic) :].split(".", 1) - if ( - subpaths[0] - and len(subpaths) > 1 - and dynamic + "." + subpaths[1] in self._dynamics - ): - suffix = ( - dynamic.rsplit(".", 1)[-1] + subpaths[0] + "." + subpaths[1] - ) - dynamic_path = dynamic - dynamic_variable_path = dynamic + "." + subpaths[1] - break - if suffix is None and not path in self._data: - return None, None, None dynamic = None - if suffix and dynamic_variable_path: - path = dynamic_variable_path - dynamic = self._data[dynamic_path] - return self._data[path], suffix, dynamic + if not path in self._data and '{{ suffix }}' not in path: + new_path = None + current_path = None + for name in path.split('.'): + parent_path = current_path + if current_path: + current_path += '.' + name + else: + current_path = name + if current_path in self._data: + if new_path: + new_path += '.' + name + else: + new_path = name + continue + for dynamic_path in self._dynamics: + parent_dynamic, name_dynamic = dynamic_path.rsplit('.', 1) + if version == '1.0' and parent_dynamic == parent_path and name_dynamic.endswith('{{ suffix }}') and name == name_dynamic.replace('{{ suffix }}', ''): + new_path += '.' + name_dynamic + break + else: + if new_path: + new_path += '.' + name + else: + new_path = name + path = new_path + if not path in self._data: + current_path = None + new_path = current_path + suffixes = [] + for name in path.split('.'): + parent_path = current_path + if current_path: + current_path += '.' + name + else: + current_path = name + #parent_path, name_path = path.rsplit('.', 1) + if current_path in self._data: + if new_path: + new_path += '.' + name + else: + new_path = name + continue + for dynamic_path in self._dynamics: + parent_dynamic, name_dynamic = dynamic_path.rsplit('.', 1) + if "{{ suffix }}" not in name_dynamic or parent_path != parent_dynamic: + continue + regexp = "^" + name_dynamic.replace("{{ suffix }}", "(.*)") + finded = findall(regexp, name) + if len(finded) != 1 or not finded[0]: + continue + suffixes.append(finded[0]) + new_path += '.' + name_dynamic + break + else: + if new_path: + new_path += '.' + name + else: + new_path = name + if "{{ suffix }}" in name: + suffixes.append(None) + path = new_path + else: + suffixes = None + if path not in self._data: + return None, None + option = self._data[path] + option_namespace = option.namespace + if self.default_namespace not in [namespace, option_namespace] and namespace != option_namespace: + msg = _(f'A variable or a family located in the "{option_namespace}" namespace ' + f'shall not be used in the "{namespace}" namespace') + raise DictConsistencyError(msg, 38, xmlfiles) + return option, suffixes def __getitem__( self, @@ -233,7 +274,7 @@ class Informations: class ParserVariable: def __init__(self, rougailconfig): - self.paths = Paths() + self.paths = Paths(rougailconfig["variable_namespace"]) self.families = [] self.variables = [] self.parents = {".": []} @@ -266,6 +307,8 @@ class ParserVariable: return self.variable = Variable hint = get_type_hints(self.dynamic) + # FIXME: only for format 1.0 + hint['variable'] = str self.family_types = hint["type"].__args__ # pylint: disable=W0201 self.family_attrs = frozenset( # pylint: disable=W0201 set(hint) - {"name", "path", "xmlfiles"} | {"redefine"} @@ -295,6 +338,7 @@ class ParserVariable: path: str, obj: dict, family_is_leadership: bool, + filename: str, ) -> Literal["variable", "family"]: """Check object to determine if it's a variable or a family""" # it's already has a variable or a family @@ -312,7 +356,8 @@ class ParserVariable: return "family" if obj_type in self.variable_types: return "variable" - raise Exception(f"unknown type {obj_type} for {path}") + msg = f"unknown type {obj_type} for {path}" + raise DictConsistencyError(msg, 43, [filename]) # in a leadership there is only variable if family_is_leadership: return "variable" @@ -358,14 +403,17 @@ class ParserVariable: first_variable: bool = False, family_is_leadership: bool = False, family_is_dynamic: bool = False, + parent_dynamic: Optional[str] = None, ) -> None: if name.startswith("_"): - raise Exception("forbidden!") + msg = f'the variable or family name "{name}" is incorrect, it must not starts with "_" character' + raise DictConsistencyError(msg, 16, [filename]) path = f"{subpath}.{name}" typ = self.is_family_or_variable( path, obj, family_is_leadership, + filename, ) logging.info("family_or_variable: %s is a %s", path, typ) if typ == "family": @@ -381,6 +429,7 @@ class ParserVariable: first_variable=first_variable, family_is_leadership=family_is_leadership, family_is_dynamic=family_is_dynamic, + parent_dynamic=parent_dynamic, ) def parse_family( @@ -394,6 +443,7 @@ class ParserVariable: first_variable: bool = False, family_is_leadership: bool = False, family_is_dynamic: bool = False, + parent_dynamic: Optional[str] = None ) -> None: """Parse a family""" if obj is None: @@ -419,12 +469,14 @@ class ParserVariable: path, self.paths[path].model_copy(update=obj), family_is_dynamic, + parent_dynamic, force=True, ) self.paths[path].xmlfiles.append(filename) force_not_first = True if self.paths[path].type == "dynamic": family_is_dynamic = True + parent_dynamic = path else: if "redefine" in obj and obj["redefine"]: raise Exception( @@ -435,12 +487,20 @@ class ParserVariable: raise Exception(f"extra attrs ... {extra_attrs}") if self.get_family_or_variable_type(family_obj) == "dynamic": family_is_dynamic = True + parent_dynamic = path + if version == '1.0' and '{{ suffix }}' not in name: + name += '{{ suffix }}' + path += '{{ suffix }}' + if '{{ suffix }}' not in name: + msg = f'dynamic family name must have "{{{{ suffix }}}}" in his name for "{path}"' + raise DictConsistencyError(msg, 13, [filename]) self.add_family( path, name, family_obj, filename, family_is_dynamic, + parent_dynamic, version, ) force_not_first = False @@ -449,9 +509,8 @@ class ParserVariable: for idx, key in enumerate(subfamily_obj): value = subfamily_obj[key] if not isinstance(value, dict) and value is not None: - raise Exception( - f'the variable "{path}.{key}" has a wrong type "{type(value)}"' - ) + msg = f'the variable "{path}.{key}" has a wrong type "{type(value)}"' + raise DictConsistencyError(msg, 17, [filename]) first_variable = not force_not_first and idx == 0 if value is None: value = {} @@ -464,6 +523,7 @@ class ParserVariable: first_variable=first_variable, family_is_leadership=family_is_leadership, family_is_dynamic=family_is_dynamic, + parent_dynamic=parent_dynamic, ) def list_attributes( @@ -502,57 +562,52 @@ class ParserVariable: path: str, name: str, family: dict, - filenames: Union[str, List[str]], + filename: str, family_is_dynamic: bool, + parent_dynamic: str, version: str, ) -> None: """Add a new family""" family["path"] = path - if not isinstance(filenames, list): - filenames = [filenames] - family["xmlfiles"] = filenames + family["namespace"] = self.namespace + family["xmlfiles"] = [filename] obj_type = self.get_family_or_variable_type(family) if obj_type == "dynamic": family_obj = self.dynamic if version == "1.0": - if family["variable"] is None: - raise Exception(f'dynamic family must have "variable" attribute for "{family["path"]}" in {family["xmlfiles"]}') - family["dynamic"] = {'type': 'variable', - 'variable': family.pop("variable"), + if "variable" not in family: + raise DictConsistencyError(f'dynamic family must have "variable" attribute for "{path}"', 101, family["xmlfiles"]) + if 'dynamic' in family: + raise DictConsistencyError('variable and dynamic cannot be set together in the dynamic family "{path}"', 100, family['xmlfiles']) + family['dynamic'] = {'type': 'variable', + 'variable': family['variable'], 'propertyerror': False, + 'allow_none': True, } + del family['variable'] + #FIXME only for 1.0 if "variable" in family: raise Exception(f'dynamic family must not have "variable" attribute for "{family["path"]}" in {family["xmlfiles"]}') else: family_obj = self.family # convert to Calculation objects - for key, value in family.items(): - if not self.is_calculation( - key, - value, - self.family_calculations, - False, - ): - continue - try: - self.set_calculation( - family, - key, - value, - path, - ) - except ValidationError as err: - raise Exception( - f'the family "{path}" in "{filenames}" has an invalid "{key}": {err}' - ) from err + self.parse_parameters(path, + family, + filename, + family_is_dynamic, + False, + version, + typ='family', + ) try: self.paths.add( path, family_obj(name=name, **family), family_is_dynamic, + parent_dynamic, ) except ValidationError as err: - raise Exception(f'invalid family "{path}" in "{filenames}": {err}') from err + raise Exception(f'invalid family "{path}" in "{filename}": {err}') from err self.set_name( self.paths[path], "optiondescription_", @@ -576,6 +631,7 @@ class ParserVariable: first_variable: bool = False, family_is_leadership: bool = False, family_is_dynamic: bool = False, + parent_dynamic: Optional[str] = None, ) -> None: """Parse variable""" if obj is None: @@ -586,15 +642,22 @@ class ParserVariable: f'"{path}" is not a valid variable, there are additional ' f'attributes: "{", ".join(extra_attrs)}"' ) - self.parse_parameters(path, obj, filename) + self.parse_parameters(path, + obj, + filename, + family_is_dynamic, + family_is_leadership is True and first_variable is False, + version, + ) self.parse_params(path, obj) if path in self.paths: if "exists" in obj and not obj.pop("exists"): return if not obj.pop("redefine", False): - raise Exception(f'Variable "{path}" already exists') + msg = f'Variable "{path}" already exists' + raise DictConsistencyError(msg, 45, [filename]) self.paths.add( - path, self.paths[path].model_copy(update=obj), False, force=True + path, self.paths[path].model_copy(update=obj),family_is_dynamic, parent_dynamic, force=True ) self.paths[path].xmlfiles.append(filename) else: @@ -604,15 +667,15 @@ class ParserVariable: # so do nothing return if "redefine" in obj and obj["redefine"]: - raise Exception( - f'cannot redefine the inexisting variable "{path}" in {filename}' - ) + msg = f'cannot redefine the inexisting variable "{path}" in {filename}' + raise DictConsistencyError(msg, 46, [filename]) obj["path"] = path self.add_variable( name, obj, filename, family_is_dynamic, + parent_dynamic, version ) if family_is_leadership: @@ -621,13 +684,26 @@ class ParserVariable: else: self.followers.append(path) - def parse_parameters(self, path, obj, filename): - """Parse variable parameters""" + def parse_parameters(self, + path: str, + obj: dict, + filename: str, + family_is_dynamic: bool, + is_follower: bool, + version: str, + *, + typ: str='variable', + ): + """Parse variable or family parameters""" + if typ == 'variable': + calculations = self.choice_calculations + else: + calculations = self.family_calculations for key, value in obj.items(): if self.is_calculation( key, value, - self.choice_calculations, + calculations, False, ): try: @@ -636,19 +712,23 @@ class ParserVariable: key, value, path, + family_is_dynamic, + is_follower, + version, + [filename], ) except ValidationError as err: raise Exception( - f'the variable "{path}" in "{filename}" has an invalid "{key}": {err}' + f'the {typ} "{path}" in "{filename}" has an invalid "{key}": {err}' ) from err continue - if not isinstance(value, list) or key not in self.choice_calculations[0]: + if not isinstance(value, list): continue for idx, val in enumerate(value): if not self.is_calculation( key, val, - self.choice_calculations, + calculations, True, ): continue @@ -658,12 +738,16 @@ class ParserVariable: key, val, path, + family_is_dynamic, + is_follower, + version, + [filename], inside_list=True, index=idx, ) except ValidationError as err: raise Exception( - f'the variable "{path}" in "{filename}" has an invalid "{key}" ' + f'the {typ} "{path}" in "{filename}" has an invalid "{key}" ' f"at index {idx}: {err}" ) from err @@ -676,7 +760,7 @@ class ParserVariable: params = [] for key, val in obj["params"].items(): try: - params.append(AnyParam(key=key, value=val, type="any")) + params.append(AnyParam(key=key, value=val, type="any", path=None, is_follower=None, attribute=None, family_is_dynamic=None, xmlfiles=None)) except ValidationError as err: raise Exception( f'"{key}" has an invalid "params" for {path}: {err}' @@ -689,13 +773,16 @@ class ParserVariable: variable: dict, filename: str, family_is_dynamic: bool, + parent_dynamic: Optional[str], version: str ) -> None: """Add a new variable""" if not isinstance(filename, list): filename = [filename] - variable["xmlfiles"] = filename + + variable["namespace"] = self.namespace variable["version"] = version + variable["xmlfiles"] = filename variable_type = self.get_family_or_variable_type(variable) obj = { "symlink": SymLink, @@ -705,12 +792,13 @@ class ParserVariable: variable_obj = obj(name=name, **variable) except ValidationError as err: raise Exception( - f'invalid variable "{variable.path}" in "{filename}": {err}' + f'invalid variable "{variable["path"]}" in "{filename}": {err}' ) from err self.paths.add( variable["path"], variable_obj, family_is_dynamic, + parent_dynamic, ) self.variables.append(variable["path"]) self.parents[variable["path"].rsplit(".", 1)[0]].append(variable["path"]) @@ -771,6 +859,10 @@ class ParserVariable: attribute: str, value: dict, path: str, + family_is_dynamic: bool, + is_follower: bool, + version: str, + xmlfiles: List[str], *, inside_list: bool = False, index: int = None, @@ -783,6 +875,9 @@ class ParserVariable: calculation_object["path_prefix"] = self.path_prefix calculation_object["path"] = path calculation_object["inside_list"] = inside_list + calculation_object["version"] = version + calculation_object["namespace"] = self.namespace + calculation_object["xmlfiles"] = xmlfiles # if "params" in calculation_object: if not isinstance(calculation_object["params"], dict): @@ -798,6 +893,11 @@ class ParserVariable: else: param_typ = val["type"] val["key"] = key + val['path'] = path + val['family_is_dynamic'] = family_is_dynamic + val['is_follower'] = is_follower + val['attribute'] = attribute + val['xmlfiles'] = xmlfiles try: params.append(PARAM_TYPES[param_typ](**val)) except ValidationError as err: @@ -813,10 +913,14 @@ class ParserVariable: f'unknown "return_type" in {attribute} of variable "{path}"' ) # + if typ == "suffix" and not family_is_dynamic: + msg = f'suffix calculation for "{attribute}" in "{path}" cannot be set none dynamic family' + raise DictConsistencyError(msg, 53, xmlfiles) + calc = CALCULATION_TYPES[typ](**calculation_object) if index is None: - obj[attribute] = CALCULATION_TYPES[typ](**calculation_object) - if index is not None: - obj[attribute][index] = CALCULATION_TYPES[typ](**calculation_object) + obj[attribute] = calc + else: + obj[attribute][index] = calc class RougailConvert(ParserVariable): @@ -866,6 +970,7 @@ class RougailConvert(ParserVariable): raise Exception("pfffff") root_parent = path_prefix self.path_prefix = path_prefix + self.namespace = None self.add_family( path_prefix, path_prefix, @@ -873,6 +978,7 @@ class RougailConvert(ParserVariable): "", False, None, + None, ) else: root_parent = "." @@ -886,16 +992,16 @@ class RougailConvert(ParserVariable): self.rougailconfig["extra_dictionaries"].items(), ) for namespace, extra_dirs in directory_dict: + self.namespace = namespace if root_parent == ".": - namespace_path = namespace + namespace_path = self.namespace else: - namespace_path = f"{root_parent}.{namespace}" + namespace_path = f"{root_parent}.{self.namespace}" if namespace_path in self.parents: raise Exception("pfff") for filename in self.get_sorted_filename(extra_dirs): self.parse_variable_file( filename, - namespace, namespace_path, ) if path_prefix: @@ -904,7 +1010,6 @@ class RougailConvert(ParserVariable): def parse_variable_file( self, filename: str, - namespace: str, path: str, ) -> None: """Parse file""" @@ -916,7 +1021,7 @@ class RougailConvert(ParserVariable): ) self.parse_family( filename, - namespace, + self.namespace, path, {}, version, @@ -961,13 +1066,17 @@ class RougailConvert(ParserVariable): filename: str, ) -> None: """version is mandatory in YAML file""" - if "version" not in obj: - raise Exception(f'"version" attribut is mandatory in yaml file {filename}') - version = str(obj.pop("version")) + for name in ["_version", "version"]: + if name not in obj: + continue + version = str(obj.pop(name)) + break + else: + msg = '"version" attribut is mandatory in YAML file' + raise DictConsistencyError(msg, 27, [filename]) if version not in self.supported_version: - raise Exception( - f"pffff version ... {version} not in {self.supported_version}" - ) + msg = f'version "{version}" is not supported, list of supported versions: {display_list(self.supported_version, separator="or", add_quote=True)}' + raise DictConsistencyError(msg, 28, [filename]) return version def annotate( diff --git a/src/rougail/error.py b/src/rougail/error.py index 1449e23f3..aa2b27c0a 100644 --- a/src/rougail/error.py +++ b/src/rougail/error.py @@ -79,9 +79,3 @@ class UpgradeError(Exception): class NotFoundError(Exception): "not found error" pass - -class VariableNotFoundError(NotFoundError): - "Variable was not found" - def __init__(self, errmsg, varname): - self.varname = varname - diff --git a/src/rougail/object_model.py b/src/rougail/object_model.py index 4ad30b314..c5d6e5f37 100644 --- a/src/rougail/object_model.py +++ b/src/rougail/object_model.py @@ -30,9 +30,10 @@ from pydantic import ( ConfigDict, ) from .utils import get_jinja_variable_to_param, get_realpath -from .error import VariableNotFoundError +from .error import DictConsistencyError BASETYPE = Union[StrictBool, StrictInt, StrictFloat, StrictStr, None] +PROPERTY_ATTRIBUTE = ["frozen", "hidden", "disabled", "mandatory"] def convert_boolean(value: str) -> bool: @@ -44,7 +45,9 @@ def convert_boolean(value: str) -> bool: return True elif value == "false": return False - raise Exception(f"unknown boolean value {value}") + elif value in ['', None]: + return None + raise Exception(f'unknown boolean value "{value}"') CONVERT_OPTION = { @@ -89,9 +92,18 @@ CONVERT_OPTION = { class Param(BaseModel): key: str - model_config = ConfigDict(extra="forbid") + def __init__(self, + path, + attribute, + family_is_dynamic, + is_follower, + xmlfiles, + **kwargs, + ) -> None: + super().__init__(**kwargs) + class AnyParam(Param): type: str @@ -107,6 +119,15 @@ class VariableParam(Param): class SuffixParam(Param): type: str + suffix: Optional[int] = None + + def __init__(self, + **kwargs, + ) -> None: + if not kwargs['family_is_dynamic']: + msg = f'suffix parameter for "{kwargs["attribute"]}" in "{kwargs["path"]}" cannot be set none dynamic family' + raise DictConsistencyError(msg, 10, kwargs['xmlfiles']) + super().__init__(**kwargs) class InformationParam(Param): @@ -118,6 +139,16 @@ class InformationParam(Param): class IndexParam(Param): type: str + def __init__(self, + **kwargs, + ) -> None: + + if not kwargs["is_follower"]: + msg = f'the variable "{kwargs["path"]}" is not a follower, so cannot have index type for param in "{kwargs["attribute"]}"' + raise DictConsistencyError(msg, 25, kwargs['xmlfiles']) + super().__init__(**kwargs) + + PARAM_TYPES = { "any": AnyParam, @@ -132,6 +163,9 @@ class Calculation(BaseModel): path_prefix: Optional[str] path: str inside_list: bool + version: str + namespace: str + xmlfiles: List[str] model_config = ConfigDict(extra="forbid") @@ -148,8 +182,8 @@ class Calculation(BaseModel): for param_obj in self.params: param = param_obj.model_dump() if param.get("type") == "variable": - variable, suffix, dynamic = objectspace.paths.get_with_dynamic( - param["variable"], self.path_prefix, self.path + variable, suffix = objectspace.paths.get_with_dynamic( + param["variable"], self.path_prefix, self.path, self.version, self.namespace, self.xmlfiles ) if not variable: if not param.get("optional"): @@ -160,18 +194,18 @@ class Calculation(BaseModel): param["variable"] = variable if suffix: param["suffix"] = suffix - param["dynamic"] = dynamic if param.get("type") == "information": if param["variable"]: - variable, suffix, dynamic = objectspace.paths.get_with_dynamic( - param["variable"], self.path_prefix, self.path + variable, suffix = objectspace.paths.get_with_dynamic( + param["variable"], self.path_prefix, self.path, self.version, self.namespace, self.xmlfiles ) - # variable_path = self.get_realpath(param["variable"]) if not variable: - raise Exception("pffff") + msg = f'cannot find variable "{param["variable"]}" defined in "{self.attribute_name}" for "{self.path}"' + raise DictConsistencyError(msg, 14, self.xmlfiles) param["variable"] = variable if suffix: - raise Exception("pff not dynamic with information") + msg = f'variable "{param["variable"]}" defined in "{self.attribute_name}" for "{self.path}" is a dynamic variable' + raise DictConsistencyError(msg, 15, self.xmlfiles) else: del param["variable"] params[param.pop("key")] = param @@ -217,13 +251,15 @@ class JinjaCalculation(Calculation): default["params"] |= self.get_params(objectspace) if params: default["params"] |= params - for sub_variable, suffix, true_path, dynamic in get_jinja_variable_to_param( + for sub_variable, suffix, true_path in get_jinja_variable_to_param( self.path, self.jinja, objectspace, variable.xmlfiles, objectspace.functions, self.path_prefix, + self.version, + self.namespace, ): if sub_variable.path in objectspace.variables: default["params"][true_path] = { @@ -232,7 +268,6 @@ class JinjaCalculation(Calculation): } if suffix: default["params"][true_path]["suffix"] = suffix - default["params"][true_path]["dynamic"] = dynamic return default def to_function( @@ -265,7 +300,7 @@ class JinjaCalculation(Calculation): False, objectspace, ) - elif self.attribute_name in ["frozen", "hidden", "disabled", "mandatory"]: + elif self.attribute_name in PROPERTY_ATTRIBUTE: if self.return_type: raise Exception("return_type not allowed!") return self._jinja_to_function( @@ -302,16 +337,18 @@ class VariableCalculation(Calculation): ] variable: StrictStr propertyerror: bool = True + allow_none: bool = False def to_function( self, objectspace, ) -> dict: - variable, suffix, dynamic = objectspace.paths.get_with_dynamic( - self.variable, self.path_prefix, self.path + variable, suffix = objectspace.paths.get_with_dynamic( + self.variable, self.path_prefix, self.path, self.version, self.namespace, self.xmlfiles ) if not variable: - raise VariableNotFoundError(f"Variable not found {variable_path}", variable_path) + msg = f'Variable not found "{self.variable}" for attribut "{self.attribute_name}" for variable "{self.path}"' + raise DictConsistencyError(msg, 88, self.xmlfiles) if not isinstance(variable, objectspace.variable): # FIXME remove the pfff raise Exception("pfff it's a family") @@ -322,21 +359,39 @@ class VariableCalculation(Calculation): } if suffix: param["suffix"] = suffix - param["dynamic"] = dynamic params = {None: [param]} function = "calc_value" help_function = None - if self.attribute_name in ["frozen", "hidden", "disabled", "mandatory"]: + if self.attribute_name in PROPERTY_ATTRIBUTE: function = "variable_to_property" help_function = "variable_to_property" if variable.type != "boolean": raise Exception("only boolean!") params[None].insert(0, self.attribute_name) - if not self.inside_list and self.path in objectspace.multis: - variable_path = self.get_realpath(self.variable) + if self.allow_none: params["allow_none"] = True - if self.inside_list and variable.path in objectspace.multis: - raise Exception("pfff") + # current variable is a multi + if self.attribute_name in PROPERTY_ATTRIBUTE: + needs_multi = False + elif self.attribute_name != "default": + needs_multi = True + else: + needs_multi = self.path in objectspace.multis + calc_variable_is_multi = variable.path in objectspace.multis or (variable.path in objectspace.paths._dynamics and (suffix is None or suffix[-1] is None) and objectspace.paths._dynamics[variable.path] != objectspace.paths._dynamics.get(self.path)) + if needs_multi: + if calc_variable_is_multi: + if self.inside_list: + msg = f'the variable "{self.path}" has an invalid attribute "{self.attribute_name}", the variable "{variable.path}" is multi but is inside a list' + raise DictConsistencyError(msg, 18, self.xmlfiles) + elif not self.inside_list: + msg = f'the variable "{self.path}" has an invalid attribute "{self.attribute_name}", the variable "{variable.path}" is not multi but is not inside a list' + raise DictConsistencyError(msg, 20, self.xmlfiles) + elif self.inside_list: + msg = f'the variable "{self.path}" has an invalid attribute "{self.attribute_name}", it\'s a list' + raise DictConsistencyError(msg, 23, self.xmlfiles) + elif calc_variable_is_multi: + msg = f'the variable "{self.path}" has an invalid attribute "{self.attribute_name}", the variable "{variable.path}" is a multi' + raise DictConsistencyError(msg, 21, self.xmlfiles) ret = { "function": function, "params": params, @@ -347,7 +402,7 @@ class VariableCalculation(Calculation): class InformationCalculation(Calculation): - attribute_name: Literal["default"] + attribute_name: Literal["default", "choice", "dynamic"] information: StrictStr variable: Optional[StrictStr] @@ -360,9 +415,10 @@ class InformationCalculation(Calculation): "information": self.information, } if self.variable: - variable_path = self.get_realpath(self.variable) - variable = objectspace.paths[variable_path] - if variable is None: + variable, suffix = objectspace.paths.get_with_dynamic( + self.variable, self.path_prefix, self.path, self.version, self.namespace, self.xmlfiles + ) + if variable is None or suffix is not None: raise Exception("pfff") param["variable"] = variable return { @@ -372,25 +428,32 @@ class InformationCalculation(Calculation): class SuffixCalculation(Calculation): - attribute_name: Literal["default"] + attribute_name: Literal["default", "choice", "dynamic"] + suffix: Optional[int] = None def to_function( self, objectspace, ) -> dict: + suffix = {"type": "suffix"} + if self.suffix is not None: + suffix['suffix'] = self.suffix return { "function": "calc_value", - "params": {None: [{"type": "suffix"}]}, + "params": {None: [suffix]}, } class IndexCalculation(Calculation): - attribute_name: Literal["default"] + attribute_name: Literal["default", "choice", "dynamic"] def to_function( self, objectspace, ) -> dict: + if self.path not in objectspace.followers: + msg = f'the variable "{self.path}" is not a follower, so cannot have index type for "{self.attribute_name}"' + raise DictConsistencyError(msg, 60, self.xmlfiles) return { "function": "calc_value", "params": {None: [{"type": "index"}]}, @@ -404,32 +467,37 @@ CALCULATION_TYPES = { "suffix": SuffixCalculation, "index": IndexCalculation, } -BASETYPE_CALC = Union[StrictBool, StrictInt, StrictFloat, StrictStr, None, Calculation] +BASETYPE_CALC = Union[StrictBool, StrictInt, StrictFloat, StrictStr, Calculation, None] class Family(BaseModel): name: str description: Optional[str] = None type: Literal["family", "leadership", "dynamic"] = "family" + path: str help: Optional[str] = None mode: Optional[str] = None hidden: Union[bool, Calculation] = False disabled: Union[bool, Calculation] = False + namespace: Optional[str] xmlfiles: List[str] = [] - path: str model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True) class Dynamic(Family): variable: str=None - dynamic: Optional[BASETYPE_CALC] + # None only for format 1.0 + dynamic: Union[List[Union[StrictStr, Calculation]], Calculation] class Variable(BaseModel): + # type will be set dynamically in `annotator/value.py`, default is None + type: str = None name: str description: Optional[str] = None default: Union[List[BASETYPE_CALC], BASETYPE_CALC] = None + choices: Optional[Union[List[BASETYPE_CALC], Calculation]] = None params: Optional[List[Param]] = None validators: Optional[List[Calculation]] = None multi: Optional[bool] = None @@ -441,12 +509,10 @@ class Variable(BaseModel): auto_save: bool = False mode: Optional[str] = None test: Optional[list] = None - xmlfiles: List[str] = [] path: str + namespace: str version: str - # type will be set dynamically in `annotator/value.py`, default is None - type: str = None - choices: Union[None, List[BASETYPE_CALC], Calculation] = None + xmlfiles: List[str] = [] model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True) diff --git a/src/rougail/reflector.py b/src/rougail/reflector.py deleted file mode 100644 index 3eac33e1a..000000000 --- a/src/rougail/reflector.py +++ /dev/null @@ -1,220 +0,0 @@ -"""load XML and YAML file from directory - -Created by: -EOLE (http://eole.orion.education.fr) -Copyright (C) 2005-2018 - -Forked by: -Cadoles (http://www.cadoles.com) -Copyright (C) 2019-2021 - -Silique (https://www.silique.fr) -Copyright (C) 2022-2024 - -distribued with GPL-2 or later license - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -""" -from typing import List -from os.path import join, isfile -from os import listdir - -from lxml.etree import DTD, parse, XMLSyntaxError # pylint: disable=E0611 -from pykwalify.compat import yml -from pykwalify.core import Core -from pykwalify.errors import SchemaError - - -from .i18n import _ -from .error import DictConsistencyError - - -FORCE_SUBYAML = ["override"] -SCHEMA_DATA = {} - - -class Reflector: - """Helper class for loading the Creole XML file, - parsing it, validating against the Creole DTD - """ - - def __init__( - self, - rougailconfig: "RougailConfig", - ) -> None: - """Loads the Creole DTD - - :raises IOError: if the DTD is not found - - :param dtdfilename: the full filename of the Creole DTD - """ - dtdfilename = rougailconfig["dtdfilename"] - yamlschema_filename = rougailconfig["yamlschema_filename"] - if not isfile(dtdfilename): - raise IOError(_(f"no such DTD file: {dtdfilename}")) - with open(dtdfilename, "r") as dtdfd: - self.dtd = DTD(dtdfd) - if not isfile(yamlschema_filename): - raise IOError(_(f"no such YAML Schema file: {yamlschema_filename}")) - self.yamlschema_filename = yamlschema_filename - self.schema_data = None - - def load_dictionaries_from_folders( - self, - folders: List[str], - just_doc: bool, - ): - """Loads all the dictionary files located in the folders' list - - :param folders: list of full folder's name - """ - filenames = {} - for folder in folders: - for filename in listdir(folder): - if filename.endswith(".xml"): - ext = "xml" - full_filename = join(folder, filename) - elif filename.endswith(".yml"): - ext = "yml" - full_filename = join(folder, filename) - else: - continue - if filename in filenames: - raise DictConsistencyError( - _(f"duplicate dictionary file name {filename}"), - 78, - [filenames[filename][1], full_filename], - ) - filenames[filename] = (ext, full_filename) - if not filenames and not just_doc: - raise DictConsistencyError(_("there is no dictionary file"), 77, folders) - file_names = list(filenames.keys()) - file_names.sort() - for filename in file_names: - ext, filename = filenames[filename] - if ext == "xml": - yield self.load_xml_file(filename) - else: - yield self.load_yml_file(filename) - - def load_xml_file( - self, - filename: str, - ): - try: - document = parse(filename) - except XMLSyntaxError as err: - raise DictConsistencyError( - _(f"not a XML file: {err}"), 52, [filename] - ) from err - if not self.dtd.validate(document): - dtd_error = self.dtd.error_log.filter_from_errors()[0] - msg = _(f"not a valid XML file: {dtd_error}") - raise DictConsistencyError(msg, 43, [filename]) - return filename, document.getroot() - - def load_yml_file( - self, - filename: str, - ): - global SCHEMA_DATA - if self.yamlschema_filename not in SCHEMA_DATA: - with open(self.yamlschema_filename, "r") as fh: - SCHEMA_DATA[self.yamlschema_filename] = yml.load(fh) - try: - document = Core( - source_file=filename, - schema_data=SCHEMA_DATA[self.yamlschema_filename], - ) - except XMLSyntaxError as err: - raise DictConsistencyError( - _(f"not a XML file: {err}"), 52, [filename] - ) from err - try: - return filename, YParser(document.validate(raise_exception=True)) - except SchemaError as yaml_error: - msg = _(f"not a valid YAML file: {yaml_error}") - raise DictConsistencyError(msg, 43, [filename]) - - -class SubYAML: - def __init__(self, key, value): - if value is None: - value = {} - self.tag = key - self.dico = value - if "text" in value: - self.text = value["text"] - else: - self.text = None - if isinstance(value, list): - self.attrib = {} - else: - self.attrib = { - k: v - for k, v in value.items() - if not isinstance(v, list) and k not in FORCE_SUBYAML - } - - def __str__(self): - return f"" - - def __iter__(self): - if isinstance(self.dico, list): - lists = [] - for dico in self.dico: - for key, value in dico.items(): - if not isinstance(value, list): - value = [value] - lists.append((key, value)) - else: - lists = [] - for key, values in self.dico.items(): - if key == "variables": - for v in values: - if "variable" in v: - lists.append(("variable", v["variable"])) - if "family" in v: - lists.append(("family", v["family"])) - else: - lists.append((key, values)) - for key, values in lists: - if key not in FORCE_SUBYAML and not isinstance(values, list): - continue - if values is None: - values = [None] - for value in values: - yield SubYAML(key, value) - - def __len__(self): - length = 0 - for _ in self.__iter__(): - length += 1 - return length - - -class YParser: - def __init__(self, dico): - self.dico = dico - - def __iter__(self): - for key, values in self.dico.items(): - if not isinstance(values, list): - continue - if key == "variables": - yield SubYAML(key, values) - else: - for val in values: - yield SubYAML(key, val) diff --git a/src/rougail/tiramisu.py b/src/rougail/tiramisu.py index 40ba987b2..19a48874b 100644 --- a/src/rougail/tiramisu.py +++ b/src/rougail/tiramisu.py @@ -28,12 +28,89 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ try: - from tiramisu4 import DynOptionDescription + from tiramisu5 import DynOptionDescription, calc_value except ModuleNotFoundError: - from tiramisu import DynOptionDescription + from tiramisu import DynOptionDescription, calc_value +from importlib.machinery import SourceFileLoader as _SourceFileLoader +from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec +from jinja2 import StrictUndefined, DictLoader +from jinja2.sandbox import SandboxedEnvironment +from rougail import CONVERT_OPTION +from tiramisu.error import ValueWarning from .utils import normalize_family +global func +func = {'calc_value': calc_value} +dict_env = {} +ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) +ENV.filters = func +ENV.compile_templates('jinja_caches', zip=None) + + +def load_functions(path): + global _SourceFileLoader, _spec_from_loader, _module_from_spec, func + loader = _SourceFileLoader('func', path) + spec = _spec_from_loader(loader.name, loader) + func_ = _module_from_spec(spec) + loader.exec_module(func_) + for function in dir(func_): + if function.startswith('_'): + continue + func[function] = getattr(func_, function) + + +def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): + global ENV, CONVERT_OPTION + kw = {} + for key, value in kwargs.items(): + if '.' in key: + c_kw = kw + path, var = key.rsplit('.', 1) + for subkey in path.split('.'): + c_kw = c_kw.setdefault(subkey, {}) + c_kw[var] = value + else: + kw[key] = value + values = ENV.get_template(__internal_jinja).render(kw, **func).strip() + convert = CONVERT_OPTION[__internal_type].get('func', str) + if __internal_multi: + return [convert(val) for val in values.split()] + values = convert(values) + return values if values != '' and values != 'None' else None + + +def variable_to_property(prop, value): + return prop if value else None + + +def jinja_to_property(prop, **kwargs): + value = func['jinja_to_function'](**kwargs) + return func['variable_to_property'](prop, value is not None) + + +def jinja_to_property_help(prop, **kwargs): + value = func['jinja_to_function'](**kwargs) + return (prop, f'\"{prop}\" ({value})') + + +def valid_with_jinja(warnings_only=False, **kwargs): + global ValueWarning + value = func['jinja_to_function'](**kwargs) + if value: + if warnings_only: + raise ValueWarning(value) + else: + raise ValueError(value) + + +func['jinja_to_function'] = jinja_to_function +func['jinja_to_property'] = jinja_to_property +func['jinja_to_property_help'] = jinja_to_property_help +func['variable_to_property'] = variable_to_property +func['valid_with_jinja'] = valid_with_jinja + + class ConvertDynOptionDescription(DynOptionDescription): """Suffix could be an integer, we should convert it in str Suffix could also contain invalid character, so we should "normalize" it diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py index 0cfb38807..27d858e62 100644 --- a/src/rougail/tiramisureflector.py +++ b/src/rougail/tiramisureflector.py @@ -28,12 +28,12 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -from typing import Optional +from typing import Optional, Union from json import dumps from os.path import isfile, basename from .i18n import _ -from .error import DictConsistencyError, VariableNotFoundError +from .error import DictConsistencyError from .utils import normalize_family from .object_model import Calculation, CONVERT_OPTION @@ -59,8 +59,8 @@ class TiramisuReflector: objectspace, funcs_paths, ): + self.informations_idx = -1 self.rougailconfig = objectspace.rougailconfig - self.jinja_added = False self.reflector_objects = {} self.text = { "header": [], @@ -76,103 +76,28 @@ class TiramisuReflector: "from tiramisu.setting import ALLOWED_LEADER_PROPERTIES", ] ) - for mode in self.rougailconfig["modes_level"]: - self.text["header"].append(f'ALLOWED_LEADER_PROPERTIES.add("{mode}")') if funcs_paths: if self.rougailconfig["export_with_import"]: self.text["header"].extend( - [ - "from importlib.machinery import SourceFileLoader as _SourceFileLoader", - "from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec", - "global func", - "func = {'calc_value': calc_value}", - "", - "def _load_functions(path):", - " global _SourceFileLoader, _spec_from_loader, _module_from_spec, func", - " loader = _SourceFileLoader('func', path)", - " spec = _spec_from_loader(loader.name, loader)", - " func_ = _module_from_spec(spec)", - " loader.exec_module(func_)", - " for function in dir(func_):", - " if function.startswith('_'):", - " continue", - " func[function] = getattr(func_, function)", - ] + ["from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription"] ) for funcs_path in sorted(funcs_paths, key=sorted_func_name): if not isfile(funcs_path): continue - self.text["header"].append(f"_load_functions('{funcs_path}')") + self.text["header"].append(f"load_functions('{funcs_path}')") + if self.rougailconfig["export_with_import"]: + for mode in self.rougailconfig["modes_level"]: + self.text["header"].append(f'ALLOWED_LEADER_PROPERTIES.add("{mode}")') self.objectspace = objectspace self.make_tiramisu_objects() - if self.rougailconfig["export_with_import"] and ( - self.rougailconfig["force_convert_dyn_option_description"] - or self.objectspace.has_dyn_option is True - ): - self.text["header"].append( - "from rougail.tiramisu import ConvertDynOptionDescription" - ) for key, value in self.objectspace.jinja.items(): self.add_jinja_to_function(key, value) - def add_jinja_support(self): - if not self.jinja_added: - self.text["header"].extend( - [ - "from jinja2 import StrictUndefined, DictLoader", - "from jinja2.sandbox import SandboxedEnvironment", - "from rougail import CONVERT_OPTION", - "from tiramisu.error import ValueWarning", - "def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs):", - " global ENV, CONVERT_OPTION", - " kw = {}", - " for key, value in kwargs.items():", - " if '.' in key:", - " c_kw = kw", - " path, var = key.rsplit('.', 1)", - " for subkey in path.split('.'):", - " c_kw = c_kw.setdefault(subkey, {})", - " c_kw[var] = value", - " else:", - " kw[key] = value", - " values = ENV.get_template(__internal_jinja).render(kw, **func).strip()", - " convert = CONVERT_OPTION[__internal_type].get('func', str)", - " if __internal_multi:", - " return [convert(val) for val in values.split()]", - " values = convert(values)", - " return values if values != '' and values != 'None' else None", - "def variable_to_property(prop, value):", - " return prop if value else None", - "def jinja_to_property(prop, **kwargs):", - " value = func['jinja_to_function'](**kwargs)", - " return func['variable_to_property'](prop, value is not None)", - "def jinja_to_property_help(prop, **kwargs):", - " value = func['jinja_to_function'](**kwargs)", - " return (prop, f'\"{prop}\" ({value})')", - "def valid_with_jinja(warnings_only=False, **kwargs):", - " global ValueWarning", - " value = func['jinja_to_function'](**kwargs)", - " if value:", - " if warnings_only:", - " raise ValueWarning(value)", - " else:", - " raise ValueError(value)", - "func['jinja_to_function'] = jinja_to_function", - "func['jinja_to_property'] = jinja_to_property", - "func['jinja_to_property_help'] = jinja_to_property_help", - "func['variable_to_property'] = variable_to_property", - "func['valid_with_jinja'] = valid_with_jinja", - "dict_env = {}", - ] - ) - self.jinja_added = True - def add_jinja_to_function( self, variable_name: str, jinja: str, ) -> None: - self.add_jinja_support() jinja_text = dumps(jinja, ensure_ascii=False) self.text["header"].append(f"dict_env['{variable_name}'] = {jinja_text}") @@ -242,16 +167,12 @@ class TiramisuReflector: self.objectspace.set_name(elt, "optiondescription_") return self.objectspace.reflector_names[elt.path] + def get_information_name(self): + self.informations_idx += 1 + return f"information_{self.informations_idx}" + def get_text(self): """Get text""" - if self.jinja_added: - self.text["header"].extend( - [ - "ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)", - "ENV.filters = func", - "ENV.compile_templates('jinja_caches', zip=None)", - ] - ) return "\n".join(self.text["header"] + self.text["option"]) @@ -269,19 +190,22 @@ class Common: self.tiramisu = tiramisu tiramisu.reflector_objects[elt.path] = self self.object_type = None + self.informations = [] def get(self, calls, parent_name): """Get tiramisu's object""" - self_calls = calls.copy() - if self.elt.path in self_calls: + if self.elt.path in calls: msg = f'"{self.elt.path}" will make an infinite loop' raise DictConsistencyError(msg, 80, self.elt.xmlfiles) + self_calls = calls.copy() self_calls.append(self.elt.path) self.calls = self_calls if self.option_name is None: self.option_name = self.objectspace.reflector_names[self.elt.path] self.populate_attrib() - self.populate_informations() + if self.informations: + for information in self.informations: + self.tiramisu.text['option'].append(f'{information}.set_option({self.option_name})') return self.option_name def populate_attrib(self): @@ -294,6 +218,7 @@ class Common: keys["properties"] = self.properties_to_string( self.objectspace.properties[self.elt.path] ) + self.populate_informations(keys) attrib = ", ".join([f"{key}={value}" for key, value in keys.items()]) self.tiramisu.text["option"].append( f"{self.option_name} = {self.object_type}({attrib})" @@ -322,12 +247,11 @@ class Common: for property_, value in values.items(): if value is True: properties.append(self.convert_str(property_)) + elif isinstance(value, list): + for val in value: + calc_properties.append(self.calculation_value(val)) else: - if isinstance(value, list): - for val in value: - calc_properties.append(self.calculation_value(val)) - else: - calc_properties.append(self.calculation_value(value)) + calc_properties.append(self.calculation_value(value)) return "frozenset({" + ", ".join(sorted(properties) + calc_properties) + "})" def calc_properties( @@ -350,17 +274,12 @@ class Common: f"kwargs={{{kwargs}}}), func['calc_value_property_help'])" ) - def populate_informations(self): + def populate_informations(self, keys): """Populate Tiramisu's informations""" informations = self.objectspace.informations.get(self.elt.path) if not informations: return - for key, value in informations.items(): - if isinstance(value, str): - value = self.convert_str(value) - self.tiramisu.text["option"].append( - f"{self.option_name}.impl_set_information('{key}', {value})" - ) + keys['informations'] = informations def populate_param( self, @@ -381,9 +300,21 @@ class Common: if "variable" in param: if param["variable"].path == self.elt.path: return f'ParamSelfInformation("{param["information"]}", {default})' - return f'ParamInformation("{param["information"]}", {default}, option={self.tiramisu.reflector_objects[param["variable"].path].get(self.calls, self.elt.path)})' + information_variable_path = param["variable"].path + information_variable = self.tiramisu.reflector_objects[information_variable_path] + if information_variable_path not in self.calls: + option_name = information_variable.get(self.calls, self.elt.path) + return f'ParamInformation("{param["information"]}", {default}, option={option_name})' + else: + information = f'ParamInformation("{param["information"]}", {default})' + information_name = self.tiramisu.get_information_name() + self.tiramisu.text["option"].append(f'{information_name} = {information}') + information_variable.informations.append(information_name) + return information_name return f'ParamInformation("{param["information"]}", {default})' if param["type"] == "suffix": + if "suffix" in param and param["suffix"] != None: + return f"ParamSuffix(suffix_index={param['suffix']})" return "ParamSuffix()" if param["type"] == "index": return "ParamIndex()" @@ -418,10 +349,7 @@ class Common: params = [f"{option_name}"] if suffix is not None: param_type = "ParamDynOption" - family = self.tiramisu.reflector_objects[dynamic.path].get( - self.calls, self.elt.path - ) - params.extend([f"'{suffix}'", f"{family}"]) + params.append(str(suffix)) else: param_type = "ParamOption" if not propertyerror: @@ -433,7 +361,6 @@ class Common: function, ) -> str: """Generate calculated value""" - self.tiramisu.add_jinja_support() child = function.to_function(self.objectspace) new_args = [] kwargs = [] @@ -460,6 +387,37 @@ class Common: ret = ret + ")" return ret + def populate_calculation(self, + datas: Union[Calculation, str, list], + return_a_tuple: bool=False, + ) -> str: + if isinstance(datas, str): + return self.convert_str(datas) + if isinstance(datas, Calculation): + return self.calculation_value(datas) + if not isinstance(datas, list): + return datas + params = [] + for idx, data in enumerate(datas): + if isinstance(data, Calculation): + params.append(self.calculation_value(data)) + elif isinstance(data, str): + params.append(self.convert_str(data)) + else: + params.append(str(data)) + if return_a_tuple: + ret = '(' + else: + ret = '[' + ret += ", ".join(params) + if return_a_tuple: + if len(params) <= 1: + ret += "," + ret += ")" + else: + ret += "]" + return ret + class Variable(Common): """Manage variable""" @@ -484,59 +442,20 @@ class Variable(Common): self.calls, self.elt.path ) if self.elt.type == "choice": - choices = self.elt.choices - if isinstance(choices, Calculation): - keys["values"] = self.calculation_value(choices) - else: - new_values = [] - for value in choices: - if isinstance(value, Calculation): - new_values.append(self.calculation_value(value)) - elif isinstance(value, str): - new_values.append(self.convert_str(value)) - else: - new_values.append(str(value)) - keys["values"] = "(" + ", ".join(new_values) - if len(new_values) <= 1: - keys["values"] += "," - keys["values"] += ")" + keys["values"] = self.populate_calculation(self.elt.choices, return_a_tuple=True) if self.elt.path in self.objectspace.multis: keys["multi"] = self.objectspace.multis[self.elt.path] + if not hasattr(self.elt, "default"): + print('FIXME CA EXISTE!!!') if hasattr(self.elt, "default") and self.elt.default is not None: - value = self.elt.default - if isinstance(value, str): - value = self.convert_str(value) - elif isinstance(value, Calculation): - value = self.calculation_value(value) - elif isinstance(value, list): - value = value.copy() - for idx, val in enumerate(value): - if isinstance(val, Calculation): - value[idx] = self.calculation_value(val) - elif isinstance(val, str): - value[idx] = self.convert_str(val) - else: - value[idx] = str(val) - value = "[" + ", ".join(value) + "]" - keys["default"] = value + keys["default"] = self.populate_calculation(self.elt.default) if self.elt.path in self.objectspace.default_multi: - value = self.objectspace.default_multi[self.elt.path] - if isinstance(value, str): - value = self.convert_str(value) - elif isinstance(value, Calculation): - value = self.calculation_value(value) - keys["default_multi"] = value + keys["default_multi"] = self.populate_calculation(self.objectspace.default_multi[self.elt.path]) if self.elt.validators: - validators = [] - for val in self.elt.validators: - if isinstance(val, Calculation): - validators.append(self.calculation_value(val)) - else: - validators.append(val) - keys["validators"] = "[" + ", ".join(validators) + "]" + keys["validators"] = self.populate_calculation(self.elt.validators) for key, value in CONVERT_OPTION.get(self.elt.type, {}).get("initkwargs", {}).items(): if isinstance(value, str): - value = f"'{value}'" + value = self.convert_str(value) keys[key] = value if self.elt.params: for param in self.elt.params: @@ -573,23 +492,19 @@ class Family(Common): keys: list, ) -> None: if self.elt.type == "dynamic": - keys["suffixes"] = self.calculation_value(self.elt.dynamic) + keys["suffixes"] = self.populate_calculation(self.elt.dynamic) children = [] for path in self.objectspace.parents[self.elt.path]: children.append(self.objectspace.paths[path]) - try: - keys["children"] = ( - "[" - + ", ".join( - [ - self.tiramisu.reflector_objects[child.path].get( - self.calls, self.elt.path - ) - for child in children - ] - ) - + "]" + keys["children"] = ( + "[" + + ", ".join( + [ + self.tiramisu.reflector_objects[child.path].get( + self.calls, self.elt.path + ) + for child in children + ] ) - except VariableNotFoundError as exc: - msg = f"The variable '{exc.varname}' is mandatory for the dynamic family" - raise DictConsistencyError(msg, 88, self.elt.xmlfiles) + + "]" + ) diff --git a/src/rougail/utils.py b/src/rougail/utils.py index f4ca70930..90c804d67 100644 --- a/src/rougail/utils.py +++ b/src/rougail/utils.py @@ -93,6 +93,8 @@ def get_jinja_variable_to_param( xmlfiles, functions, path_prefix, + version, + namespace, ): try: env = SandboxedEnvironment(loader=DictLoader({"tmpl": jinja_text})) @@ -113,10 +115,13 @@ def get_jinja_variable_to_param( variables = list(variables) variables.sort() for variable_path in variables: - variable, suffix, dynamic = objectspace.paths.get_with_dynamic( + variable, suffix = objectspace.paths.get_with_dynamic( variable_path, path_prefix, current_path, + version, + namespace, + xmlfiles, ) if variable and variable.path in objectspace.variables: - yield variable, suffix, variable_path, dynamic + yield variable, suffix, variable_path diff --git a/tests/dictionaries/00empty/tiramisu/base.py b/tests/dictionaries/00empty/tiramisu/base.py index 8d71937db..42f38a285 100644 --- a/tests/dictionaries/00empty/tiramisu/base.py +++ b/tests/dictionaries/00empty/tiramisu/base.py @@ -1,22 +1,8 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[]) diff --git a/tests/dictionaries/00empty/tiramisu/multi.py b/tests/dictionaries/00empty/tiramisu/multi.py index 7a3d1e4d0..581c41dfc 100644 --- a/tests/dictionaries/00empty/tiramisu/multi.py +++ b/tests/dictionaries/00empty/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_2]) diff --git a/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml index 321ae7f02..a086902cb 100644 --- a/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/00empty_family/dictionaries/rougail/00-base.yml @@ -1,3 +1,4 @@ +--- version: '1.0' my_family: - + type: family diff --git a/tests/dictionaries/00empty_family/makedict/after.json b/tests/dictionaries/00empty_family/makedict/after.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_family/makedict/after.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/00empty_family/makedict/base.json b/tests/dictionaries/00empty_family/makedict/base.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_family/makedict/base.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/00empty_family/makedict/before.json b/tests/dictionaries/00empty_family/makedict/before.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_family/makedict/before.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/mandatory.json b/tests/dictionaries/00empty_family/makedict/mandatory.json similarity index 100% rename from tests/dictionaries/10leadership_autoleader_expert/makedict/mandatory.json rename to tests/dictionaries/00empty_family/makedict/mandatory.json diff --git a/tests/dictionaries/00empty_family/tiramisu/base.py b/tests/dictionaries/00empty_family/tiramisu/base.py new file mode 100644 index 000000000..3735a8e25 --- /dev/null +++ b/tests/dictionaries/00empty_family/tiramisu/base.py @@ -0,0 +1,9 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"advanced"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00empty_family/tiramisu/multi.py b/tests/dictionaries/00empty_family/tiramisu/multi.py new file mode 100644 index 000000000..472635ec3 --- /dev/null +++ b/tests/dictionaries/00empty_family/tiramisu/multi.py @@ -0,0 +1,10 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"advanced"})) +optiondescription_4 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"advanced"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml b/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml index b8db3c3e3..2ebce70dd 100644 --- a/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/00empty_subfamily/dictionaries/rougail/00-base.yml @@ -1,3 +1,5 @@ +--- version: '1.0' my_family: my_sub_family: + type: family diff --git a/tests/dictionaries/00empty_subfamily/makedict/after.json b/tests/dictionaries/00empty_subfamily/makedict/after.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_subfamily/makedict/after.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/00empty_subfamily/makedict/base.json b/tests/dictionaries/00empty_subfamily/makedict/base.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_subfamily/makedict/base.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/00empty_subfamily/makedict/before.json b/tests/dictionaries/00empty_subfamily/makedict/before.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/00empty_subfamily/makedict/before.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/60extra_externalspacecondition/makedict/mandatory.json b/tests/dictionaries/00empty_subfamily/makedict/mandatory.json similarity index 100% rename from tests/dictionaries/60extra_externalspacecondition/makedict/mandatory.json rename to tests/dictionaries/00empty_subfamily/makedict/mandatory.json diff --git a/tests/dictionaries/00empty_subfamily/tiramisu/base.py b/tests/dictionaries/00empty_subfamily/tiramisu/base.py new file mode 100644 index 000000000..3735a8e25 --- /dev/null +++ b/tests/dictionaries/00empty_subfamily/tiramisu/base.py @@ -0,0 +1,9 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"advanced"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00empty_subfamily/tiramisu/multi.py b/tests/dictionaries/00empty_subfamily/tiramisu/multi.py new file mode 100644 index 000000000..73b501019 --- /dev/null +++ b/tests/dictionaries/00empty_subfamily/tiramisu/multi.py @@ -0,0 +1,10 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"advanced"})) +optiondescription_5 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"advanced"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/00empty_variable/tiramisu/base.py b/tests/dictionaries/00empty_variable/tiramisu/base.py index 9dece9e46..97a156bfd 100644 --- a/tests/dictionaries/00empty_variable/tiramisu/base.py +++ b/tests/dictionaries/00empty_variable/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = StrOption(name="empty", doc="empty", properties=frozenset({"basic", "mandatory"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/00empty_variable/tiramisu/multi.py b/tests/dictionaries/00empty_variable/tiramisu/multi.py index e22114ef0..423ea2edb 100644 --- a/tests/dictionaries/00empty_variable/tiramisu/multi.py +++ b/tests/dictionaries/00empty_variable/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="empty", doc="empty", properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/00load_notype/tiramisu/base.py b/tests/dictionaries/00load_notype/tiramisu/base.py index 7a6b11e87..d80a409f6 100644 --- a/tests/dictionaries/00load_notype/tiramisu/base.py +++ b/tests/dictionaries/00load_notype/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/00load_notype/tiramisu/multi.py b/tests/dictionaries/00load_notype/tiramisu/multi.py index 7d1281f21..f49974698 100644 --- a/tests/dictionaries/00load_notype/tiramisu/multi.py +++ b/tests/dictionaries/00load_notype/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="without_type", doc="without_type", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/00load_save/tiramisu/base.py b/tests/dictionaries/00load_save/tiramisu/base.py index ecd95b2b7..c3298848a 100644 --- a/tests/dictionaries/00load_save/tiramisu/base.py +++ b/tests/dictionaries/00load_save/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/00load_save/tiramisu/multi.py b/tests/dictionaries/00load_save/tiramisu/multi.py index 60afd3191..146a4820a 100644 --- a/tests/dictionaries/00load_save/tiramisu/multi.py +++ b/tests/dictionaries/00load_save/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/00load_subfolder/tiramisu/base.py b/tests/dictionaries/00load_subfolder/tiramisu/base.py index 87d907898..ed08e8d31 100644 --- a/tests/dictionaries/00load_subfolder/tiramisu/base.py +++ b/tests/dictionaries/00load_subfolder/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/00load_subfolder/tiramisu/multi.py b/tests/dictionaries/00load_subfolder/tiramisu/multi.py index 53d12ae14..3efe3771e 100644 --- a/tests/dictionaries/00load_subfolder/tiramisu/multi.py +++ b/tests/dictionaries/00load_subfolder/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_bool/tiramisu/base.py b/tests/dictionaries/01base_auto_bool/tiramisu/base.py index bebe3acdd..41fa2ec4a 100644 --- a/tests/dictionaries/01base_auto_bool/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_bool/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="auto", doc="auto", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_bool/tiramisu/multi.py b/tests/dictionaries/01base_auto_bool/tiramisu/multi.py index 007cafed4..0aebdc44d 100644 --- a/tests/dictionaries/01base_auto_bool/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_bool/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="auto", doc="auto", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_bool_multi/tiramisu/base.py b/tests/dictionaries/01base_auto_bool_multi/tiramisu/base.py index a088674ba..9cd648f9b 100644 --- a/tests/dictionaries/01base_auto_bool_multi/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_bool_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="auto", doc="auto", multi=True, default=[True], default_multi=True, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_bool_multi/tiramisu/multi.py b/tests/dictionaries/01base_auto_bool_multi/tiramisu/multi.py index 4446e7ff1..fd4730c57 100644 --- a/tests/dictionaries/01base_auto_bool_multi/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_bool_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="auto", doc="auto", multi=True, default=[True], default_multi=True, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_float/tiramisu/base.py b/tests/dictionaries/01base_auto_float/tiramisu/base.py index 02e36b339..ed69928a4 100644 --- a/tests/dictionaries/01base_auto_float/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_float/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = FloatOption(name="auto", doc="auto", default=1.0, properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_float/tiramisu/multi.py b/tests/dictionaries/01base_auto_float/tiramisu/multi.py index 3c22b0db7..cf0e00983 100644 --- a/tests/dictionaries/01base_auto_float/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_float/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = FloatOption(name="auto", doc="auto", default=1.0, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_float_multi/tiramisu/base.py b/tests/dictionaries/01base_auto_float_multi/tiramisu/base.py index 546031009..42ce684ea 100644 --- a/tests/dictionaries/01base_auto_float_multi/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_float_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = FloatOption(name="auto", doc="auto", multi=True, default=[1.0], default_multi=1.0, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_float_multi/tiramisu/multi.py b/tests/dictionaries/01base_auto_float_multi/tiramisu/multi.py index 0dd08f839..16ada2d49 100644 --- a/tests/dictionaries/01base_auto_float_multi/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_float_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = FloatOption(name="auto", doc="auto", multi=True, default=[1.0], default_multi=1.0, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_number/tiramisu/base.py b/tests/dictionaries/01base_auto_number/tiramisu/base.py index 45053cbca..ec5ba74be 100644 --- a/tests/dictionaries/01base_auto_number/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_number/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = IntOption(name="auto", doc="auto", default=1, properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_number/tiramisu/multi.py b/tests/dictionaries/01base_auto_number/tiramisu/multi.py index f8bb6c021..ff6610146 100644 --- a/tests/dictionaries/01base_auto_number/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_number/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = IntOption(name="auto", doc="auto", default=1, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_auto_number_multi/tiramisu/base.py b/tests/dictionaries/01base_auto_number_multi/tiramisu/base.py index 607722f39..999c8e4fa 100644 --- a/tests/dictionaries/01base_auto_number_multi/tiramisu/base.py +++ b/tests/dictionaries/01base_auto_number_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = IntOption(name="auto", doc="auto", multi=True, default=[1], default_multi=1, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_auto_number_multi/tiramisu/multi.py b/tests/dictionaries/01base_auto_number_multi/tiramisu/multi.py index 2ef6e5067..f9a365b20 100644 --- a/tests/dictionaries/01base_auto_number_multi/tiramisu/multi.py +++ b/tests/dictionaries/01base_auto_number_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = IntOption(name="auto", doc="auto", multi=True, default=[1], default_multi=1, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_custom/tiramisu/base.py b/tests/dictionaries/01base_custom/tiramisu/base.py index 649bbc110..4bf7b6eda 100644 --- a/tests/dictionaries/01base_custom/tiramisu/base.py +++ b/tests/dictionaries/01base_custom/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = CustomOption(name="custom", doc="custom", properties=frozenset({"basic", "mandatory"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_custom/tiramisu/multi.py b/tests/dictionaries/01base_custom/tiramisu/multi.py index b27fbbb68..1ea52919f 100644 --- a/tests/dictionaries/01base_custom/tiramisu/multi.py +++ b/tests/dictionaries/01base_custom/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = CustomOption(name="custom", doc="custom", properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/01base_domainname/tiramisu/base.py b/tests/dictionaries/01base_domainname/tiramisu/base.py index 7840ffe4e..0108707ae 100644 --- a/tests/dictionaries/01base_domainname/tiramisu/base.py +++ b/tests/dictionaries/01base_domainname/tiramisu/base.py @@ -1,25 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "standard"})) +option_3 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type="domainname", allow_ip=False, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_domainname/tiramisu/multi.py b/tests/dictionaries/01base_domainname/tiramisu/multi.py index da9900d23..b791cb7b6 100644 --- a/tests/dictionaries/01base_domainname/tiramisu/multi.py +++ b/tests/dictionaries/01base_domainname/tiramisu/multi.py @@ -1,29 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "standard"})) +option_4 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type="domainname", allow_ip=False, properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "standard"})) +option_8 = DomainnameOption(name="domain", doc="Description", default="my.domain.name", type="domainname", allow_ip=False, properties=frozenset({"mandatory", "standard"})) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_domainname_params/tiramisu/base.py b/tests/dictionaries/01base_domainname_params/tiramisu/base.py index 3536cd537..adef6debb 100644 --- a/tests/dictionaries/01base_domainname_params/tiramisu/base.py +++ b/tests/dictionaries/01base_domainname_params/tiramisu/base.py @@ -1,25 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type='domainname', allow_ip=True, properties=frozenset({"mandatory", "standard"})) +option_3 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_domainname_params/tiramisu/multi.py b/tests/dictionaries/01base_domainname_params/tiramisu/multi.py index bcd2f94a7..425d58732 100644 --- a/tests/dictionaries/01base_domainname_params/tiramisu/multi.py +++ b/tests/dictionaries/01base_domainname_params/tiramisu/multi.py @@ -1,29 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type='domainname', allow_ip=True, properties=frozenset({"mandatory", "standard"})) +option_4 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type='domainname', allow_ip=True, properties=frozenset({"mandatory", "standard"})) +option_8 = DomainnameOption(name="domain", doc="Description", default="192.168.1.1", type="domainname", allow_ip=True, properties=frozenset({"mandatory", "standard"})) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_float/tiramisu/base.py b/tests/dictionaries/01base_float/tiramisu/base.py index ab8e64cc8..4f54c1ed8 100644 --- a/tests/dictionaries/01base_float/tiramisu/base.py +++ b/tests/dictionaries/01base_float/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "standard"})) option_4 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_float/tiramisu/multi.py b/tests/dictionaries/01base_float/tiramisu/multi.py index 6957606a6..c75967c69 100644 --- a/tests/dictionaries/01base_float/tiramisu/multi.py +++ b/tests/dictionaries/01base_float/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = FloatOption(name="float", doc="Description", default=0.527, properties=frozenset({"mandatory", "standard"})) option_5 = FloatOption(name="float_multi", doc="Description", multi=True, default=[0.527], default_multi=0.527, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_help_quote/tiramisu/base.py b/tests/dictionaries/01base_help_quote/tiramisu/base.py index 17619ae29..8a02da33a 100644 --- a/tests/dictionaries/01base_help_quote/tiramisu/base.py +++ b/tests/dictionaries/01base_help_quote/tiramisu/base.py @@ -1,28 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"})) -option_3.impl_set_information('help', "message with '") -option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"})) -option_4.impl_set_information('help', "message with \"") +option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': "message with '"}) +option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': 'message with "'}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01base_help_quote/tiramisu/multi.py b/tests/dictionaries/01base_help_quote/tiramisu/multi.py index c965c8fe3..28fce136f 100644 --- a/tests/dictionaries/01base_help_quote/tiramisu/multi.py +++ b/tests/dictionaries/01base_help_quote/tiramisu/multi.py @@ -1,35 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"})) -option_4.impl_set_information('help', "message with '") -option_5 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"})) -option_5.impl_set_information('help', "message with \"") +option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': "message with '"}) +option_5 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': 'message with "'}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_9 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"})) -option_9.impl_set_information('help', "message with '") -option_10 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"})) -option_10.impl_set_information('help', "message with \"") +option_9 = StrOption(name="mode_conteneur_actif", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': "message with '"}) +option_10 = StrOption(name="mode_conteneur_actif1", doc="Redefine description", properties=frozenset({"standard"}), informations={'help': 'message with "'}) optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi/tiramisu/base.py b/tests/dictionaries/01base_multi/tiramisu/base.py index e9a836be1..4d358650d 100644 --- a/tests/dictionaries/01base_multi/tiramisu/base.py +++ b/tests/dictionaries/01base_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi/tiramisu/multi.py b/tests/dictionaries/01base_multi/tiramisu/multi.py index 8b9814205..082cdc41d 100644 --- a/tests/dictionaries/01base_multi/tiramisu/multi.py +++ b/tests/dictionaries/01base_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_auto/tiramisu/base.py b/tests/dictionaries/01base_multi_auto/tiramisu/base.py index 62e9b675b..9f1dd2f0f 100644 --- a/tests/dictionaries/01base_multi_auto/tiramisu/base.py +++ b/tests/dictionaries/01base_multi_auto/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_auto/tiramisu/multi.py b/tests/dictionaries/01base_multi_auto/tiramisu/multi.py index 7b1b88f26..e4b6ca14d 100644 --- a/tests/dictionaries/01base_multi_auto/tiramisu/multi.py +++ b/tests/dictionaries/01base_multi_auto/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py b/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py index 72fa802b6..b4eb09d76 100644 --- a/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py +++ b/tests/dictionaries/01base_multi_notuniq/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "notunique", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py b/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py index a322bed86..c79e89f69 100644 --- a/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py +++ b/tests/dictionaries/01base_multi_notuniq/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "notunique", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_uniq/tiramisu/base.py b/tests/dictionaries/01base_multi_uniq/tiramisu/base.py index ef8550def..4450d696e 100644 --- a/tests/dictionaries/01base_multi_uniq/tiramisu/base.py +++ b/tests/dictionaries/01base_multi_uniq/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard", "unique"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py b/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py index 594dfaf1a..74ac6b0a8 100644 --- a/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py +++ b/tests/dictionaries/01base_multi_uniq/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard", "unique"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote/tiramisu/base.py index 1472d9535..8ecc39f02 100644 --- a/tests/dictionaries/01base_value_doublequote/tiramisu/base.py +++ b/tests/dictionaries/01base_value_doublequote/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py index 272a07386..0b18308d3 100644 --- a/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_doublequote/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py index 93ab06aeb..fa5c237a4 100644 --- a/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py +++ b/tests/dictionaries/01base_value_doublequote2/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py index e4e3dce71..a10e18d54 100644 --- a/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_doublequote2/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py b/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py index 297659064..cea059c4f 100644 --- a/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py +++ b/tests/dictionaries/01base_value_doublequote3/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py b/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py index 25fdf88ee..0a82cbe4c 100644 --- a/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_doublequote3/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote\\\"\\'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py index fbd95e991..51fb1c0f0 100644 --- a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py +++ b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote\""], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py index 6e6ef84a8..9c9dc52e3 100644 --- a/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_multi_doublequote/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote\""], default_multi="quote\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py index e5b23db85..fd37464ce 100644 --- a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py +++ b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'\""], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py index ed94c7910..0569d0b1f 100644 --- a/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_multi_doublequote2/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'\""], default_multi="quote'\"", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py b/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py index a9e739130..025cb21b5 100644 --- a/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py +++ b/tests/dictionaries/01base_value_multi_quote/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py b/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py index 49eedff17..76c11c5d2 100644 --- a/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_multi_quote/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["quote'"], default_multi="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_quote/tiramisu/base.py b/tests/dictionaries/01base_value_quote/tiramisu/base.py index 2d24daeb9..b8dd7632b 100644 --- a/tests/dictionaries/01base_value_quote/tiramisu/base.py +++ b/tests/dictionaries/01base_value_quote/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_value_quote/tiramisu/multi.py b/tests/dictionaries/01base_value_quote/tiramisu/multi.py index 0a4e04cab..4456532c4 100644 --- a/tests/dictionaries/01base_value_quote/tiramisu/multi.py +++ b/tests/dictionaries/01base_value_quote/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", default="quote'", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py b/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py index 1ca28a111..72067c9e6 100644 --- a/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py +++ b/tests/dictionaries/01base_var_name_same_family/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py b/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py index 61856d7f4..7b0b70aeb 100644 --- a/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py +++ b/tests/dictionaries/01base_var_name_same_family/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="general", doc="description", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py b/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py index 59b1eeb3d..8adff146a 100644 --- a/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py +++ b/tests/dictionaries/01boolean_no_mandatory/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py b/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py index f960fdf82..1bb7fbc58 100644 --- a/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/01boolean_no_mandatory/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01family_description/tiramisu/base.py b/tests/dictionaries/01family_description/tiramisu/base.py index 2ae29c8b1..5fcbff94e 100644 --- a/tests/dictionaries/01family_description/tiramisu/base.py +++ b/tests/dictionaries/01family_description/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="Other description", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01family_description/tiramisu/multi.py b/tests/dictionaries/01family_description/tiramisu/multi.py index 06f186914..f94de6b85 100644 --- a/tests/dictionaries/01family_description/tiramisu/multi.py +++ b/tests/dictionaries/01family_description/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="Other description", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test/tiramisu/base.py b/tests/dictionaries/01test/tiramisu/base.py index 0079265ba..21b97463c 100644 --- a/tests/dictionaries/01test/tiramisu/base.py +++ b/tests/dictionaries/01test/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_3.impl_set_information('test', ('test',)) +option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test',)}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test/tiramisu/multi.py b/tests/dictionaries/01test/tiramisu/multi.py index 983d3f666..4a3338529 100644 --- a/tests/dictionaries/01test/tiramisu/multi.py +++ b/tests/dictionaries/01test/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_4.impl_set_information('test', ('test',)) +option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test',)}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('test', ('test',)) +option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test',)}) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_boolean/tiramisu/base.py b/tests/dictionaries/01test_boolean/tiramisu/base.py index 182e7a727..9db52b8ec 100644 --- a/tests/dictionaries/01test_boolean/tiramisu/base.py +++ b/tests/dictionaries/01test_boolean/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"})) -option_3.impl_set_information('test', (False,)) +option_3 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"}), informations={'test': (False,)}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test_boolean/tiramisu/multi.py b/tests/dictionaries/01test_boolean/tiramisu/multi.py index 3a418aea5..d56c174d0 100644 --- a/tests/dictionaries/01test_boolean/tiramisu/multi.py +++ b/tests/dictionaries/01test_boolean/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"})) -option_4.impl_set_information('test', (False,)) +option_4 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"}), informations={'test': (False,)}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('test', (False,)) +option_8 = BoolOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default=True, properties=frozenset({"mandatory", "standard"}), informations={'test': (False,)}) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_multi/tiramisu/base.py b/tests/dictionaries/01test_multi/tiramisu/base.py index 6e3dbb1d4..5d3cb283d 100644 --- a/tests/dictionaries/01test_multi/tiramisu/base.py +++ b/tests/dictionaries/01test_multi/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_3.impl_set_information('test', ('test1', 'test2')) +option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1', 'test2')}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test_multi/tiramisu/multi.py b/tests/dictionaries/01test_multi/tiramisu/multi.py index b57cd2cfd..cf3696875 100644 --- a/tests/dictionaries/01test_multi/tiramisu/multi.py +++ b/tests/dictionaries/01test_multi/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_4.impl_set_information('test', ('test1', 'test2')) +option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1', 'test2')}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('test', ('test1', 'test2')) +option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1', 'test2')}) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_multi_none/tiramisu/base.py b/tests/dictionaries/01test_multi_none/tiramisu/base.py index e6877a4fb..ceb2d5b43 100644 --- a/tests/dictionaries/01test_multi_none/tiramisu/base.py +++ b/tests/dictionaries/01test_multi_none/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_3.impl_set_information('test', (None, 'test1', 'test2')) +option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': (None, 'test1', 'test2')}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test_multi_none/tiramisu/multi.py b/tests/dictionaries/01test_multi_none/tiramisu/multi.py index ffcacdd60..e77119a62 100644 --- a/tests/dictionaries/01test_multi_none/tiramisu/multi.py +++ b/tests/dictionaries/01test_multi_none/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_4.impl_set_information('test', (None, 'test1', 'test2')) +option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': (None, 'test1', 'test2')}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('test', (None, 'test1', 'test2')) +option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': (None, 'test1', 'test2')}) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_redefine/tiramisu/base.py b/tests/dictionaries/01test_redefine/tiramisu/base.py index 7cd41d24f..3724aa30d 100644 --- a/tests/dictionaries/01test_redefine/tiramisu/base.py +++ b/tests/dictionaries/01test_redefine/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_3.impl_set_information('test', ('test1',)) +option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1',)}) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test_redefine/tiramisu/multi.py b/tests/dictionaries/01test_redefine/tiramisu/multi.py index 0ba6c1a22..0a3836ed5 100644 --- a/tests/dictionaries/01test_redefine/tiramisu/multi.py +++ b/tests/dictionaries/01test_redefine/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_4.impl_set_information('test', ('test1',)) +option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1',)}) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('test', ('test1',)) +option_8 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"}), informations={'test': ('test1',)}) optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_redefine_base/tiramisu/base.py b/tests/dictionaries/01test_redefine_base/tiramisu/base.py index 6956285a2..d07059c28 100644 --- a/tests/dictionaries/01test_redefine_base/tiramisu/base.py +++ b/tests/dictionaries/01test_redefine_base/tiramisu/base.py @@ -1,25 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) -option_2.impl_set_information('test', ('test1',)) +option_2 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"}), informations={'test': ('test1',)}) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/01test_redefine_base/tiramisu/multi.py b/tests/dictionaries/01test_redefine_base/tiramisu/multi.py index 906fd4921..fd1c18da3 100644 --- a/tests/dictionaries/01test_redefine_base/tiramisu/multi.py +++ b/tests/dictionaries/01test_redefine_base/tiramisu/multi.py @@ -1,30 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) -option_3.impl_set_information('test', ('test1',)) +option_3 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"}), informations={'test': ('test1',)}) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) -option_6.impl_set_information('test', ('test1',)) +option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"}), informations={'test': ('test1',)}) optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/01test_redefine_remove/tiramisu/base.py b/tests/dictionaries/01test_redefine_remove/tiramisu/base.py index 69558d29e..079234e31 100644 --- a/tests/dictionaries/01test_redefine_remove/tiramisu/base.py +++ b/tests/dictionaries/01test_redefine_remove/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py b/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py index edf00893a..60f71da0d 100644 --- a/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py +++ b/tests/dictionaries/01test_redefine_remove/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10autosave_hidden/tiramisu/base.py b/tests/dictionaries/10autosave_hidden/tiramisu/base.py index 69b7c13ff..0291982dd 100644 --- a/tests/dictionaries/10autosave_hidden/tiramisu/base.py +++ b/tests/dictionaries/10autosave_hidden/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"})) diff --git a/tests/dictionaries/10autosave_hidden/tiramisu/multi.py b/tests/dictionaries/10autosave_hidden/tiramisu/multi.py index 53c4fc478..61fa0870a 100644 --- a/tests/dictionaries/10autosave_hidden/tiramisu/multi.py +++ b/tests/dictionaries/10autosave_hidden/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" dict_env['default_2.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", "frozen", "hidden"})) diff --git a/tests/dictionaries/10check_base/tiramisu/base.py b/tests/dictionaries/10check_base/tiramisu/base.py index 2f9d653e8..3104f5cb0 100644 --- a/tests/dictionaries/10check_base/tiramisu/base.py +++ b/tests/dictionaries/10check_base/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_4 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_base/tiramisu/multi.py b/tests/dictionaries/10check_base/tiramisu/multi.py index 8265d968c..6bf5d39ee 100644 --- a/tests/dictionaries/10check_base/tiramisu/multi.py +++ b/tests/dictionaries/10check_base/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_5 = IntOption(name="int", doc="No change", min_number=0, max_number=100, properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_no_param/tiramisu/base.py b/tests/dictionaries/10check_no_param/tiramisu/base.py index 7595c303e..062a82ed3 100644 --- a/tests/dictionaries/10check_no_param/tiramisu/base.py +++ b/tests/dictionaries/10check_no_param/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_lower }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_no_param/tiramisu/multi.py b/tests/dictionaries/10check_no_param/tiramisu/multi.py index d1ca38564..b4e2c3e03 100644 --- a/tests/dictionaries/10check_no_param/tiramisu/multi.py +++ b/tests/dictionaries/10check_no_param/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.int'] = "{{ rougail.general.int | valid_lower }}" dict_env['validators_2.rougail.general.int'] = "{{ rougail.general.int | valid_lower }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_option/tmp/base.py b/tests/dictionaries/10check_option/tmp/base.py deleted file mode 100644 index 09d0fbc77..000000000 --- a/tests/dictionaries/10check_option/tmp/base.py +++ /dev/null @@ -1,71 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("normal") -ALLOWED_LEADER_PROPERTIES.add("expert") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value) -def valid_with_jinja(warning=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warning: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_lower(mini=0, maxi=rougail.general.int2) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "normal"})) -option_4 = IntOption(name="int2", doc="No change", default=100, properties=frozenset({"mandatory", "normal"})) -option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False), 'rougail.general.int2': ParamOption(option_4)}))], properties=frozenset({"normal"})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10check_optional/tiramisu/base.py b/tests/dictionaries/10check_optional/tiramisu/base.py index 4d48cf0fc..413fa36a1 100644 --- a/tests/dictionaries/10check_optional/tiramisu/base.py +++ b/tests/dictionaries/10check_optional/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}" dict_env['validators_rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_5 = IntOption(name="int2", doc="No change", properties=frozenset({"standard"})) option_4 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int2': ParamOption(option_5), 'rougail.general.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_optional/tiramisu/multi.py b/tests/dictionaries/10check_optional/tiramisu/multi.py index 421b7dba4..2656aaf6f 100644 --- a/tests/dictionaries/10check_optional/tiramisu/multi.py +++ b/tests/dictionaries/10check_optional/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}" dict_env['validators_1.rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}" dict_env['validators_2.rougail.general.int'] = "{{ rougail.general.int | valid_differ(rougail.general.int2) }}" dict_env['validators_2.rougail.general.int_0'] = "{{ rougail.general.int | valid_differ(__int3) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="b", properties=frozenset({"mandatory", "standard"})) option_6 = IntOption(name="int2", doc="No change", properties=frozenset({"standard"})) option_5 = IntOption(name="int", doc="No change", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int2': ParamOption(option_6), 'rougail.general.int': ParamSelfOption(whole=False)})), Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.int_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.int': ParamSelfOption(whole=False)}))], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_valid_differ/tiramisu/base.py b/tests/dictionaries/10check_valid_differ/tiramisu/base.py index 380028ca1..0facf369d 100644 --- a/tests/dictionaries/10check_valid_differ/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_differ/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)}))], properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_valid_differ/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ/tiramisu/multi.py index 930ffe878..51d2a0862 100644 --- a/tests/dictionaries/10check_valid_differ/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_differ/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n" dict_env['validators_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif | valid_differ(rougail.general.mode_conteneur_actif1) }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)}))], properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py b/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py index 967482bc5..f2fba624f 100644 --- a/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_differ_add/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py index 5b02b11be..9d5940f37 100644 --- a/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_differ_add/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_1.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" dict_env['validators_2.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_2.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py index 967482bc5..f2fba624f 100644 --- a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py index 5b02b11be..9d5940f37 100644 --- a/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_differ_removecheck/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_1.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" dict_env['validators_2.rougail.general.mode_conteneur_actif3'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif1) }}" dict_env['validators_2.rougail.general.mode_conteneur_actif3_0'] = "{{ rougail.general.mode_conteneur_actif3 | valid_differ(__mode_conteneur_actif2) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10check_valid_in_network/tiramisu/base.py b/tests/dictionaries/10check_valid_in_network/tiramisu/base.py index 386473495..526ac9d81 100644 --- a/tests/dictionaries/10check_valid_in_network/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_in_network/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", allow_reserved=True, private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"})) option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py b/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py index b132398cd..45c4a571d 100644 --- a/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_in_network/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}" dict_env['validators_2.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0, rougail.general.adresse_netmask_eth0) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", allow_reserved=True, private_only=True, warnings_only=True, properties=frozenset({"basic", "mandatory"})) option_6 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py index ef195337f..7b066f27a 100644 --- a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"})) option_5 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_4)}))], allow_reserved=True, properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py index 36eb2c613..d9764d993 100644 --- a/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_in_network_cidr/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}\n" dict_env['validators_2.rougail.general.adresse_ip'] = "{{ rougail.general.adresse_ip | valid_in_network(rougail.general.adresse_ip_eth0) }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", cidr=True, properties=frozenset({"basic", "mandatory"})) option_6 = IPOption(name="adresse_ip", doc="IP", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.adresse_ip"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip': ParamSelfOption(whole=False), 'rougail.general.adresse_ip_eth0': ParamOption(option_5)}))], allow_reserved=True, properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py index 240b4ebb8..25baf41c3 100644 --- a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", allow_reserved=True, properties=frozenset({"basic", "mandatory"})) option_5 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.adresse_netmask_eth0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip_eth0': ParamOption(option_4), 'rougail.general.adresse_netmask_eth0': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py index f0b33e835..81fa09f08 100644 --- a/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_ipnetmask/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}" dict_env['validators_2.rougail.general.adresse_netmask_eth0'] = "{{ rougail.general.adresse_netmask_eth0 | valid_ipnetmask(rougail.general.adresse_ip_eth0) }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = IPOption(name="adresse_ip_eth0", doc="Adresse IP de la carte", allow_reserved=True, properties=frozenset({"basic", "mandatory"})) option_6 = NetmaskOption(name="adresse_netmask_eth0", doc="Masque de sous réseau de la carte", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.adresse_netmask_eth0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.adresse_ip_eth0': ParamOption(option_5), 'rougail.general.adresse_netmask_eth0': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"})) diff --git a/tests/dictionaries/10check_valid_jinja/tiramisu/base.py b/tests/dictionaries/10check_valid_jinja/tiramisu/base.py index 518c3396b..b37ee8e1b 100644 --- a/tests/dictionaries/10check_valid_jinja/tiramisu/base.py +++ b/tests/dictionaries/10check_valid_jinja/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)}))], properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py b/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py index e7620a117..da9f71f0f 100644 --- a/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py +++ b/tests/dictionaries/10check_valid_jinja/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n" dict_env['validators_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif == rougail.general.mode_conteneur_actif1 %}\nthe value must be different than \"{{ rougail.general.mode_conteneur_actif}}\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamSelfOption(whole=False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)}))], properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10check_variable_relative/dictionaries/rougail/00-base.yml b/tests/dictionaries/10check_variable_relative/dictionaries/rougail/00-base.yml index 9a33666a0..393104284 100644 --- a/tests/dictionaries/10check_variable_relative/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10check_variable_relative/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: var: type: number diff --git a/tests/dictionaries/10check_variable_relative/tiramisu/base.py b/tests/dictionaries/10check_variable_relative/tiramisu/base.py index 0a3766573..6e9fb7551 100644 --- a/tests/dictionaries/10check_variable_relative/tiramisu/base.py +++ b/tests/dictionaries/10check_variable_relative/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_rougail.general.var'] = "{% if _.var > 10 %}\nto high\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = IntOption(name="var", doc="var", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_rougail.general.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '_.var': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10check_variable_relative/tiramisu/multi.py b/tests/dictionaries/10check_variable_relative/tiramisu/multi.py index 96d67b1df..f6da123d4 100644 --- a/tests/dictionaries/10check_variable_relative/tiramisu/multi.py +++ b/tests/dictionaries/10check_variable_relative/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['validators_1.rougail.general.var'] = "{% if _.var > 10 %}\nto high\n{% endif %}\n" dict_env['validators_2.rougail.general.var'] = "{% if _.var > 10 %}\nto high\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = IntOption(name="var", doc="var", validators=[Calculation(func['valid_with_jinja'], Params((), kwargs={'__internal_jinja': ParamValue("validators_1.rougail.general.var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '_.var': ParamSelfOption(whole=False)}))], properties=frozenset({"basic", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10disabled_with_variable/tiramisu/base.py b/tests/dictionaries/10disabled_with_variable/tiramisu/base.py index aa54e9758..7a4d2622a 100644 --- a/tests/dictionaries/10disabled_with_variable/tiramisu/base.py +++ b/tests/dictionaries/10disabled_with_variable/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_2))), help_function=func['variable_to_property'])})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10disabled_with_variable/tiramisu/multi.py b/tests/dictionaries/10disabled_with_variable/tiramisu/multi.py index 64da959e6..09d8ce462 100644 --- a/tests/dictionaries/10disabled_with_variable/tiramisu/multi.py +++ b/tests/dictionaries/10disabled_with_variable/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_3))), help_function=func['variable_to_property'])})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10disabled_with_variable2/tiramisu/base.py b/tests/dictionaries/10disabled_with_variable2/tiramisu/base.py index 69b472a65..4ab0ce394 100644 --- a/tests/dictionaries/10disabled_with_variable2/tiramisu/base.py +++ b/tests/dictionaries/10disabled_with_variable2/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_2))), help_function=func['variable_to_property'])})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10disabled_with_variable2/tiramisu/multi.py b/tests/dictionaries/10disabled_with_variable2/tiramisu/multi.py index 7a3a24876..f5fd6124a 100644 --- a/tests/dictionaries/10disabled_with_variable2/tiramisu/multi.py +++ b/tests/dictionaries/10disabled_with_variable2/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_3))), help_function=func['variable_to_property'])})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10disabled_with_variable_relative/dictionaries/rougail/00-base.yml b/tests/dictionaries/10disabled_with_variable_relative/dictionaries/rougail/00-base.yml index af47c6e73..f1365dd44 100644 --- a/tests/dictionaries/10disabled_with_variable_relative/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10disabled_with_variable_relative/dictionaries/rougail/00-base.yml @@ -1,4 +1,5 @@ -version: '1.0' +--- +version: '1.1' condition: type: boolean variable: diff --git a/tests/dictionaries/10disabled_with_variable_relative/tiramisu/base.py b/tests/dictionaries/10disabled_with_variable_relative/tiramisu/base.py index 9e05b328d..7a4d2622a 100644 --- a/tests/dictionaries/10disabled_with_variable_relative/tiramisu/base.py +++ b/tests/dictionaries/10disabled_with_variable_relative/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_2))), help_function=func['variable_to_property'])})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10disabled_with_variable_relative/tiramisu/multi.py b/tests/dictionaries/10disabled_with_variable_relative/tiramisu/multi.py index 7affbab33..09d8ce462 100644 --- a/tests/dictionaries/10disabled_with_variable_relative/tiramisu/multi.py +++ b/tests/dictionaries/10disabled_with_variable_relative/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("disabled"), ParamOption(option_3))), help_function=func['variable_to_property'])})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill/tiramisu/base.py b/tests/dictionaries/10fill/tiramisu/base.py index 78ea77b11..93548eb4b 100644 --- a/tests/dictionaries/10fill/tiramisu/base.py +++ b/tests/dictionaries/10fill/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.variable'] = "{{ param1 }}_{{ param2 }}_{{ param3 }}_{{ param4 }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="variable", doc="variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'param1': ParamValue("string"), 'param2': ParamValue(1), 'param3': ParamValue(True), 'param4': ParamValue(None)})), properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10fill/tiramisu/multi.py b/tests/dictionaries/10fill/tiramisu/multi.py index 99f4197f3..4e3663784 100644 --- a/tests/dictionaries/10fill/tiramisu/multi.py +++ b/tests/dictionaries/10fill/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.variable'] = "{{ param1 }}_{{ param2 }}_{{ param3 }}_{{ param4 }}\n" dict_env['default_2.rougail.variable'] = "{{ param1 }}_{{ param2 }}_{{ param3 }}_{{ param4 }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="variable", doc="variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'param1': ParamValue("string"), 'param2': ParamValue(1), 'param3': ParamValue(True), 'param4': ParamValue(None)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_optional/tiramisu/base.py b/tests/dictionaries/10fill_optional/tiramisu/base.py index ccdc0b212..d222a3a75 100644 --- a/tests/dictionaries/10fill_optional/tiramisu/base.py +++ b/tests/dictionaries/10fill_optional/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %} {{ __mode_conteneur_actif4 }} {% elif __mode_conteneur_actif3 is defined %} {{ __mode_conteneur_actif3 }} {% else %} {{ rougail.general.mode_conteneur_actif1 }} {% endif %} " -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_optional/tiramisu/multi.py b/tests/dictionaries/10fill_optional/tiramisu/multi.py index 8ad9eb5ca..74f39b837 100644 --- a/tests/dictionaries/10fill_optional/tiramisu/multi.py +++ b/tests/dictionaries/10fill_optional/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %} {{ __mode_conteneur_actif4 }} {% elif __mode_conteneur_actif3 is defined %} {{ __mode_conteneur_actif3 }} {% else %} {{ rougail.general.mode_conteneur_actif1 }} {% endif %} " dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %} {{ __mode_conteneur_actif4 }} {% elif __mode_conteneur_actif3 is defined %} {{ __mode_conteneur_actif3 }} {% else %} {{ rougail.general.mode_conteneur_actif1 }} {% endif %} " -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_quote/tiramisu/base.py b/tests/dictionaries/10fill_quote/tiramisu/base.py index 11394463a..7ce149ca6 100644 --- a/tests/dictionaries/10fill_quote/tiramisu/base.py +++ b/tests/dictionaries/10fill_quote/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}" dict_env['default_rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}" dict_env['default_rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}" dict_env['default_rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_quote/tiramisu/multi.py b/tests/dictionaries/10fill_quote/tiramisu/multi.py index 5ad399b56..667facb3c 100644 --- a/tests/dictionaries/10fill_quote/tiramisu/multi.py +++ b/tests/dictionaries/10fill_quote/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | calc_val }}" dict_env['default_1.rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}" dict_env['default_1.rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}" @@ -71,9 +13,6 @@ dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"quote'\" | ca dict_env['default_2.rougail.general.mode_conteneur_actif1'] = "{{ \"quote\\\"\" | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif2'] = "{{ \"quote\\\"'\" | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif3'] = "{{ \"quote\\\"\\\\'\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_target_information/tiramisu/base.py b/tests/dictionaries/10fill_target_information/tiramisu/base.py index 3e9155a20..dc65d83e4 100644 --- a/tests/dictionaries/10fill_target_information/tiramisu/base.py +++ b/tests/dictionaries/10fill_target_information/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamSelfInformation("test_information", None)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_target_information/tiramisu/multi.py b/tests/dictionaries/10fill_target_information/tiramisu/multi.py index dd258fb25..ca7e76111 100644 --- a/tests/dictionaries/10fill_target_information/tiramisu/multi.py +++ b/tests/dictionaries/10fill_target_information/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.mode_conteneur_actif.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.mode_conteneur_actif.test_information': ParamSelfInformation("test_information", None)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_target_optional/tiramisu/base.py b/tests/dictionaries/10fill_target_optional/tiramisu/base.py index 162f2e1b5..ff4322bf3 100644 --- a/tests/dictionaries/10fill_target_optional/tiramisu/base.py +++ b/tests/dictionaries/10fill_target_optional/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10fill_target_optional/tiramisu/multi.py b/tests/dictionaries/10fill_target_optional/tiramisu/multi.py index 5aba7ad84..200d11e21 100644 --- a/tests/dictionaries/10fill_target_optional/tiramisu/multi.py +++ b/tests/dictionaries/10fill_target_optional/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py index 1799a2267..12b4444e1 100644 --- a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py +++ b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/base.py @@ -1,77 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" dict_env['frozen_rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) option_6 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"advanced", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py index 796d1e0b7..268e8c5a1 100644 --- a/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py +++ b/tests/dictionaries/10frozenifin_unknown_valid_enum_number/tiramisu/multi.py @@ -1,87 +1,24 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" dict_env['frozen_1.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" dict_env['hidden_2.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" dict_env['frozen_2.rougail.enumfam.test_variable'] = "{% if rougail.enumfam.enumvar == \"4\" %}\nrougail.enumfam.enumvar is 4\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) option_7 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"advanced", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_6)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])})) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6, option_7], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"advanced"})) -option_13 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_13.impl_set_information('help', "bla bla bla") +option_13 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) option_14 = IntOption(name="test_variable", doc="test variable", properties=frozenset({"advanced", "force_default_on_freeze", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_13)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.enumfam.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.enumfam.enumvar': ParamOption(option_13)}), help_function=func['jinja_to_property_help'])})) optiondescription_12 = OptionDescription(name="enumfam", doc="enumfam", children=[option_13, option_14], properties=frozenset({"advanced"})) optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10integer_jinja/makedict/after.json b/tests/dictionaries/10integer_jinja/makedict/after.json new file mode 100644 index 000000000..cda872476 --- /dev/null +++ b/tests/dictionaries/10integer_jinja/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.my_variable": { + "owner": "default", + "value": 9 + } +} diff --git a/tests/dictionaries/10integer_jinja/makedict/base.json b/tests/dictionaries/10integer_jinja/makedict/base.json new file mode 100644 index 000000000..98cd70ec1 --- /dev/null +++ b/tests/dictionaries/10integer_jinja/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.my_variable": 9 +} diff --git a/tests/dictionaries/10integer_jinja/makedict/before.json b/tests/dictionaries/10integer_jinja/makedict/before.json new file mode 100644 index 000000000..cda872476 --- /dev/null +++ b/tests/dictionaries/10integer_jinja/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.my_variable": { + "owner": "default", + "value": 9 + } +} diff --git a/tests/dictionaries/10integer_jinja/makedict/mandatory.json b/tests/dictionaries/10integer_jinja/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/10integer_jinja/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/10integer_jinja/tiramisu/base.py b/tests/dictionaries/10integer_jinja/tiramisu/base.py new file mode 100644 index 000000000..8d3b4dae9 --- /dev/null +++ b/tests/dictionaries/10integer_jinja/tiramisu/base.py @@ -0,0 +1,11 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['choices_rougail.my_variable'] = "{% for item in trange(0, 10) %}\n{{ item }}\n{%- endfor %}\n" +option_2 = ChoiceOption(name="my_variable", doc="my_variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_rougail.my_variable"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10integer_jinja/tiramisu/multi.py b/tests/dictionaries/10integer_jinja/tiramisu/multi.py new file mode 100644 index 000000000..752b2b446 --- /dev/null +++ b/tests/dictionaries/10integer_jinja/tiramisu/multi.py @@ -0,0 +1,16 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['choices_1.rougail.my_variable'] = "{% for item in trange(0, 10) %}\n{{ item }}\n{%- endfor %}\n" +dict_env['choices_2.rougail.my_variable'] = "{% for item in trange(0, 10) %}\n{{ item }}\n{%- endfor %}\n" +option_3 = ChoiceOption(name="my_variable", doc="my_variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_1.rougail.my_variable"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_6 = ChoiceOption(name="my_variable", doc="my_variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_2.rougail.my_variable"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "standard"})) +optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"standard"})) +optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/10leadership_append/tiramisu/base.py b/tests/dictionaries/10leadership_append/tiramisu/base.py index 40661f472..a427be76c 100644 --- a/tests/dictionaries/10leadership_append/tiramisu/base.py +++ b/tests/dictionaries/10leadership_append/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_append/tiramisu/multi.py b/tests/dictionaries/10leadership_append/tiramisu/multi.py index 6f4c6217d..543fd837a 100644 --- a/tests/dictionaries/10leadership_append/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_append/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py index e448674d0..60d621944 100644 --- a/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py +++ b/tests/dictionaries/10leadership_append_hidden/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py index 59e619a83..e671f9fd7 100644 --- a/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_append_hidden/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_append_name/tiramisu/base.py b/tests/dictionaries/10leadership_append_name/tiramisu/base.py index bcdf6f440..7bdd543b7 100644 --- a/tests/dictionaries/10leadership_append_name/tiramisu/base.py +++ b/tests/dictionaries/10leadership_append_name/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_append_name/tiramisu/multi.py b/tests/dictionaries/10leadership_append_name/tiramisu/multi.py index 3b465abf3..bf87e8e9a 100644 --- a/tests/dictionaries/10leadership_append_name/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_append_name/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leadership.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leadership.follower2'] = "{{ rougail.general1.leadership.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_auto/tiramisu/base.py b/tests/dictionaries/10leadership_auto/tiramisu/base.py index 4ddb66d68..d0570be19 100644 --- a/tests/dictionaries/10leadership_auto/tiramisu/base.py +++ b/tests/dictionaries/10leadership_auto/tiramisu/base.py @@ -1,74 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" dict_env['default_rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10leadership_auto/tiramisu/multi.py b/tests/dictionaries/10leadership_auto/tiramisu/multi.py index 469c599d3..f18f1ef7e 100644 --- a/tests/dictionaries/10leadership_auto/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_auto/tiramisu/multi.py @@ -1,77 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" dict_env['default_1.rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}" dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general.leader.follower3'] = "{{ rougail.general.leader.leader | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10leadership_auto_index/tiramisu/base.py b/tests/dictionaries/10leadership_auto_index/tiramisu/base.py index b626cbd10..1e42d84bc 100644 --- a/tests/dictionaries/10leadership_auto_index/tiramisu/base.py +++ b/tests/dictionaries/10leadership_auto_index/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['calc_value'], Params((ParamIndex()))), properties=frozenset({"standard"})) optiondescription_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py b/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py index 13db399ee..56ab54544 100644 --- a/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_auto_index/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['calc_value'], Params((ParamIndex()))), properties=frozenset({"standard"})) optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_auto_index_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_auto_index_param/dictionaries/rougail/00-base.yml index ba5db3bd6..7e81089a6 100644 --- a/tests/dictionaries/10leadership_auto_index_param/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10leadership_auto_index_param/dictionaries/rougail/00-base.yml @@ -1,19 +1,20 @@ +--- +version: '1.0' leader: description: leader type: leadership leader: multi: true default: - - a - - b - - c + - a + - b + - c follower1: type: number default: type: jinja - jinja: '{{ __index | calc_val }}' + jinja: '{{ __index }}' params: __index: type: index mandatory: false -version: '1.0' diff --git a/tests/dictionaries/10leadership_auto_index_param/tiramisu/base.py b/tests/dictionaries/10leadership_auto_index_param/tiramisu/base.py index ab6d40b93..3cf4d7bf7 100644 --- a/tests/dictionaries/10leadership_auto_index_param/tiramisu/base.py +++ b/tests/dictionaries/10leadership_auto_index_param/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['default_rougail.leader.follower1'] = "{{ __index | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['default_rougail.leader.follower1'] = "{{ __index }}" option_3 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leader.follower1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), '__index': ParamIndex()})), properties=frozenset({"standard"})) optiondescription_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_auto_index_param/tiramisu/multi.py b/tests/dictionaries/10leadership_auto_index_param/tiramisu/multi.py index 2361e5e77..31b40b006 100644 --- a/tests/dictionaries/10leadership_auto_index_param/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_auto_index_param/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['default_1.rougail.leader.follower1'] = "{{ __index | calc_val }}" -dict_env['default_2.rougail.leader.follower1'] = "{{ __index | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['default_1.rougail.leader.follower1'] = "{{ __index }}" +dict_env['default_2.rougail.leader.follower1'] = "{{ __index }}" option_4 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = IntOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leader.follower1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), '__index': ParamIndex()})), properties=frozenset({"standard"})) optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_autoleader/tiramisu/base.py b/tests/dictionaries/10leadership_autoleader/tiramisu/base.py index fe43145d5..0a6051356 100644 --- a/tests/dictionaries/10leadership_autoleader/tiramisu/base.py +++ b/tests/dictionaries/10leadership_autoleader/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py b/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py index 5906930dc..f072597c4 100644 --- a/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_autoleader/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}" dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.leader | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml index 0cd7452e6..552cc5ae5 100644 --- a/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10leadership_autoleader_expert/dictionaries/rougail/00-base.yml @@ -1,28 +1,15 @@ -general: - mode: advanced - mode_conteneur_actif: - type: string - description: No change - default: non +--- +version: '1.0' leadermode: leader: - description: leader type: leadership leader: - type: string - description: leader multi: true mode: advanced default: - type: jinja - jinja: valfill + - valfill mandatory: false follower1: - type: string - description: follower1 mandatory: false follower2: - type: string - description: follower2 mandatory: false -version: '1.0' diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json deleted file mode 100644 index 984ecc2aa..000000000 --- a/tests/dictionaries/10leadership_autoleader_expert/makedict/after.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": { - "owner": "default", - "value": "non" - }, - "rougail.leadermode.leader.leader": { - "owner": "default", - "value": ["valfill"] - }, - "rougail.leadermode.leader.follower1": {"owner": ["default"], - "value": [null]}, - "rougail.leadermode.leader.follower2": {"owner": ["default"], - "value": [null]} - -} diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json deleted file mode 100644 index 88df331f2..000000000 --- a/tests/dictionaries/10leadership_autoleader_expert/makedict/base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": "non", - "rougail.leadermode.leader.leader": [], - "rougail.leadermode.leader.leader": [{"rougail.leadermode.leader.follower1": null, - "rougail.leadermode.leader.follower2": null, - "rougail.leadermode.leader.leader": "valfill"}] - -} diff --git a/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json b/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json deleted file mode 100644 index 984ecc2aa..000000000 --- a/tests/dictionaries/10leadership_autoleader_expert/makedict/before.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": { - "owner": "default", - "value": "non" - }, - "rougail.leadermode.leader.leader": { - "owner": "default", - "value": ["valfill"] - }, - "rougail.leadermode.leader.follower1": {"owner": ["default"], - "value": [null]}, - "rougail.leadermode.leader.follower2": {"owner": ["default"], - "value": [null]} - -} diff --git a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py index ffe867d41..84ab90a35 100644 --- a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py +++ b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/base.py @@ -1,78 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['default_rougail.leadermode.leader.leader'] = "valfill" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"advanced"})) -option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) -option_8 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) -optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"advanced"})) -optiondescription_4 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_5], properties=frozenset({"advanced"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) +option_4 = StrOption(name="leader", doc="leader", multi=True, default=["valfill"], properties=frozenset({"advanced"})) +option_5 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) +option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) +optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"advanced"})) +optiondescription_2 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_3], properties=frozenset({"advanced"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py index 2673f400c..002441389 100644 --- a/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_autoleader_expert/tiramisu/multi.py @@ -1,89 +1,22 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['default_1.rougail.leadermode.leader.leader'] = "valfill" -dict_env['default_2.rougail.leadermode.leader.leader'] = "valfill" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) -optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"advanced"})) -option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) -option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) -optiondescription_6 = Leadership(name="leader", doc="leader", children=[option_7, option_8, option_9], properties=frozenset({"advanced"})) -optiondescription_5 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_6], properties=frozenset({"advanced"})) -optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) +option_5 = StrOption(name="leader", doc="leader", multi=True, default=["valfill"], properties=frozenset({"advanced"})) +option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) +option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) +optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"advanced"})) +optiondescription_3 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_4], properties=frozenset({"advanced"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) -option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) -optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"advanced"})) -option_16 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"advanced"})) -option_17 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) -option_18 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) -optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"advanced"})) -optiondescription_14 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_15], properties=frozenset({"advanced"})) -optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"advanced"})) -optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"advanced"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10]) +option_12 = StrOption(name="leader", doc="leader", multi=True, default=["valfill"], properties=frozenset({"advanced"})) +option_13 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"advanced"})) +option_14 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"advanced"})) +optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"advanced"})) +optiondescription_10 = OptionDescription(name="leadermode", doc="leadermode", children=[optiondescription_11], properties=frozenset({"advanced"})) +optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"advanced"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"advanced"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py index 6ccf59ae2..df44d0c40 100644 --- a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py +++ b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py index 53e9e7e81..9ef1b0711 100644 --- a/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_autosaveexpert/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_empty/tiramisu/base.py b/tests/dictionaries/10leadership_empty/tiramisu/base.py index 68e22be18..3735a8e25 100644 --- a/tests/dictionaries/10leadership_empty/tiramisu/base.py +++ b/tests/dictionaries/10leadership_empty/tiramisu/base.py @@ -1,23 +1,9 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10leadership_empty/tiramisu/multi.py b/tests/dictionaries/10leadership_empty/tiramisu/multi.py index cfd92fa0d..472635ec3 100644 --- a/tests/dictionaries/10leadership_empty/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_empty/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') optiondescription_1 = OptionDescription(name="1", doc="1", children=[], properties=frozenset({"advanced"})) optiondescription_4 = OptionDescription(name="2", doc="2", children=[], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/10leadership_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_hidden/tiramisu/base.py index a799e363c..0ea2d975b 100644 --- a/tests/dictionaries/10leadership_hidden/tiramisu/base.py +++ b/tests/dictionaries/10leadership_hidden/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_hidden/tiramisu/multi.py index 59911b43b..c4be5404e 100644 --- a/tests/dictionaries/10leadership_hidden/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_hidden/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" dict_env['default_2.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py index a799e363c..0ea2d975b 100644 --- a/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py +++ b/tests/dictionaries/10leadership_leader_hidden/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py index 59911b43b..c4be5404e 100644 --- a/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_leader_hidden/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" dict_env['default_2.rougail.leadermode.leader.leader'] = "{% for var in calc_list() %}\n{{ var }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_7 = StrOption(name="leader", doc="leader", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True)})), properties=frozenset({"force_default_on_freeze", "frozen", "standard"})) diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py index b0a4208ce..21891d08f 100644 --- a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py +++ b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['frozen_rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['hidden_rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py index 22627a9a8..81f0743fc 100644 --- a/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_leader_hidden_if_in/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['frozen_1.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_1.rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_1.rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['frozen_2.rougail.leadermode.leader.leader'] = "{% if rougail.general.m dict_env['frozen_2.rougail.leadermode.leader.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_2.rougail.leadermode.leader.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['hidden_2.rougail.leadermode.leader.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py index 2bbbfabfd..b482f26c8 100644 --- a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py +++ b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['frozen_rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['hidden_rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py index 704f5b6ff..e7ba9cf8a 100644 --- a/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_leader_hidden_if_in_name/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['frozen_1.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_1.rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_1.rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['frozen_2.rougail.leadermode.other.leader'] = "{% if rougail.general.mo dict_env['frozen_2.rougail.leadermode.other.follower1'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['frozen_2.rougail.leadermode.other.follower2'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" dict_env['hidden_2.rougail.leadermode.other.leader'] = "{% if rougail.general.mode_conteneur_actif == \"non\" %}\nrougail.general.mode_conteneur_actif is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.leadermode.other.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py b/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py index c9173cd6f..646264204 100644 --- a/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py +++ b/tests/dictionaries/10leadership_leadermandatory/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory", "notempty"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py b/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py index c6c806edd..85cc2aadc 100644 --- a/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_leadermandatory/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general.leader.follower2'] = "{{ rougail.general.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "mandatory", "notempty"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.leader.follower1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml b/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml index 017177435..b19b501bf 100644 --- a/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10leadership_mandatoryfollower/dictionaries/rougail/00-base.yml @@ -1,7 +1,8 @@ +--- +version: '1.0' general: description: général mode_conteneur_actif: - type: string description: No change hidden: true default: oui @@ -17,4 +18,3 @@ general: type: network description: Adresse IP du réseau de l'esclave mandatory: true -version: '1.0' diff --git a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py index 4a2ff8e06..d2c47c9cf 100644 --- a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py +++ b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/base.py @@ -1,28 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"standard"})) option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"})) -optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"standard"})) -optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) +optiondescription_4 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_5, option_6], properties=frozenset({"basic"})) +optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py index f0fcd3657..de4692dfb 100644 --- a/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_mandatoryfollower/tiramisu/multi.py @@ -1,36 +1,22 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"standard"})) option_7 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"})) -optiondescription_5 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_6, option_7], properties=frozenset({"standard"})) -optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, optiondescription_5], properties=frozenset({"standard"})) -optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +optiondescription_5 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_6, option_7], properties=frozenset({"basic"})) +optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, optiondescription_5], properties=frozenset({"basic"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_13 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"standard"})) option_14 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, properties=frozenset({"basic", "mandatory"})) -optiondescription_12 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_13, option_14], properties=frozenset({"standard"})) -optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, optiondescription_12], properties=frozenset({"standard"})) -optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"standard"})) -optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) +optiondescription_12 = Leadership(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", children=[option_13, option_14], properties=frozenset({"basic"})) +optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11, optiondescription_12], properties=frozenset({"basic"})) +optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"basic"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py index a53683f01..1cb8c504e 100644 --- a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py +++ b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"standard"})) option_6 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py index 72025c7a3..0aac3bac0 100644 --- a/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_mandatoryfollower_value/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = NetmaskOption(name="nut_monitor_netmask", doc="Masque de l'IP du réseau de l'esclave", multi=True, properties=frozenset({"standard"})) option_7 = NetworkOption(name="nut_monitor_host", doc="Adresse IP du réseau de l'esclave", multi=True, default_multi="192.168.0.0", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10leadership_multi/tiramisu/base.py b/tests/dictionaries/10leadership_multi/tiramisu/base.py index d90836af9..ea802b789 100644 --- a/tests/dictionaries/10leadership_multi/tiramisu/base.py +++ b/tests/dictionaries/10leadership_multi/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10leadership_multi/tiramisu/multi.py b/tests/dictionaries/10leadership_multi/tiramisu/multi.py index 64080e1a7..fe3a27634 100644 --- a/tests/dictionaries/10leadership_multi/tiramisu/multi.py +++ b/tests/dictionaries/10leadership_multi/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py index 337ce7b62..41aff1568 100644 --- a/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py index cf1cab7af..7ed610b76 100644 --- a/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py index e96caec48..5626e3f95 100644 --- a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="variable1", doc="variable1", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.variable1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="variable2", doc="variable2", default=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py index 1253b7688..07ae8f851 100644 --- a/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_fill/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n" dict_env['disabled_2.rougail.general.variable1'] = "{% if rougail.general.condition == \"no\" %}\nrougail.general.condition is \"no\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="condition", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="variable1", doc="variable1", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.variable1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="variable2", doc="variable2", default=Calculation(func['calc_value'], Params((ParamOption(option_5, notraisepropertyerror=True)))), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py index 032794178..57c91cc8d 100644 --- a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py index 48714a1dc..256a802a2 100644 --- a/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_list_optional/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py index bcf9019b3..04fc8a58a 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py index 49938400e..a977282b5 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py index 9b85b1c9e..7d2a290ea 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py index 12cd80fcd..4752be9ea 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param2/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py index fe97746d0..32ebc00a1 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py index fcd8959b3..aa379f882 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param3/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n" dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit' disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit' disabled 2\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py index a7535fb11..522fd61cd 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py index cce5b9973..033300b5a 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param4/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n" dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition != \"yes\" and rougail.general.condition != \"maybe\" %}\nit's disabled\n{% elif rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled 2\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition2", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py index d736440cc..a207a0bd8 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py index fabbb915f..0ab0855ce 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param5/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py index 7caf37055..f1705df6e 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py index ddc3e3fb0..82c415a1d 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param6/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.test_variable'] = "{% if rougail.general.condition2 == \"yes\" or rougail.general.condition2 == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition2", doc="No change", default="yes", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="test_variable", doc="No change", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.test_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition2': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py index ae8bbda88..8eac0d9e3 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py index a1a886358..a0ab7cdad 100644 --- a/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_multi_param_disabled/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"maybe\" %}\nit's disabled\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py index aa0288a28..d1b0a0f2e 100644 --- a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py index 8a137d24a..387183157 100644 --- a/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_none/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if not rougail.general.condition %}\nif not rougail.general.condition\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py index 13a3caea4..78a1c4d34 100644 --- a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n" dict_env['disabled_rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.my_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var1': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])})) option_4 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.my_var3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var2': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py index ace23101b..a1294f852 100644 --- a/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_twice/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n" dict_env['disabled_1.rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n" dict_env['disabled_2.rougail.my_var2'] = "{% if my_var1 is not defined %}\nmy_var1 is undefined!\n{% elif my_var1 == \"no\" %}\nmy_var1 is no\n{% endif %}\n" dict_env['disabled_2.rougail.my_var3'] = "{% if my_var2 is not defined %}\nmy_var2 is undefined!\n{% elif my_var2 == \"no\" %}\nmy_var2 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="my_var2", doc="my_var2", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.my_var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var1': ParamOption(option_3, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="my_var3", doc="my_var3", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.my_var3"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'my_var2': ParamOption(option_4, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py index 9fcad1694..251b4bd96 100644 --- a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py index 107588b49..09727bbe2 100644 --- a/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_variable/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py index df57ea44c..d5eb6ebea 100644 --- a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py index 3ad36462a..289d38e08 100644 --- a/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_in_variable2/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nrougail.general.condition == rougail.general.mode_conteneur_actif\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="aucun", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py index f1e4c4497..1b2337283 100644 --- a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.disable_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py index 59559630e..d4d8ff13b 100644 --- a/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_not_in_fallback/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n" dict_env['disabled_2.rougail.general.disable_variable'] = "{% if unknown is defined and unknown != \"no\" %}\nunknown is defined !\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="disable_variable", doc="No change", default="no", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.disable_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py index 65a08ca6c..58ead17fd 100644 --- a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py +++ b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "standard"})) diff --git a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py index eeaf5937f..96b81b5c9 100644 --- a/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabled_if_not_in_fallback_force/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nfalse\n{% else %}\nactiver_client_ldap is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "standard"})) diff --git a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py index 18a25d30f..2732a6500 100644 --- a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py +++ b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py index 464f87c36..fa8d89065 100644 --- a/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabledifin_fallback/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is not defined %}\nactiver_client_ldap is undefined\n{% elif activer_client_ldap == \"non\" %}\nactiver_client_ldap is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py index aec41ade2..fbf2669d7 100644 --- a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py +++ b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py index 9c1dea954..65f02359e 100644 --- a/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabledifin_fallback_force/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if activer_client_ldap is defined and activer_client_ldap == \"non\" %}\nactiver_client_ldap is non\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py index b34dfa7f3..809dfcb38 100644 --- a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py +++ b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py index 59949300c..875820eef 100644 --- a/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py +++ b/tests/dictionaries/10load_disabledifin_whithouttype/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\nrougail.general.condition == \"oui\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin/tiramisu/base.py b/tests/dictionaries/10load_frozenifin/tiramisu/base.py index 7f8893949..6ea8b2c5b 100644 --- a/tests/dictionaries/10load_frozenifin/tiramisu/base.py +++ b/tests/dictionaries/10load_frozenifin/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin/tiramisu/multi.py index 34c70e4b1..10c3a2a11 100644 --- a/tests/dictionaries/10load_frozenifin/tiramisu/multi.py +++ b/tests/dictionaries/10load_frozenifin/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py index 69a511d0e..c25f31e25 100644 --- a/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py +++ b/tests/dictionaries/10load_frozenifin_auto/tiramisu/base.py @@ -1,76 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}" dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py index a0ccb2c53..56ba33fcf 100644 --- a/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py +++ b/tests/dictionaries/10load_frozenifin_auto/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | calc_val }}" dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" @@ -73,9 +15,6 @@ dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py index 1603d7c3d..88ad74204 100644 --- a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py +++ b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py index 1d23e4da2..1bde69878 100644 --- a/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py +++ b/tests/dictionaries/10load_frozenifin_multiparam/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"tous\" or rougail.general.condition == \"authentifié\" %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py b/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py index 68412db7b..ad97a6451 100644 --- a/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py +++ b/tests/dictionaries/10load_frozenifin_variable/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py b/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py index 2d16d4888..9b0979dde 100644 --- a/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py +++ b/tests/dictionaries/10load_frozenifin_variable/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == rougail.general.mode_conteneur_actif %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = ChoiceOption(name="condition", doc="No change", values=("tous", "authentifié", "aucun"), default="tous", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="tous", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py b/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py index a21320562..28e0851e7 100644 --- a/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py +++ b/tests/dictionaries/10load_frozenifnotin/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py b/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py index ae920bb2b..077191b69 100644 --- a/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py +++ b/tests/dictionaries/10load_frozenifnotin/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition != \"oui\" %}\nit's hidden\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py index ecea7597a..752741186 100644 --- a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py +++ b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py index 5bc139e31..8c7a16d14 100644 --- a/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py +++ b/tests/dictionaries/10load_hidden_if_empty_family/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['hidden_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py index 0c24bff23..4549aab74 100644 --- a/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py +++ b/tests/dictionaries/10load_hidden_if_family/tiramisu/base.py @@ -1,76 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_rougail.general2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py index d6962bd24..e21976509 100644 --- a/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py +++ b/tests/dictionaries/10load_hidden_if_family/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" @@ -73,9 +15,6 @@ dict_env['frozen_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.gener dict_env['hidden_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['frozen_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['hidden_2.rougail.general2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_family2/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_family2/tiramisu/base.py index 1c3e31bb9..6d96ac4d9 100644 --- a/tests/dictionaries/10load_hidden_if_family2/tiramisu/base.py +++ b/tests/dictionaries/10load_hidden_if_family2/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="condition1", doc="condition1", default=False, properties=frozenset({"mandatory", "standard"})) option_3 = BoolOption(name="condition2", doc="condition2", default=False, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10load_hidden_if_family2/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_family2/tiramisu/multi.py index 4fdc670ba..6a039355f 100644 --- a/tests/dictionaries/10load_hidden_if_family2/tiramisu/multi.py +++ b/tests/dictionaries/10load_hidden_if_family2/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" dict_env['hidden_2.rougail.general'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition1", doc="condition1", default=False, properties=frozenset({"mandatory", "standard"})) option_4 = BoolOption(name="condition2", doc="condition2", default=False, properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/10load_hidden_if_family3/tiramisu/base.py b/tests/dictionaries/10load_hidden_if_family3/tiramisu/base.py index c7db58e51..8e6d905f8 100644 --- a/tests/dictionaries/10load_hidden_if_family3/tiramisu/base.py +++ b/tests/dictionaries/10load_hidden_if_family3/tiramisu/base.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_rougail.general.my_variable'] = "{% if rougail.condition2 %}\ncondition is yes\n{% endif %}\n" dict_env['frozen_rougail.general.my_variable'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" dict_env['frozen_rougail.general.my_variable_0'] = "{% if rougail.condition2 %}\ncondition is yes\n{% endif %}\n" dict_env['hidden_rougail.general'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="condition1", doc="condition1", default=False, properties=frozenset({"mandatory", "standard"})) option_3 = BoolOption(name="condition2", doc="condition2", default=False, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.my_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition2': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.my_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition1': ParamOption(option_2)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.my_variable_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition2': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_hidden_if_family3/tiramisu/multi.py b/tests/dictionaries/10load_hidden_if_family3/tiramisu/multi.py index ad3329718..89521cb88 100644 --- a/tests/dictionaries/10load_hidden_if_family3/tiramisu/multi.py +++ b/tests/dictionaries/10load_hidden_if_family3/tiramisu/multi.py @@ -1,68 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['hidden_1.rougail.general.my_variable'] = "{% if rougail.condition2 %}\ncondition is yes\n{% endif %}\n" dict_env['frozen_1.rougail.general.my_variable'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" dict_env['frozen_1.rougail.general.my_variable_0'] = "{% if rougail.condition2 %}\ncondition is yes\n{% endif %}\n" @@ -71,9 +13,6 @@ dict_env['hidden_2.rougail.general.my_variable'] = "{% if rougail.condition2 %}\ dict_env['frozen_2.rougail.general.my_variable'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" dict_env['frozen_2.rougail.general.my_variable_0'] = "{% if rougail.condition2 %}\ncondition is yes\n{% endif %}\n" dict_env['hidden_2.rougail.general'] = "{% if not rougail.condition1 %}\ncondition1 is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition1", doc="condition1", default=False, properties=frozenset({"mandatory", "standard"})) option_4 = BoolOption(name="condition2", doc="condition2", default=False, properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.my_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.my_variable"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition1': ParamOption(option_3)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.my_variable_0"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.condition2': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_leadership/tiramisu/base.py b/tests/dictionaries/10load_leadership/tiramisu/base.py index 166d9503a..ed2077590 100644 --- a/tests/dictionaries/10load_leadership/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership/tiramisu/multi.py b/tests/dictionaries/10load_leadership/tiramisu/multi.py index 8a46725c7..63bc34eeb 100644 --- a/tests/dictionaries/10load_leadership/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py index 9efbd12a2..3d2bb2493 100644 --- a/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_default_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py index c7080fab8..096b2e50b 100644 --- a/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_default_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/base.py index 6e4fd6a5e..2ce140485 100644 --- a/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_5 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/multi.py index e43c1145d..ffed23007 100644 --- a/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_default_multi_auto/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, default_multi="value", properties=frozenset({"mandatory", "standard"})) option_7 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py index 388079c57..636aad463 100644 --- a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/base.py @@ -1,28 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, optiondescription_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py index 4d3bcde2f..9cfc91f93 100644 --- a/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_default_submulti/tiramisu/multi.py @@ -1,36 +1,22 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_7 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_7 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_8 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_5 = Leadership(name="leader", doc="leader", children=[option_6, option_7, option_8], properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, optiondescription_5], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_14 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_15 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_16 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_15 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_16 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_13 = Leadership(name="leader", doc="leader", children=[option_14, option_15, option_16], properties=frozenset({"standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12, optiondescription_13], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/base.py b/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/base.py index 77051bdba..eff87f775 100644 --- a/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/base.py @@ -1,27 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_5 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_6 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_5 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_6 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5, option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/multi.py b/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/multi.py index a7224b7bd..0cd780497 100644 --- a/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_default_submulti_auto/tiramisu/multi.py @@ -1,34 +1,20 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_5 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_6 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_7 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[optiondescription_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="leader", doc="leader", multi=True, default=["leader"], properties=frozenset({"mandatory", "notempty", "standard"})) -option_13 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=['value'], properties=frozenset({"mandatory", "notempty", "standard"})) -option_14 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=['value1', 'value2'], properties=frozenset({"mandatory", "notempty", "standard"})) +option_13 = StrOption(name="follower1", doc="follower1", multi=submulti, default_multi=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) +option_14 = StrOption(name="follower2", doc="follower2", multi=submulti, default_multi=["value1", "value2"], properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = Leadership(name="leader", doc="leader", children=[option_12, option_13, option_14], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="general", doc="general", children=[optiondescription_11], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py index 67d650956..f7b3b90de 100644 --- a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, default=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py index e18cecb13..38677519c 100644 --- a/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_defaultmulti_leader/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="leader", multi=True, default=["non"], default_multi="non", properties=frozenset({"mandatory", "notempty", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=["value"], properties=frozenset({"mandatory", "notempty", "standard"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_description/tiramisu/base.py b/tests/dictionaries/10load_leadership_description/tiramisu/base.py index 2afb3df88..dc43965c8 100644 --- a/tests/dictionaries/10load_leadership_description/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_description/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_description/tiramisu/multi.py b/tests/dictionaries/10load_leadership_description/tiramisu/multi.py index d81fb489b..bce035e8c 100644 --- a/tests/dictionaries/10load_leadership_description/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_description/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_name/tiramisu/base.py b/tests/dictionaries/10load_leadership_name/tiramisu/base.py index 95cbd6912..640cb7c31 100644 --- a/tests/dictionaries/10load_leadership_name/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_name/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_name/tiramisu/multi.py b/tests/dictionaries/10load_leadership_name/tiramisu/multi.py index e55550e69..383d19375 100644 --- a/tests/dictionaries/10load_leadership_name/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_name/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}" dict_env['default_2.rougail.general1.other_name.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.other_name.follower2'] = "{{ rougail.general1.other_name.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py b/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py index dcd3d114b..a3a309cad 100644 --- a/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py +++ b/tests/dictionaries/10load_leadership_submulti/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py b/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py index 6d5e78cf2..1126500b1 100644 --- a/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py +++ b/tests/dictionaries/10load_leadership_submulti/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_1.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" dict_env['default_2.rougail.general1.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['default_2.rougail.general1.leader.follower2'] = "{{ rougail.general1.leader.follower1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_mandatory_relative_path/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_mandatory_relative_path/dictionaries/rougail/00-base.yml index acdc13d64..15624b30f 100644 --- a/tests/dictionaries/10load_mandatory_relative_path/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10load_mandatory_relative_path/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: condition: type: boolean diff --git a/tests/dictionaries/10load_mandatory_relative_path/tiramisu/base.py b/tests/dictionaries/10load_mandatory_relative_path/tiramisu/base.py index ed8e34ac0..4f2ca14e1 100644 --- a/tests/dictionaries/10load_mandatory_relative_path/tiramisu/base.py +++ b/tests/dictionaries/10load_mandatory_relative_path/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['mandatory_rougail.general.mode_conteneur_actif'] = "{% if _.condition == \"yes\" %}\ncondition is yes\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '_.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_mandatory_relative_path/tiramisu/multi.py b/tests/dictionaries/10load_mandatory_relative_path/tiramisu/multi.py index 4663ff63a..e2e5c283a 100644 --- a/tests/dictionaries/10load_mandatory_relative_path/tiramisu/multi.py +++ b/tests/dictionaries/10load_mandatory_relative_path/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['mandatory_1.rougail.general.mode_conteneur_actif'] = "{% if _.condition == \"yes\" %}\ncondition is yes\n{% endif %}\n" dict_env['mandatory_2.rougail.general.mode_conteneur_actif'] = "{% if _.condition == \"yes\" %}\ncondition is yes\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '_.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_mandatory_relative_path_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_mandatory_relative_path_variable/dictionaries/rougail/00-base.yml index c52db5443..f46661717 100644 --- a/tests/dictionaries/10load_mandatory_relative_path_variable/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10load_mandatory_relative_path_variable/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: condition: type: boolean diff --git a/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/base.py b/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/base.py index e104e3f0e..8ece77a5f 100644 --- a/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/base.py +++ b/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("mandatory"), ParamOption(option_3))), help_function=func['variable_to_property'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/multi.py b/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/multi.py index 360961111..e2be69fdd 100644 --- a/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/multi.py +++ b/tests/dictionaries/10load_mandatory_relative_path_variable/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", properties=frozenset({"standard", Calculation(func['variable_to_property'], Params((ParamValue("mandatory"), ParamOption(option_4))), help_function=func['variable_to_property'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py b/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py index 6698fbaa4..e9bb18316 100644 --- a/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py +++ b/tests/dictionaries/10load_mandatoryifin/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['mandatory_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['mandatory_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py b/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py index 885ccbd45..bd55c12e2 100644 --- a/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py +++ b/tests/dictionaries/10load_mandatoryifin/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['mandatory_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['mandatory_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['mandatory_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['mandatory_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py b/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py deleted file mode 100644 index f283bb4f2..000000000 --- a/tests/dictionaries/10load_mandatoryifnotin_noexist/tmp/base.py +++ /dev/null @@ -1,72 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("normal") -ALLOWED_LEADER_PROPERTIES.add("expert") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value) -def valid_with_jinja(warning=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warning: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['mandatory_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"non\" %}false{% else %}true{% endif %}" -dict_env['mandatory_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" or rougail.general.condition == \"non\" %}false{% else %}true{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = ChoiceOption(name="condition", doc="No change", values=('tous', 'authentifié', 'aucun'), default="tous", properties=frozenset({"mandatory", "normal"})) -option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}))})) -option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("mandatory")), kwargs={'__internal_jinja': ParamValue("mandatory_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}))})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"normal"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10load_multivalue/tiramisu/base.py b/tests/dictionaries/10load_multivalue/tiramisu/base.py index a75f5ca0e..9f75efeff 100644 --- a/tests/dictionaries/10load_multivalue/tiramisu/base.py +++ b/tests/dictionaries/10load_multivalue/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=["non", "oui"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_multivalue/tiramisu/multi.py b/tests/dictionaries/10load_multivalue/tiramisu/multi.py index 1180e7411..952fe69f0 100644 --- a/tests/dictionaries/10load_multivalue/tiramisu/multi.py +++ b/tests/dictionaries/10load_multivalue/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=["non", "oui"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10load_param_relative/dictionaries/rougail/00-base.yml b/tests/dictionaries/10load_param_relative/dictionaries/rougail/00-base.yml index 2d5da8de3..c6f0051fd 100644 --- a/tests/dictionaries/10load_param_relative/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/10load_param_relative/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: variable: relative: diff --git a/tests/dictionaries/10load_param_relative/tiramisu/base.py b/tests/dictionaries/10load_param_relative/tiramisu/base.py index f712b214c..dae3c00e9 100644 --- a/tests/dictionaries/10load_param_relative/tiramisu/base.py +++ b/tests/dictionaries/10load_param_relative/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"basic", "mandatory"})) option_4 = StrOption(name="relative", doc="relative", properties=frozenset({"basic", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.relative"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'variable': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10load_param_relative/tiramisu/multi.py b/tests/dictionaries/10load_param_relative/tiramisu/multi.py index a5d0eeca0..738b5f025 100644 --- a/tests/dictionaries/10load_param_relative/tiramisu/multi.py +++ b/tests/dictionaries/10load_param_relative/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" dict_env['disabled_2.rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"basic", "mandatory"})) option_5 = StrOption(name="relative", doc="relative", properties=frozenset({"basic", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.relative"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'variable': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10load_param_unknown_relative/tiramisu/base.py b/tests/dictionaries/10load_param_unknown_relative/tiramisu/base.py index 5da6e211a..5abf15e37 100644 --- a/tests/dictionaries/10load_param_unknown_relative/tiramisu/base.py +++ b/tests/dictionaries/10load_param_unknown_relative/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="relative", doc="relative", properties=frozenset({"basic", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.relative"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10load_param_unknown_relative/tiramisu/multi.py b/tests/dictionaries/10load_param_unknown_relative/tiramisu/multi.py index 1af00781a..eeb460c7a 100644 --- a/tests/dictionaries/10load_param_unknown_relative/tiramisu/multi.py +++ b/tests/dictionaries/10load_param_unknown_relative/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" dict_env['disabled_2.rougail.general.relative'] = "{% if variable is not defined %}\nvariable is undefined\n{% elif variable == \"no\" %}\nvariable is no\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="relative", doc="relative", properties=frozenset({"basic", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.relative"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)}), help_function=func['jinja_to_property_help'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/10valid_enum_accent/tiramisu/base.py b/tests/dictionaries/10valid_enum_accent/tiramisu/base.py index 89de9c406..e48ea2d12 100644 --- a/tests/dictionaries/10valid_enum_accent/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_accent/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py b/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py index 4f46b2c53..0bb438748 100644 --- a/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_accent/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c", "é"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_append/tmp/base.py b/tests/dictionaries/10valid_enum_append/tmp/base.py deleted file mode 100644 index d3743158a..000000000 --- a/tests/dictionaries/10valid_enum_append/tmp/base.py +++ /dev/null @@ -1,28 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("normal") -ALLOWED_LEADER_PROPERTIES.add("expert") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"expert"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=('c',), default="c", properties=frozenset({"expert", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") -optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"expert"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"expert"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_auto/tiramisu/base.py b/tests/dictionaries/10valid_enum_auto/tiramisu/base.py index 8890ec409..810589dbe 100644 --- a/tests/dictionaries/10valid_enum_auto/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_auto/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c"), default="c", properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_auto/tiramisu/multi.py b/tests/dictionaries/10valid_enum_auto/tiramisu/multi.py index 6a11b4be5..332d2dd10 100644 --- a/tests/dictionaries/10valid_enum_auto/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_auto/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c"), default="c", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10valid_enum_base/tiramisu/base.py b/tests/dictionaries/10valid_enum_base/tiramisu/base.py index 2eb06e556..d213a6889 100644 --- a/tests/dictionaries/10valid_enum_base/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_base/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_base/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base/tiramisu/multi.py index 9f2e609b5..70c7d3ca4 100644 --- a/tests/dictionaries/10valid_enum_base/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_base/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py index e89e143da..a350e0404 100644 --- a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c", None), default="c", properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py index f7c8ae475..cda122d77 100644 --- a/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_base_no_mandatory/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=("a", "b", "c", None), default="c", properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py index 2b101b6f1..2f4143e63 100644 --- a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/base.py @@ -1,29 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_5 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5, option_6], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py index 43bb071bf..3e9fe9045 100644 --- a/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_base_redefine/tiramisu/multi.py @@ -1,37 +1,21 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_6 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_7 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_7.impl_set_information('help', "bla bla bla") +option_7 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6, option_7], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_11 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_10 = OptionDescription(name="general", doc="general", children=[option_11], properties=frozenset({"advanced"})) option_13 = ChoiceOption(name="enumvar2", doc="multi", values=("a", "b", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_14 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"})) -option_14.impl_set_information('help', "bla bla bla") +option_14 = ChoiceOption(name="enumvar", doc="multi", values=("a", "c"), default="c", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_12 = OptionDescription(name="enumfam", doc="enumfam", children=[option_13, option_14], properties=frozenset({"advanced"})) optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10, optiondescription_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_leader/tiramisu/base.py b/tests/dictionaries/10valid_enum_leader/tiramisu/base.py index 3858ff528..ccd28ca2f 100644 --- a/tests/dictionaries/10valid_enum_leader/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_leader/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_6 = ChoiceOption(name="follower1", doc="follower1", values=("a", "b", "c"), multi=True, default_multi="a", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py b/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py index 0b163fb2f..c1d98499a 100644 --- a/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_leader/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) option_7 = ChoiceOption(name="follower1", doc="follower1", values=("a", "b", "c"), multi=True, default_multi="a", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py b/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py index 510159895..bee3f4530 100644 --- a/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_mandatory/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="a", properties=frozenset({"advanced", "mandatory"})) diff --git a/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py b/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py index 447d880f3..91a0d6cf3 100644 --- a/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_mandatory/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", "c"), default="a", properties=frozenset({"advanced", "mandatory"})) diff --git a/tests/dictionaries/10valid_enum_multi/tiramisu/base.py b/tests/dictionaries/10valid_enum_multi/tiramisu/base.py index 9ecff0375..e6c29e018 100644 --- a/tests/dictionaries/10valid_enum_multi/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = ChoiceOption(name="multi", doc="multi", values=("a", "b", "c"), multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py b/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py index 1f3520d53..f95be7f33 100644 --- a/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = ChoiceOption(name="multi", doc="multi", values=("a", "b", "c"), multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10valid_enum_none/tiramisu/base.py b/tests/dictionaries/10valid_enum_none/tiramisu/base.py index edb1b3a9c..31c2e2d57 100644 --- a/tests/dictionaries/10valid_enum_none/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_none/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_none/tiramisu/multi.py b/tests/dictionaries/10valid_enum_none/tiramisu/multi.py index a62254a64..6828b5fd8 100644 --- a/tests/dictionaries/10valid_enum_none/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_none/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="multi", values=("a", "b", None), default="b", properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_number/tiramisu/base.py b/tests/dictionaries/10valid_enum_number/tiramisu/base.py index 298219430..e11135fba 100644 --- a/tests/dictionaries/10valid_enum_number/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_number/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_number/tiramisu/multi.py b/tests/dictionaries/10valid_enum_number/tiramisu/multi.py index 5ba6e229a..709a390b3 100644 --- a/tests/dictionaries/10valid_enum_number/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_number/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=1, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py index df03eb71b..c2a72e59d 100644 --- a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py index c0f8bbea0..ea7958f92 100644 --- a/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_numberdefault/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="enumvar", values=(1, 2, 3), default=3, properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py b/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py index 04050966a..fb2ef71ca 100644 --- a/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_param_empty/tiramisu/base.py @@ -1,26 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_3.impl_set_information('help', "bla bla bla") +option_3 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_2 = OptionDescription(name="enumfam", doc="enumfam", children=[option_3], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py b/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py index 8e8ae7a7a..feb0fb115 100644 --- a/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_param_empty/tiramisu/multi.py @@ -1,31 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_4.impl_set_information('help', "bla bla bla") +option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) -option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_8.impl_set_information('help', "bla bla bla") +option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"advanced"})) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"advanced"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py index 50d52e45c..6644f18fc 100644 --- a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py index 8f88dee65..5cae2bbbc 100644 --- a/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_param_empty2/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"advanced"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_quote/tiramisu/base.py b/tests/dictionaries/10valid_enum_quote/tiramisu/base.py index 9f4e264f5..b5b39e2e4 100644 --- a/tests/dictionaries/10valid_enum_quote/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_quote/tiramisu/base.py @@ -1,28 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"advanced"})) -option_5 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"})) -option_5.impl_set_information('help', "bla bla bla") +option_5 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_4 = OptionDescription(name="enumfam", doc="enumfam", children=[option_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"advanced"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py b/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py index 14bbda64a..85d2a9208 100644 --- a/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_quote/tiramisu/multi.py @@ -1,35 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"advanced"})) -option_6 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"})) -option_6.impl_set_information('help', "bla bla bla") +option_6 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_5 = OptionDescription(name="enumfam", doc="enumfam", children=[option_6], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"advanced"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"advanced"})) option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "mandatory"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"advanced"})) -option_12 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"})) -option_12.impl_set_information('help', "bla bla bla") +option_12 = ChoiceOption(name="enumvar", doc="multi", values=("quote'", "quote\"", "quote\"'"), default="quote'", properties=frozenset({"advanced", "mandatory"}), informations={'help': 'bla bla bla'}) optiondescription_11 = OptionDescription(name="enumfam", doc="enumfam", children=[option_12], properties=frozenset({"advanced"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"advanced"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/10valid_enum_value/tiramisu/base.py b/tests/dictionaries/10valid_enum_value/tiramisu/base.py index aeee43819..9edb490de 100644 --- a/tests/dictionaries/10valid_enum_value/tiramisu/base.py +++ b/tests/dictionaries/10valid_enum_value/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=("a", "b", "c"), default="b", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10valid_enum_value/tiramisu/multi.py b/tests/dictionaries/10valid_enum_value/tiramisu/multi.py index b998c4d2b..6637dd090 100644 --- a/tests/dictionaries/10valid_enum_value/tiramisu/multi.py +++ b/tests/dictionaries/10valid_enum_value/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=("a", "b", "c"), default="b", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml b/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.yml similarity index 90% rename from tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml rename to tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.yml index 43188bdc7..e15a955ef 100644 --- a/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.xml +++ b/tests/dictionaries/10valid_enum_variables/dictionaries/rougail/00-base.yml @@ -1,10 +1,8 @@ --- version: '1.0' source_variable_1: - multi: true default: val1 source_variable_2: - multi: true default: val2 my_variable: type: choice @@ -13,3 +11,4 @@ my_variable: variable: rougail.source_variable_1 - type: variable variable: rougail.source_variable_2 + default: val1 diff --git a/tests/dictionaries/10valid_enum_variables/makedict/after.json b/tests/dictionaries/10valid_enum_variables/makedict/after.json new file mode 100644 index 000000000..6173313f2 --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/makedict/after.json @@ -0,0 +1,14 @@ +{ + "rougail.source_variable_1": { + "owner": "default", + "value": "val1" + }, + "rougail.source_variable_2": { + "owner": "default", + "value": "val2" + }, + "rougail.my_variable": { + "owner": "default", + "value": "val1" + } +} diff --git a/tests/dictionaries/10valid_enum_variables/makedict/base.json b/tests/dictionaries/10valid_enum_variables/makedict/base.json new file mode 100644 index 000000000..c9f35ac65 --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/makedict/base.json @@ -0,0 +1,5 @@ +{ + "rougail.source_variable_1": "val1", + "rougail.source_variable_2": "val2", + "rougail.my_variable": "val1" +} diff --git a/tests/dictionaries/10valid_enum_variables/makedict/before.json b/tests/dictionaries/10valid_enum_variables/makedict/before.json new file mode 100644 index 000000000..6173313f2 --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/makedict/before.json @@ -0,0 +1,14 @@ +{ + "rougail.source_variable_1": { + "owner": "default", + "value": "val1" + }, + "rougail.source_variable_2": { + "owner": "default", + "value": "val2" + }, + "rougail.my_variable": { + "owner": "default", + "value": "val1" + } +} diff --git a/tests/dictionaries/10valid_enum_variables/makedict/mandatory.json b/tests/dictionaries/10valid_enum_variables/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/10valid_enum_variables/tiramisu/base.py b/tests/dictionaries/10valid_enum_variables/tiramisu/base.py new file mode 100644 index 000000000..f7fefc0ab --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/tiramisu/base.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="source_variable_1", doc="source_variable_1", default="val1", properties=frozenset({"mandatory", "standard"})) +option_3 = StrOption(name="source_variable_2", doc="source_variable_2", default="val2", properties=frozenset({"mandatory", "standard"})) +option_4 = ChoiceOption(name="my_variable", doc="my_variable", values=(Calculation(func['calc_value'], Params((ParamOption(option_2)))), Calculation(func['calc_value'], Params((ParamOption(option_3))))), default="val1", properties=frozenset({"mandatory", "standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3, option_4], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/10valid_enum_variables/tiramisu/multi.py b/tests/dictionaries/10valid_enum_variables/tiramisu/multi.py new file mode 100644 index 000000000..997c732e2 --- /dev/null +++ b/tests/dictionaries/10valid_enum_variables/tiramisu/multi.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="source_variable_1", doc="source_variable_1", default="val1", properties=frozenset({"mandatory", "standard"})) +option_4 = StrOption(name="source_variable_2", doc="source_variable_2", default="val2", properties=frozenset({"mandatory", "standard"})) +option_5 = ChoiceOption(name="my_variable", doc="my_variable", values=(Calculation(func['calc_value'], Params((ParamOption(option_3)))), Calculation(func['calc_value'], Params((ParamOption(option_4))))), default="val1", properties=frozenset({"mandatory", "standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4, option_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_8 = StrOption(name="source_variable_1", doc="source_variable_1", default="val1", properties=frozenset({"mandatory", "standard"})) +option_9 = StrOption(name="source_variable_2", doc="source_variable_2", default="val2", properties=frozenset({"mandatory", "standard"})) +option_10 = ChoiceOption(name="my_variable", doc="my_variable", values=(Calculation(func['calc_value'], Params((ParamOption(option_8)))), Calculation(func['calc_value'], Params((ParamOption(option_9))))), default="val1", properties=frozenset({"mandatory", "standard"})) +optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, option_9, option_10], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py index 286591184..84d5609e1 100644 --- a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py +++ b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/base.py @@ -1,74 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" dict_env['hidden_rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" dict_env['frozen_rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py index e88eec821..a1723e38e 100644 --- a/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py +++ b/tests/dictionaries/11autosave_hidden_frozenifin/tiramisu/multi.py @@ -1,77 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" dict_env['hidden_1.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" dict_env['frozen_1.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" dict_env['default_2.rougail.general.autosavevar'] = "{{ \"oui\" | calc_val }}" dict_env['hidden_2.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" dict_env['frozen_2.rougail.general.autosavevar'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="autosavevar", doc="autosave variable", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"basic", "force_store_value", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help']), Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.general.autosavevar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py index 9cd462db0..db2645a49 100644 --- a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py index 8958576e1..c3da091ca 100644 --- a/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py index 560d89272..dee8f6882 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py index f0b014718..1ed3b645d 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist_boolean/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = BoolOption(name="condition", doc="condition", default=True, properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py index 5b6f8e025..38572f3e3 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py index 2a6c60776..5d6b221f6 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist_boolean2/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = BoolOption(name="condition", doc="condition", default=False, properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py index c28328c7c..eb6f7fbd5 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py index 154e2ad47..ce2874b6b 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist_disabled/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py index 6de972144..d9a3b0953 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py index be7860a0f..791ea6f83 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist_multi/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py index 9cd462db0..db2645a49 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py +++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) option_5 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_3)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py index 8958576e1..c3da091ca 100644 --- a/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py +++ b/tests/dictionaries/11disabled_if_in_filelist_same_name/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) option_6 = BoolOption(name="mode_conteneur_actif2", doc="No change", default=True, properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py index 5a933d8ff..2d5c54738 100644 --- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py +++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py index 3f5c30368..726d1fbb7 100644 --- a/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py +++ b/tests/dictionaries/11disabledifin_filelist_notexist/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py index 5a933d8ff..2d5c54738 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py index 3f5c30368..726d1fbb7 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py index 5a933d8ff..2d5c54738 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py index 3f5c30368..726d1fbb7 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py index e7d4752ec..f3e2929f0 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = ChoiceOption(name="condition", doc="No change", values=("non", "statique"), default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py index 302615b8a..c33c1584f 100644 --- a/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py +++ b/tests/dictionaries/11disabledifnotin_filelist_notexist_validenum/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = ChoiceOption(name="condition", doc="No change", values=("non", "statique"), default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py b/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py index b269cd8a5..47b289da7 100644 --- a/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py +++ b/tests/dictionaries/11fill_multi_calc_val/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py b/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py index 5d20a36a7..90a458ae0 100644 --- a/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py +++ b/tests/dictionaries/11fill_multi_calc_val/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n" dict_env['default_2.rougail.var2'] = "{% for val in calc_value(rougail.var1, multi=true) %}\n{{ val }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_3)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py index 513c7cfb4..6fc49d860 100644 --- a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py +++ b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="var1", doc="var1", multi=True, default=["no", "yes", "maybe"], default_multi="no", properties=frozenset({"mandatory", "notempty", "standard"})) option_3 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py index 146999fe0..5966272a9 100644 --- a/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py +++ b/tests/dictionaries/11fill_multi_calc_val_multi/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n" dict_env['default_2.rougail.var2'] = "{% for val in calc_value(rougail.var1) %}\n{{ val }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="var1", doc="var1", multi=True, default=["no", "yes", "maybe"], default_multi="no", properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = StrOption(name="var2", doc="var2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.var1': ParamOption(option_3)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_function/tiramisu/base.py b/tests/dictionaries/11valid_enum_function/tiramisu/base.py index 582d1155a..8097ed0d8 100644 --- a/tests/dictionaries/11valid_enum_function/tiramisu/base.py +++ b/tests/dictionaries/11valid_enum_function/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['choices_rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = ChoiceOption(name="var", doc="New variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_rougail.general.var"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_function/tiramisu/multi.py b/tests/dictionaries/11valid_enum_function/tiramisu/multi.py index d9c0984f1..5fdbee409 100644 --- a/tests/dictionaries/11valid_enum_function/tiramisu/multi.py +++ b/tests/dictionaries/11valid_enum_function/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['choices_1.rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n" dict_env['choices_2.rougail.general.var'] = "{% for n in trange(0, 10) %}\n{{ n }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = ChoiceOption(name="var", doc="New variable", values=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("choices_1.rougail.general.var"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(True)})), default=9, properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_relative_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/11valid_enum_relative_variable/dictionaries/rougail/00-base.yml index 94f06824d..44960abc2 100644 --- a/tests/dictionaries/11valid_enum_relative_variable/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/11valid_enum_relative_variable/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: mode_conteneur_actif: type: choice diff --git a/tests/dictionaries/11valid_enum_relative_variable/tiramisu/base.py b/tests/dictionaries/11valid_enum_relative_variable/tiramisu/base.py index 596bb5774..7186c8b62 100644 --- a/tests/dictionaries/11valid_enum_relative_variable/tiramisu/base.py +++ b/tests/dictionaries/11valid_enum_relative_variable/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var", doc="var", multi=True, default=["a", "b", "c"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) option_3 = ChoiceOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", values=Calculation(func['calc_value'], Params((ParamOption(option_4)))), default="a", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_relative_variable/tiramisu/multi.py b/tests/dictionaries/11valid_enum_relative_variable/tiramisu/multi.py index 25ef57d5f..d39078d02 100644 --- a/tests/dictionaries/11valid_enum_relative_variable/tiramisu/multi.py +++ b/tests/dictionaries/11valid_enum_relative_variable/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="var", doc="var", multi=True, default=["a", "b", "c"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = ChoiceOption(name="mode_conteneur_actif", doc="mode_conteneur_actif", values=Calculation(func['calc_value'], Params((ParamOption(option_5)))), default="a", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_variable/tiramisu/base.py b/tests/dictionaries/11valid_enum_variable/tiramisu/base.py index f333e92ab..69e613d5a 100644 --- a/tests/dictionaries/11valid_enum_variable/tiramisu/base.py +++ b/tests/dictionaries/11valid_enum_variable/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var", doc="New variable", multi=True, default=["a", "b", "c"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_4)))), default="a", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py b/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py index f35fe4364..3922b64a6 100644 --- a/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py +++ b/tests/dictionaries/11valid_enum_variable/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="var", doc="New variable", multi=True, default=["a", "b", "c"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_5)))), default="a", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_base/tiramisu/base.py b/tests/dictionaries/12auto_base/tiramisu/base.py index 0b2c8a776..57e47aea6 100644 --- a/tests/dictionaries/12auto_base/tiramisu/base.py +++ b/tests/dictionaries/12auto_base/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_base/tiramisu/multi.py b/tests/dictionaries/12auto_base/tiramisu/multi.py index c4bc4864a..1ec95e9c3 100644 --- a/tests/dictionaries/12auto_base/tiramisu/multi.py +++ b/tests/dictionaries/12auto_base/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable/tiramisu/base.py b/tests/dictionaries/12auto_func_variable/tiramisu/base.py index bf9c93861..e768b3d32 100644 --- a/tests/dictionaries/12auto_func_variable/tiramisu/base.py +++ b/tests/dictionaries/12auto_func_variable/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable/tiramisu/multi.py index 34121aed0..58d99d502 100644 --- a/tests/dictionaries/12auto_func_variable/tiramisu/multi.py +++ b/tests/dictionaries/12auto_func_variable/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_func_variable_relative/dictionaries/rougail/00-base.yml index 110b2092c..e5676316e 100644 --- a/tests/dictionaries/12auto_func_variable_relative/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/12auto_func_variable_relative/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: var: hidden: true diff --git a/tests/dictionaries/12auto_func_variable_relative/tiramisu/base.py b/tests/dictionaries/12auto_func_variable_relative/tiramisu/base.py index c4c9e8ec8..15572de6d 100644 --- a/tests/dictionaries/12auto_func_variable_relative/tiramisu/base.py +++ b/tests/dictionaries/12auto_func_variable_relative/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var2", doc="var2", default="no", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable_relative/tiramisu/multi.py index b085eafcf..73ae4478d 100644 --- a/tests/dictionaries/12auto_func_variable_relative/tiramisu/multi.py +++ b/tests/dictionaries/12auto_func_variable_relative/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="var2", doc="var2", default="no", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_func_variable_relative_multi/dictionaries/rougail/00-base.yml index af78c42ea..12d90d9c8 100644 --- a/tests/dictionaries/12auto_func_variable_relative_multi/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/12auto_func_variable_relative_multi/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: var: hidden: true diff --git a/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/base.py b/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/base.py index 9e65e5bd6..eaf80d5fc 100644 --- a/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/base.py +++ b/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var2", doc="var2", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="var3", doc="var3", default="yes", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="var", doc="var", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_4)))), Calculation(func['calc_value'], Params((ParamOption(option_5))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/multi.py index 8b3e26c7b..2c671e52b 100644 --- a/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/multi.py +++ b/tests/dictionaries/12auto_func_variable_relative_multi/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="var2", doc="var2", default="no", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="var3", doc="var3", default="yes", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="var", doc="var", multi=True, default=[Calculation(func['calc_value'], Params((ParamOption(option_5)))), Calculation(func['calc_value'], Params((ParamOption(option_6))))], default_multi=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_parent/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_func_variable_relative_parent/dictionaries/rougail/00-base.yml index e77bed902..bbe23bd1e 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/12auto_func_variable_relative_parent/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: var: default: "no" diff --git a/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/base.py b/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/base.py index a7aea7c3b..b08beedb2 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/base.py +++ b/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="var", doc="var", default="no", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_3)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_4 = OptionDescription(name="fam1", doc="fam1", children=[option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/multi.py index 4fd4cc97b..33b6715a2 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/multi.py +++ b/tests/dictionaries/12auto_func_variable_relative_parent/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var", doc="var", default="no", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_5 = OptionDescription(name="fam1", doc="fam1", children=[option_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_parent_2/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_func_variable_relative_parent_2/dictionaries/rougail/00-base.yml index 054caa090..9fe16263e 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent_2/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/12auto_func_variable_relative_parent_2/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: fam2: var: diff --git a/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/base.py b/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/base.py index bd9493d14..1a60143c6 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/base.py +++ b/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="var", doc="var", default="no", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="fam2", doc="fam2", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/multi.py b/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/multi.py index d363c6e76..25a4c08a2 100644 --- a/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/multi.py +++ b/tests/dictionaries/12auto_func_variable_relative_parent_2/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="var", doc="var", default="no", properties=frozenset({"mandatory", "standard"})) optiondescription_4 = OptionDescription(name="fam2", doc="fam2", children=[option_5], properties=frozenset({"standard"})) option_7 = StrOption(name="var", doc="var", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/12auto_jinja_base/tiramisu/base.py b/tests/dictionaries/12auto_jinja_base/tiramisu/base.py index 0093e7fe5..16db0f5e4 100644 --- a/tests/dictionaries/12auto_jinja_base/tiramisu/base.py +++ b/tests/dictionaries/12auto_jinja_base/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py index ecd024658..66a0824c0 100644 --- a/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py +++ b/tests/dictionaries/12auto_jinja_base/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_if/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if/tiramisu/base.py index 40092b094..129125a0c 100644 --- a/tests/dictionaries/12auto_jinja_if/tiramisu/base.py +++ b/tests/dictionaries/12auto_jinja_if/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}" dict_env['default_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py index d1d5cf410..68c329460 100644 --- a/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py +++ b/tests/dictionaries/12auto_jinja_if/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}" dict_env['default_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general.mode_conteneur_actif1 == 'non' %}non{% else %}oui{% endif %}" dict_env['default_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.mode_conteneur_actif1 == \"non\" %}oui{% else %}non{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) diff --git a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py index 2284e36ca..7c0f08775 100644 --- a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py +++ b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" dict_env['default_rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) option_5 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py index d23e9c1d0..a27c5931f 100644 --- a/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py +++ b/tests/dictionaries/12auto_jinja_if_bool/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" dict_env['default_1.rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" dict_env['default_2.rougail.general.multi1'] = "{% if rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" dict_env['default_2.rougail.general.multi2'] = "{% if not rougail.general.bool %}\nTrue\nFalse\n{% else %}\nFalse\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = BoolOption(name="multi1", doc="multi1", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.multi1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_4)})), properties=frozenset({"standard"})) option_6 = BoolOption(name="multi2", doc="multi2", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.multi2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(True), 'rougail.general.bool': ParamOption(option_4)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py b/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py index 5bfe2a4d4..ea388ce42 100644 --- a/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py +++ b/tests/dictionaries/12auto_jinja_if_int/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}" dict_env['default_rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_3 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"standard"})) option_4 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py index 5d8c15bc0..487f5a43e 100644 --- a/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py +++ b/tests/dictionaries/12auto_jinja_if_int/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}" dict_env['default_1.rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}" dict_env['default_2.rougail.int1'] = "{% if rougail.bool %}1{% else %}2{% endif %}" dict_env['default_2.rougail.int2'] = "{% if not rougail.bool %}3{% else %}4{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) option_5 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_externalspacecondition/__init__.py b/tests/dictionaries/12auto_jinja_not_return_boolean/__init__.py similarity index 100% rename from tests/dictionaries/60extra_externalspacecondition/__init__.py rename to tests/dictionaries/12auto_jinja_not_return_boolean/__init__.py diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/dictionaries/rougail/00-base.yml b/tests/dictionaries/12auto_jinja_not_return_boolean/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..ecee09abb --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/dictionaries/rougail/00-base.yml @@ -0,0 +1,12 @@ +--- +version: '1.0' +var1: + default: 'no' +var2: + type: boolean + default: + type: jinja + jinja: | + {% if rougail.var1 == 'no' %} + false + {% endif %} diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/after.json b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/after.json new file mode 100644 index 000000000..d56fcb5d0 --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": "no" + }, + "rougail.var2": { + "owner": "default", + "value": false + } +} diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/base.json b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/base.json new file mode 100644 index 000000000..66dbe3f47 --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.var1": "no", + "rougail.var2": false +} diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/before.json b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/before.json new file mode 100644 index 000000000..d56fcb5d0 --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.var1": { + "owner": "default", + "value": "no" + }, + "rougail.var2": { + "owner": "default", + "value": false + } +} diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/mandatory.json b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/base.py b/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/base.py new file mode 100644 index 000000000..43c8c25b7 --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/base.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.var2'] = "{% if rougail.var1 == 'no' %}\nfalse\n{% endif %}\n" +option_2 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "standard"})) +option_3 = BoolOption(name="var2", doc="var2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.var2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.var1': ParamOption(option_2)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, option_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/multi.py new file mode 100644 index 000000000..3c27f9798 --- /dev/null +++ b/tests/dictionaries/12auto_jinja_not_return_boolean/tiramisu/multi.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.var2'] = "{% if rougail.var1 == 'no' %}\nfalse\n{% endif %}\n" +dict_env['default_2.rougail.var2'] = "{% if rougail.var1 == 'no' %}\nfalse\n{% endif %}\n" +option_3 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "standard"})) +option_4 = BoolOption(name="var2", doc="var2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.var2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.var1': ParamOption(option_3)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, option_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_7 = StrOption(name="var1", doc="var1", default="no", properties=frozenset({"mandatory", "standard"})) +option_8 = BoolOption(name="var2", doc="var2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.var2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False), 'rougail.var1': ParamOption(option_7)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[option_7, option_8], properties=frozenset({"standard"})) +optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/12auto_jinja_set/tiramisu/base.py b/tests/dictionaries/12auto_jinja_set/tiramisu/base.py index 154a79b91..2bfb92660 100644 --- a/tests/dictionaries/12auto_jinja_set/tiramisu/base.py +++ b/tests/dictionaries/12auto_jinja_set/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}" dict_env['default_rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_3 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"standard"})) option_4 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_2)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py b/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py index f64724f2f..3bf8aa9d7 100644 --- a/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py +++ b/tests/dictionaries/12auto_jinja_set/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}" dict_env['default_1.rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}" dict_env['default_2.rougail.int1'] = "{%set bool1 = rougail.bool %}{% if bool1 %}1{% else %}2{% endif %}" dict_env['default_2.rougail.int2'] = "{%set bool1 = rougail.bool %}{% if not bool1 %}3{% else %}4{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="bool", doc="bool", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = IntOption(name="int1", doc="int1", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int1"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) option_5 = IntOption(name="int2", doc="int2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.int2"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False), 'rougail.bool': ParamOption(option_3)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_withoutparam/tiramisu/base.py b/tests/dictionaries/12auto_withoutparam/tiramisu/base.py index 18b8f0971..cca43bfda 100644 --- a/tests/dictionaries/12auto_withoutparam/tiramisu/base.py +++ b/tests/dictionaries/12auto_withoutparam/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py b/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py index c37c9e390..230809ff3 100644 --- a/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py +++ b/tests/dictionaries/12auto_withoutparam/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ calc_val() }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_information/tiramisu/base.py b/tests/dictionaries/13fill_information/tiramisu/base.py index 9359599a4..bb3a0289c 100644 --- a/tests/dictionaries/13fill_information/tiramisu/base.py +++ b/tests/dictionaries/13fill_information/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_information/tiramisu/multi.py b/tests/dictionaries/13fill_information/tiramisu/multi.py index 1a6e9a3d0..7b3c563c5 100644 --- a/tests/dictionaries/13fill_information/tiramisu/multi.py +++ b/tests/dictionaries/13fill_information/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.test_information': ParamInformation("test_information", None)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_information_multi/tiramisu/base.py b/tests/dictionaries/13fill_information_multi/tiramisu/base.py index 1f08de575..d030a1a10 100644 --- a/tests/dictionaries/13fill_information_multi/tiramisu/base.py +++ b/tests/dictionaries/13fill_information_multi/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_information_multi/tiramisu/multi.py b/tests/dictionaries/13fill_information_multi/tiramisu/multi.py index c20c073f3..91df75f9e 100644 --- a/tests/dictionaries/13fill_information_multi/tiramisu/multi.py +++ b/tests/dictionaries/13fill_information_multi/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.test_information | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), '__information.test_information': ParamInformation("test_information", [])})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option/tiramisu/base.py b/tests/dictionaries/13fill_option/tiramisu/base.py index d9d088350..cbbd88881 100644 --- a/tests/dictionaries/13fill_option/tiramisu/base.py +++ b/tests/dictionaries/13fill_option/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None, option=option_5)})), properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="od", doc="od", children=[option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option/tiramisu/multi.py b/tests/dictionaries/13fill_option/tiramisu/multi.py index 606d2e322..34098f5d5 100644 --- a/tests/dictionaries/13fill_option/tiramisu/multi.py +++ b/tests/dictionaries/13fill_option/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ __information.rougail.general.od.variable.test_information | calc_val }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_6 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__information.rougail.general.od.variable.test_information': ParamInformation("test_information", None, option=option_6)})), properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="od", doc="od", children=[option_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option_information/tiramisu/base.py b/tests/dictionaries/13fill_option_information/tiramisu/base.py index 124276461..72cd09089 100644 --- a/tests/dictionaries/13fill_option_information/tiramisu/base.py +++ b/tests/dictionaries/13fill_option_information/tiramisu/base.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamInformation("test_information", None, option=option_3)))), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option_information/tiramisu/multi.py b/tests/dictionaries/13fill_option_information/tiramisu/multi.py index 420ac2f35..f8e506a6e 100644 --- a/tests/dictionaries/13fill_option_information/tiramisu/multi.py +++ b/tests/dictionaries/13fill_option_information/tiramisu/multi.py @@ -1,71 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((ParamInformation("test_information", None, option=option_4)))), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option_information_param/tiramisu/base.py b/tests/dictionaries/13fill_option_information_param/tiramisu/base.py index 457e883cf..cdaee930c 100644 --- a/tests/dictionaries/13fill_option_information_param/tiramisu/base.py +++ b/tests/dictionaries/13fill_option_information_param/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ information }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'information': ParamInformation("test_information", None, option=option_3)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/13fill_option_information_param/tiramisu/multi.py b/tests/dictionaries/13fill_option_information_param/tiramisu/multi.py index 427aa2f07..88baa2513 100644 --- a/tests/dictionaries/13fill_option_information_param/tiramisu/multi.py +++ b/tests/dictionaries/13fill_option_information_param/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ information }}\n" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ information }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'information': ParamInformation("test_information", None, option=option_4)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/80auto_family/__init__.py b/tests/dictionaries/13fill_option_information_parent/__init__.py similarity index 100% rename from tests/dictionaries/80auto_family/__init__.py rename to tests/dictionaries/13fill_option_information_parent/__init__.py diff --git a/tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_option_information_parent/dictionaries/rougail/00-base.yml similarity index 50% rename from tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml rename to tests/dictionaries/13fill_option_information_parent/dictionaries/rougail/00-base.yml index 923ad537e..6647c8f4a 100644 --- a/tests/dictionaries/80fill_multi/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/13fill_option_information_parent/dictionaries/rougail/00-base.yml @@ -1,13 +1,14 @@ +version: '1.0' general: + variable: + type: string + description: No change + mandatory: false mode_conteneur_actif: type: string description: No change - hidden: true default: - type: jinja - jinja: '{{ "mode_conteneur_actif1" | calc_val }}' - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' + type: information + information: test_information + variable: rougail.general + mandatory: false diff --git a/tests/dictionaries/13fill_option_information_parent/informations.json b/tests/dictionaries/13fill_option_information_parent/informations.json new file mode 100644 index 000000000..e46077c56 --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/informations.json @@ -0,0 +1 @@ +{"rougail.general": "value"} diff --git a/tests/dictionaries/13fill_option_information_parent/makedict/after.json b/tests/dictionaries/13fill_option_information_parent/makedict/after.json new file mode 100644 index 000000000..7f08ef4fb --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.general.variable": { + "owner": "default", + "value": null + }, + "rougail.general.mode_conteneur_actif": { + "owner": "default", + "value": "value" + } +} diff --git a/tests/dictionaries/13fill_option_information_parent/makedict/base.json b/tests/dictionaries/13fill_option_information_parent/makedict/base.json new file mode 100644 index 000000000..bd4b110e3 --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.general.variable": null, + "rougail.general.mode_conteneur_actif": "value" +} diff --git a/tests/dictionaries/13fill_option_information_parent/makedict/before.json b/tests/dictionaries/13fill_option_information_parent/makedict/before.json new file mode 100644 index 000000000..7f08ef4fb --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.general.variable": { + "owner": "default", + "value": null + }, + "rougail.general.mode_conteneur_actif": { + "owner": "default", + "value": "value" + } +} diff --git a/tests/dictionaries/13fill_option_information_parent/makedict/mandatory.json b/tests/dictionaries/13fill_option_information_parent/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/13fill_option_information_parent/tiramisu/base.py b/tests/dictionaries/13fill_option_information_parent/tiramisu/base.py new file mode 100644 index 000000000..8ce63b912 --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/tiramisu/base.py @@ -0,0 +1,14 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) +information_0 = ParamInformation("test_information", None) +option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((information_0))), properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) +information_0.set_option(optiondescription_2) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/13fill_option_information_parent/tiramisu/multi.py b/tests/dictionaries/13fill_option_information_parent/tiramisu/multi.py new file mode 100644 index 000000000..8549150d9 --- /dev/null +++ b/tests/dictionaries/13fill_option_information_parent/tiramisu/multi.py @@ -0,0 +1,22 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) +information_0 = ParamInformation("test_information", None) +option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((information_0))), properties=frozenset({"standard"})) +optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) +information_0.set_option(optiondescription_3) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_9 = StrOption(name="variable", doc="No change", properties=frozenset({"standard"})) +information_1 = ParamInformation("test_information", None) +option_10 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['calc_value'], Params((information_1))), properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="general", doc="general", children=[option_9, option_10], properties=frozenset({"standard"})) +information_1.set_option(optiondescription_8) +optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/13fill_option_information_relative_path/dictionaries/rougail/00-base.yml b/tests/dictionaries/13fill_option_information_relative_path/dictionaries/rougail/00-base.yml index 8635fb109..14d8f5a2a 100644 --- a/tests/dictionaries/13fill_option_information_relative_path/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/13fill_option_information_relative_path/dictionaries/rougail/00-base.yml @@ -1,5 +1,5 @@ --- -version: '1.0' +version: '1.1' general: variable: variable2: diff --git a/tests/dictionaries/13fill_option_information_relative_path/tiramisu/base.py b/tests/dictionaries/13fill_option_information_relative_path/tiramisu/base.py index e2de6c7fa..02d74accf 100644 --- a/tests/dictionaries/13fill_option_information_relative_path/tiramisu/base.py +++ b/tests/dictionaries/13fill_option_information_relative_path/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.variable2'] = "{{ information }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"basic", "mandatory"})) option_4 = StrOption(name="variable2", doc="variable2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.variable2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'information': ParamInformation("test_information", None, option=option_3)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/13fill_option_information_relative_path/tiramisu/multi.py b/tests/dictionaries/13fill_option_information_relative_path/tiramisu/multi.py index 02ec65a51..adeb31690 100644 --- a/tests/dictionaries/13fill_option_information_relative_path/tiramisu/multi.py +++ b/tests/dictionaries/13fill_option_information_relative_path/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.variable2'] = "{{ information }}" dict_env['default_2.rougail.general.variable2'] = "{{ information }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"basic", "mandatory"})) option_5 = StrOption(name="variable2", doc="variable2", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.variable2"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'information': ParamInformation("test_information", None, option=option_4)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/15fill_autosave/tiramisu/base.py b/tests/dictionaries/15fill_autosave/tiramisu/base.py index a6d21b6c2..9980b2a44 100644 --- a/tests/dictionaries/15fill_autosave/tiramisu/base.py +++ b/tests/dictionaries/15fill_autosave/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"basic", "force_store_value"})) diff --git a/tests/dictionaries/15fill_autosave/tiramisu/multi.py b/tests/dictionaries/15fill_autosave/tiramisu/multi.py index bef3f3675..870adced3 100644 --- a/tests/dictionaries/15fill_autosave/tiramisu/multi.py +++ b/tests/dictionaries/15fill_autosave/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_6)})), properties=frozenset({"basic", "force_store_value"})) diff --git a/tests/dictionaries/15fill_base/tiramisu/base.py b/tests/dictionaries/15fill_base/tiramisu/base.py index e88b9ff62..ef1c42865 100644 --- a/tests/dictionaries/15fill_base/tiramisu/base.py +++ b/tests/dictionaries/15fill_base/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15fill_base/tiramisu/multi.py b/tests/dictionaries/15fill_base/tiramisu/multi.py index f7e39c068..e808a5fb7 100644 --- a/tests/dictionaries/15fill_base/tiramisu/multi.py +++ b/tests/dictionaries/15fill_base/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15fill_mandatory/tiramisu/base.py b/tests/dictionaries/15fill_mandatory/tiramisu/base.py index 479c233cb..01bddf022 100644 --- a/tests/dictionaries/15fill_mandatory/tiramisu/base.py +++ b/tests/dictionaries/15fill_mandatory/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_4)})), properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/15fill_mandatory/tiramisu/multi.py b/tests/dictionaries/15fill_mandatory/tiramisu/multi.py index aea5d148a..7008d8c38 100644 --- a/tests/dictionaries/15fill_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/15fill_mandatory/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ rougail.general.mode_conteneur_actif1 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.mode_conteneur_actif1': ParamOption(option_5)})), properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/15fill_number/tiramisu/base.py b/tests/dictionaries/15fill_number/tiramisu/base.py index b66275800..dd6ca4820 100644 --- a/tests/dictionaries/15fill_number/tiramisu/base.py +++ b/tests/dictionaries/15fill_number/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15fill_number/tiramisu/multi.py b/tests/dictionaries/15fill_number/tiramisu/multi.py index 03114a222..4c0127099 100644 --- a/tests/dictionaries/15fill_number/tiramisu/multi.py +++ b/tests/dictionaries/15fill_number/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ 3 | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = IntOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("number"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15fill_only_optional/tiramisu/base.py b/tests/dictionaries/15fill_only_optional/tiramisu/base.py index 80e0bd820..536cd6af9 100644 --- a/tests/dictionaries/15fill_only_optional/tiramisu/base.py +++ b/tests/dictionaries/15fill_only_optional/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15fill_only_optional/tiramisu/multi.py b/tests/dictionaries/15fill_only_optional/tiramisu/multi.py index 6e3666fe0..08f9308ea 100644 --- a/tests/dictionaries/15fill_only_optional/tiramisu/multi.py +++ b/tests/dictionaries/15fill_only_optional/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{% if __mode_conteneur_actif4 is defined %}\n{{ __mode_conteneur_actif4 }}\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/15load_autosave/tiramisu/base.py b/tests/dictionaries/15load_autosave/tiramisu/base.py index 826c3e5bd..da37f3891 100644 --- a/tests/dictionaries/15load_autosave/tiramisu/base.py +++ b/tests/dictionaries/15load_autosave/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/15load_autosave/tiramisu/multi.py b/tests/dictionaries/15load_autosave/tiramisu/multi.py index 4b1a4504b..93f98bf4a 100644 --- a/tests/dictionaries/15load_autosave/tiramisu/multi.py +++ b/tests/dictionaries/15load_autosave/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "force_store_value", "mandatory"})) optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py b/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py index a21ed0156..fca22639d 100644 --- a/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py +++ b/tests/dictionaries/15load_autosaveexpert/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "force_store_value", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py b/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py index 0e0b70bd7..1b60f91a9 100644 --- a/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py +++ b/tests/dictionaries/15load_autosaveexpert/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = BoolOption(name="server_deployed", doc="server_deployed", default=True, properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"advanced", "force_store_value", "mandatory"})) optiondescription_4 = OptionDescription(name="general", doc="général", children=[option_5], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/20family_append/tiramisu/base.py b/tests/dictionaries/20family_append/tiramisu/base.py index 55c58476f..dfb2cc097 100644 --- a/tests/dictionaries/20family_append/tiramisu/base.py +++ b/tests/dictionaries/20family_append/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_append/tiramisu/multi.py b/tests/dictionaries/20family_append/tiramisu/multi.py index 11389b536..a2497c933 100644 --- a/tests/dictionaries/20family_append/tiramisu/multi.py +++ b/tests/dictionaries/20family_append/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_disabled/tiramisu/base.py b/tests/dictionaries/20family_disabled/tiramisu/base.py index cd98d6888..1c1a6a357 100644 --- a/tests/dictionaries/20family_disabled/tiramisu/base.py +++ b/tests/dictionaries/20family_disabled/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"disabled", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_disabled/tiramisu/multi.py b/tests/dictionaries/20family_disabled/tiramisu/multi.py index 52d7e9062..b295753f9 100644 --- a/tests/dictionaries/20family_disabled/tiramisu/multi.py +++ b/tests/dictionaries/20family_disabled/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"disabled", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"disabled", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml index 11cc3a79b..2bbfc9664 100644 --- a/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic/dictionaries/rougail/00-base.yml @@ -1,19 +1,19 @@ +--- +version: '1.1' general: varname: type: string description: No change multi: true default: - - val1 - - val2 -dyn: + - val1 + - val2 +"dyn{{ suffix }}": type: dynamic dynamic: type: variable variable: rougail.general.varname - propertyerror: false vardyn: type: string description: No change mandatory: false -version: '1.1' diff --git a/tests/dictionaries/20family_dynamic/tiramisu/base.py b/tests/dictionaries/20family_dynamic/tiramisu/base.py index ee2309b43..7bd82377f 100644 --- a/tests/dictionaries/20family_dynamic/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic/tiramisu/base.py @@ -1,75 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic/tiramisu/multi.py b/tests/dictionaries/20family_dynamic/tiramisu/multi.py index c8edc428d..365de33cd 100644 --- a/tests/dictionaries/20family_dynamic/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic/tiramisu/multi.py @@ -1,82 +1,20 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4)))), children=[option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_12], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/20family_dynamic_1.1/tiramisu/base.py b/tests/dictionaries/20family_dynamic_1.1/tiramisu/base.py index ee2309b43..258553a17 100644 --- a/tests/dictionaries/20family_dynamic_1.1/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_1.1/tiramisu/base.py @@ -1,75 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_1.1/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_1.1/tiramisu/multi.py index c8edc428d..94faca927 100644 --- a/tests/dictionaries/20family_dynamic_1.1/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_1.1/tiramisu/multi.py @@ -1,82 +1,20 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_12], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/80base_file_mode_wrong_type/__init__.py b/tests/dictionaries/20family_dynamic_1_0/__init__.py similarity index 100% rename from tests/dictionaries/80base_file_mode_wrong_type/__init__.py rename to tests/dictionaries/20family_dynamic_1_0/__init__.py diff --git a/tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_1_0/dictionaries/rougail/00-base.yml similarity index 81% rename from tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml rename to tests/dictionaries/20family_dynamic_1_0/dictionaries/rougail/00-base.yml index f6b8adb70..372990978 100644 --- a/tests/dictionaries/80family_dynamic_with_family/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_1_0/dictionaries/rougail/00-base.yml @@ -1,17 +1,17 @@ +--- +version: '1.0' general: varname: type: string description: No change multi: true default: - - val1 - - val2 + - val1 + - val2 dyn: type: dynamic variable: rougail.general.varname vardyn: type: string description: No change - my_family: - vardyn2: {} -version: '1.0' + mandatory: false diff --git a/tests/dictionaries/20family_dynamic_1_0/makedict/after.json b/tests/dictionaries/20family_dynamic_1_0/makedict/after.json new file mode 100644 index 000000000..cfa084ee8 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/makedict/after.json @@ -0,0 +1,17 @@ +{ + "rougail.general.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_1_0/makedict/base.json b/tests/dictionaries/20family_dynamic_1_0/makedict/base.json new file mode 100644 index 000000000..4db75edda --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/makedict/base.json @@ -0,0 +1,8 @@ +{ + "rougail.general.varname": [ + "val1", + "val2" + ], + "rougail.dynval1.vardyn": null, + "rougail.dynval2.vardyn": null +} diff --git a/tests/dictionaries/20family_dynamic_1_0/makedict/before.json b/tests/dictionaries/20family_dynamic_1_0/makedict/before.json new file mode 100644 index 000000000..cfa084ee8 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/makedict/before.json @@ -0,0 +1,17 @@ +{ + "rougail.general.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_1_0/makedict/mandatory.json b/tests/dictionaries/20family_dynamic_1_0/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/20family_dynamic_1_0/tiramisu/base.py b/tests/dictionaries/20family_dynamic_1_0/tiramisu/base.py new file mode 100644 index 000000000..258553a17 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/tiramisu/base.py @@ -0,0 +1,13 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) +option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_1_0/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_1_0/tiramisu/multi.py new file mode 100644 index 000000000..94faca927 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_1_0/tiramisu/multi.py @@ -0,0 +1,20 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) +option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_6], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_10 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) +option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_12], properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/80check_self/__init__.py b/tests/dictionaries/20family_dynamic_both/__init__.py similarity index 100% rename from tests/dictionaries/80check_self/__init__.py rename to tests/dictionaries/20family_dynamic_both/__init__.py diff --git a/tests/dictionaries/20family_dynamic_both/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_both/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..2a32afd15 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/dictionaries/rougail/00-base.yml @@ -0,0 +1,11 @@ +--- +version: '1.1' +varname: + default: val2 +"dyn{{ suffix }}": + type: dynamic + dynamic: + - val1 + - type: variable + variable: rougail.varname + vardyn: diff --git a/tests/dictionaries/20family_dynamic_both/makedict/after.json b/tests/dictionaries/20family_dynamic_both/makedict/after.json new file mode 100644 index 000000000..60f6d227e --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/makedict/after.json @@ -0,0 +1,14 @@ +{ + "rougail.varname": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_both/makedict/base.json b/tests/dictionaries/20family_dynamic_both/makedict/base.json new file mode 100644 index 000000000..81d915d7e --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/makedict/base.json @@ -0,0 +1,5 @@ +{ + "rougail.dynval1.vardyn": null, + "rougail.dynval2.vardyn": null, + "rougail.varname": "val2" +} diff --git a/tests/dictionaries/20family_dynamic_both/makedict/before.json b/tests/dictionaries/20family_dynamic_both/makedict/before.json new file mode 100644 index 000000000..60f6d227e --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/makedict/before.json @@ -0,0 +1,14 @@ +{ + "rougail.varname": { + "owner": "default", + "value": "val2" + }, + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_both/makedict/mandatory.json b/tests/dictionaries/20family_dynamic_both/makedict/mandatory.json new file mode 100644 index 000000000..3cf9ddc26 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.dynval1.vardyn", "rougail.dynval2.vardyn"] \ No newline at end of file diff --git a/tests/dictionaries/20family_dynamic_both/tiramisu/base.py b/tests/dictionaries/20family_dynamic_both/tiramisu/base.py new file mode 100644 index 000000000..d684fa646 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/tiramisu/base.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="varname", doc="varname", default="val2", properties=frozenset({"mandatory", "standard"})) +option_4 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", Calculation(func['calc_value'], Params((ParamOption(option_2))))], children=[option_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_both/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_both/tiramisu/multi.py new file mode 100644 index 000000000..79805687e --- /dev/null +++ b/tests/dictionaries/20family_dynamic_both/tiramisu/multi.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="varname", doc="varname", default="val2", properties=frozenset({"mandatory", "standard"})) +option_5 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", Calculation(func['calc_value'], Params((ParamOption(option_3))))], children=[option_5], properties=frozenset({"basic"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="varname", doc="varname", default="val2", properties=frozenset({"mandatory", "standard"})) +option_10 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_9 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", Calculation(func['calc_value'], Params((ParamOption(option_8))))], children=[option_10], properties=frozenset({"basic"})) +optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[option_8, optiondescription_9], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml index ea39b9735..f7f275b31 100644 --- a/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_calc/dictionaries/rougail/00-base.yml @@ -8,7 +8,7 @@ general: default: - val1 - val2 -dyn: +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py index 2e7d65d55..b0f8319a5 100644 --- a/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_calc/tiramisu/base.py @@ -1,78 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ vardyn | calc_val }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) -option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_5, 'dynval1.vardyn', optiondescription_4)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_5, ['val1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py index 9f919c9fb..5ab8eaf11 100644 --- a/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_calc/tiramisu/multi.py @@ -1,87 +1,25 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ vardyn | calc_val }}\n" dict_env['default_2.rougail.new.newvar'] = "{{ vardyn | calc_val }}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) -option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_6, 'dynval1.vardyn', optiondescription_5)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_6, ['val1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) -option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_14, 'dynval1.vardyn', optiondescription_13)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'vardyn': ParamDynOption(option_14, ['val1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml index 012512f0f..a33f44cbd 100644 --- a/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_calc2/dictionaries/rougail/00-base.yml @@ -6,7 +6,7 @@ general: default: - val1 - val2 -dyn: +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py index 163baf147..d42dd19c2 100644 --- a/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_calc2/tiramisu/base.py @@ -1,79 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['frozen_rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -dict_env['hidden_rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['frozen_rougail.dyn{{ suffix }}.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" +dict_env['hidden_rougail.dyn{{ suffix }}'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_7 = StrOption(name="newvar", doc="newvar", properties=frozenset({"standard"})) -option_5 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])})) +option_5 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py index c4d719a73..b76e60564 100644 --- a/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_calc2/tiramisu/multi.py @@ -1,89 +1,27 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['frozen_1.rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -dict_env['hidden_1.rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -dict_env['frozen_2.rougail.dyn.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -dict_env['hidden_2.rougail.dyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['frozen_1.rougail.dyn{{ suffix }}.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" +dict_env['hidden_1.rougail.dyn{{ suffix }}'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" +dict_env['frozen_2.rougail.dyn{{ suffix }}.vardyn'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" +dict_env['hidden_2.rougail.dyn{{ suffix }}'] = "{% if rougail.new.newvar == \"non\" %}\nnewvar is non\n{% endif %}\n" option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_8 = StrOption(name="newvar", doc="newvar", properties=frozenset({"standard"})) -option_6 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])})) +option_6 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_1.rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_1.rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_16 = StrOption(name="newvar", doc="newvar", properties=frozenset({"standard"})) -option_14 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])})) +option_14 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen")), kwargs={'__internal_jinja': ParamValue("frozen_2.rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("hidden")), kwargs={'__internal_jinja': ParamValue("hidden_2.rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.new.newvar': ParamOption(option_16)}), help_function=func['jinja_to_property_help'])})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml index 074138ae2..83619fa01 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_calc_suffix/dictionaries/rougail/00-base.yml @@ -1,3 +1,4 @@ +--- version: '1.1' general: varname: @@ -5,9 +6,9 @@ general: description: No change multi: true default: - - val1 - - val2 -dyn: + - val1 + - val2 +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py index 34da7ea46..1d45f2834 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/base.py @@ -1,76 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py index 3513d41f6..94c4b6e1c 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_calc_suffix/tiramisu/multi.py @@ -1,76 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) option_8 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) @@ -78,7 +16,7 @@ optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescr option_12 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_14 = StrOption(name="vardyn", doc="No change", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) option_16 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_calc_suffix_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_calc_suffix_param/dictionaries/rougail/00-base.yml index afa7be452..dea01a876 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix_param/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_calc_suffix_param/dictionaries/rougail/00-base.yml @@ -1,12 +1,14 @@ +--- +version: '1.1' general: varname: type: string description: No change multi: true default: - - val1 - - val2 -dyn: + - val1 + - val2 +"dyn{{ suffix }}": type: dynamic dynamic: type: variable @@ -27,4 +29,3 @@ new: type: string description: No change mandatory: false -version: '1.1' diff --git a/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/base.py b/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/base.py index 31a68a438..dda37610b 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/base.py @@ -1,77 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['default_rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['default_rougail.dyn{{ suffix }}.vardyn'] = "{{ __suffix | calc_val }}" option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) -option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_5 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) option_7 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/multi.py index f83fa7577..932e21567 100644 --- a/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_calc_suffix_param/tiramisu/multi.py @@ -1,86 +1,24 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['default_1.rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}" -dict_env['default_2.rougail.dyn.vardyn'] = "{{ __suffix | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['default_1.rougail.dyn{{ suffix }}.vardyn'] = "{{ __suffix | calc_val }}" +dict_env['default_2.rougail.dyn{{ suffix }}.vardyn'] = "{{ __suffix | calc_val }}" option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) -option_6 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +option_6 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) option_8 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) -option_14 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +option_14 = StrOption(name="vardyn", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn{{ suffix }}.vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__suffix': ParamSuffix()})), properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) option_16 = StrOption(name="newvar", doc="No change", properties=frozenset({"standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml index 956ab2709..89e80a24e 100644 --- a/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_description/dictionaries/rougail/00-base.yml @@ -1,12 +1,14 @@ +--- +version: '1.1' general: varname: type: string description: No change multi: true default: - - val1 - - val2 -dyn: + - val1 + - val2 +"dyn{{ suffix }}": description: 'Dyn ' type: dynamic dynamic: @@ -17,4 +19,3 @@ dyn: type: string description: No change mandatory: false -version: '1.1' diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/base.py b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py index 2f78230f1..d2a21f95b 100644 --- a/tests/dictionaries/20family_dynamic_description/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_description/tiramisu/base.py @@ -1,75 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py index 449074fbc..a1ef712f1 100644 --- a/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_description/tiramisu/multi.py @@ -1,82 +1,20 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) option_12 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) -optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="Dyn ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[option_12], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/20family_dynamic_inside/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_inside/dictionaries/rougail/00-base.yml index f9ec5f7e2..1af7671da 100644 --- a/tests/dictionaries/20family_dynamic_inside/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_inside/dictionaries/rougail/00-base.yml @@ -1,14 +1,18 @@ --- -version: '1.0' -general: - varname: - multi: true - default: - - val1 - - val2 +version: '1.1' +varname: + multi: true + default: + - val1 + - val2 + "{{ suffix }}_dyn": type: dynamic - variable: rougail.general.varname + dynamic: + type: variable + variable: rougail.varname + propertyerror: false + allow_none: true var1: default: type: suffix @@ -20,3 +24,7 @@ general: default: type: variable variable: _.var1 + var4: + default: + type: variable + variable: rougail.val1_dyn.var1 diff --git a/tests/dictionaries/20family_dynamic_inside/makedict/after.json b/tests/dictionaries/20family_dynamic_inside/makedict/after.json index ce3a3ca09..a50b98a08 100644 --- a/tests/dictionaries/20family_dynamic_inside/makedict/after.json +++ b/tests/dictionaries/20family_dynamic_inside/makedict/after.json @@ -1,5 +1,5 @@ { - "rougail.general.varname": { + "rougail.varname": { "owner": "default", "value": [ "val1", @@ -18,6 +18,10 @@ "owner": "default", "value": "val1" }, + "rougail.val1_dyn.var4": { + "owner": "default", + "value": "val1" + }, "rougail.val2_dyn.var1": { "owner": "default", "value": "val2" @@ -29,5 +33,9 @@ "rougail.val2_dyn.var3": { "owner": "default", "value": "val2" + }, + "rougail.val2_dyn.var4": { + "owner": "default", + "value": "val1" } } diff --git a/tests/dictionaries/20family_dynamic_inside/makedict/base.json b/tests/dictionaries/20family_dynamic_inside/makedict/base.json index efa5b9474..bd9dceec5 100644 --- a/tests/dictionaries/20family_dynamic_inside/makedict/base.json +++ b/tests/dictionaries/20family_dynamic_inside/makedict/base.json @@ -1,12 +1,14 @@ { - "rougail.general.varname": [ + "rougail.varname": [ "val1", "val2" ], "rougail.val1_dyn.var1": "val1", "rougail.val1_dyn.var2": "val1", "rougail.val1_dyn.var3": "val1", + "rougail.val1_dyn.var4": "val1", "rougail.val2_dyn.var1": "val2", "rougail.val2_dyn.var2": "val2", - "rougail.val2_dyn.var3": "val2" + "rougail.val2_dyn.var3": "val2", + "rougail.val2_dyn.var4": "val1" } diff --git a/tests/dictionaries/20family_dynamic_inside/makedict/before.json b/tests/dictionaries/20family_dynamic_inside/makedict/before.json index ce3a3ca09..a50b98a08 100644 --- a/tests/dictionaries/20family_dynamic_inside/makedict/before.json +++ b/tests/dictionaries/20family_dynamic_inside/makedict/before.json @@ -1,5 +1,5 @@ { - "rougail.general.varname": { + "rougail.varname": { "owner": "default", "value": [ "val1", @@ -18,6 +18,10 @@ "owner": "default", "value": "val1" }, + "rougail.val1_dyn.var4": { + "owner": "default", + "value": "val1" + }, "rougail.val2_dyn.var1": { "owner": "default", "value": "val2" @@ -29,5 +33,9 @@ "rougail.val2_dyn.var3": { "owner": "default", "value": "val2" + }, + "rougail.val2_dyn.var4": { + "owner": "default", + "value": "val1" } } diff --git a/tests/dictionaries/20family_dynamic_inside/tiramisu/base.py b/tests/dictionaries/20family_dynamic_inside/tiramisu/base.py index 03c03e143..42e3cd6a5 100644 --- a/tests/dictionaries/20family_dynamic_inside/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_inside/tiramisu/base.py @@ -1,77 +1,15 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) -option_5 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) -option_6 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) -option_7 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5, option_6, option_7], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) +option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_4 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_5 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"})) +option_6 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"})) +option_7 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ['val1'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4, option_5, option_6, option_7], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_inside/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_inside/tiramisu/multi.py index 12a67568b..06a979f3a 100644 --- a/tests/dictionaries/20family_dynamic_inside/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_inside/tiramisu/multi.py @@ -1,86 +1,24 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) -option_6 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) -option_7 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_6)))), properties=frozenset({"mandatory", "standard"})) -option_8 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_6)))), properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6, option_7, option_8], properties=frozenset({"standard"})) -optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) +option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_5 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_6 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) +option_7 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) +option_8 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ['val1'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5, option_6, option_7, option_8], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_12 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) -option_14 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) -option_15 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_14)))), properties=frozenset({"mandatory", "standard"})) -option_16 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_14)))), properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14, option_15, option_16], properties=frozenset({"standard"})) -optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13], properties=frozenset({"standard"})) +option_11 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_13 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_14 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"})) +option_15 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"})) +option_16 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ['val1'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_12 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_11, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_13, option_14, option_15, option_16], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[option_11, optiondescription_12], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9]) diff --git a/tests/dictionaries/20family_dynamic_jinja/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_jinja/dictionaries/rougail/00-base.yml index dc81a440d..83f518378 100644 --- a/tests/dictionaries/20family_dynamic_jinja/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_jinja/dictionaries/rougail/00-base.yml @@ -8,7 +8,7 @@ general: default: - val1 - val2 -dyn: +"dyn{{ suffix }}": type: dynamic dynamic: type: jinja diff --git a/tests/dictionaries/20family_dynamic_jinja/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja/tiramisu/base.py index 6069905fb..8c0f058fd 100644 --- a/tests/dictionaries/20family_dynamic_jinja/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_jinja/tiramisu/base.py @@ -1,76 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['dynamic_rougail.dyn'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['dynamic_rougail.dyn{{ suffix }}'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_3)})), children=[option_5], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_3)})), children=[option_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_jinja/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja/tiramisu/multi.py index 1f80e96d7..e5f037ba3 100644 --- a/tests/dictionaries/20family_dynamic_jinja/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_jinja/tiramisu/multi.py @@ -1,84 +1,22 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -dict_env['dynamic_1.rougail.dyn'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" -dict_env['dynamic_2.rougail.dyn'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) +dict_env['dynamic_1.rougail.dyn{{ suffix }}'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" +dict_env['dynamic_2.rougail.dyn{{ suffix }}'] = "{% for val in rougail.general.varname %}\n{{ loop.index }}\n{% endfor %}\n" option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_1.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_4)})), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_1.rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_4)})), children=[option_6], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_10 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) option_12 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_11 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_2.rougail.dyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_10)})), children=[option_12], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("dynamic_2.rougail.dyn{{ suffix }}"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.general.varname': ParamOption(option_10)})), children=[option_12], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_9, optiondescription_11], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml index efe3e479f..1bf7fdf41 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_jinja_fill/dictionaries/rougail/00-base.yml @@ -7,7 +7,7 @@ general: default: - val1 - val2 -dyn: +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py index e73e51184..0803c9eec 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/base.py @@ -1,78 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ rougail.dynval1.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) -option_7 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_5, 'dynval1.vardyn', optiondescription_4)})), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_7 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_5, ['val1'])})), properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py index 3b45cd1fb..878f59a2f 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill/tiramisu/multi.py @@ -1,87 +1,25 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dynval1.vardyn }}" dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dynval1.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) -option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_6, 'dynval1.vardyn', optiondescription_5)})), properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_6, ['val1'])})), properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_14 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) -option_16 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_14, 'dynval1.vardyn', optiondescription_13)})), properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +option_16 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.vardyn': ParamDynOption(option_14, ['val1'])})), properties=frozenset({"standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/base.py index f9fb71fd6..9337a7b86 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/base.py @@ -1,78 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ rougail.val1_dyn.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) -option_7 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_5, 'val1_dyn.vardyn', optiondescription_4)})), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5], properties=frozenset({"standard"})) +option_7 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_5, ['val1'])})), properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/multi.py index 234199210..469bec313 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill2/tiramisu/multi.py @@ -1,87 +1,25 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ rougail.val1_dyn.vardyn }}" dict_env['default_2.rougail.new.newvar'] = "{{ rougail.val1_dyn.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) -option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_6, 'val1_dyn.vardyn', optiondescription_5)})), properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_6], properties=frozenset({"standard"})) +option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_6, ['val1'])})), properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_14 = StrOption(name="vardyn", doc="vardyn", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) -option_16 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_14, 'val1_dyn.vardyn', optiondescription_13)})), properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_14], properties=frozenset({"standard"})) +option_16 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.val1_dyn.vardyn': ParamDynOption(option_14, ['val1'])})), properties=frozenset({"standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/base.py index 227cb6eab..b5f8d89c0 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/base.py @@ -1,79 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) optiondescription_5 = OptionDescription(name="grp", doc="grp", children=[option_6], properties=frozenset({"basic"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[optiondescription_5], properties=frozenset({"basic"})) -option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_6, 'dynval1.grp.vardyn', optiondescription_4)})), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_5], properties=frozenset({"basic"})) +option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_6, ['val1'])})), properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_7], properties=frozenset({"basic"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/multi.py index e2ec32a56..7f8553848 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group/tiramisu/multi.py @@ -1,80 +1,18 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_7 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) optiondescription_6 = OptionDescription(name="grp", doc="grp", children=[option_7], properties=frozenset({"basic"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[optiondescription_6], properties=frozenset({"basic"})) -option_9 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_7, 'dynval1.grp.vardyn', optiondescription_5)})), properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_6], properties=frozenset({"basic"})) +option_9 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_7, ['val1'])})), properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="new", doc="new", children=[option_9], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_8], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) @@ -82,8 +20,8 @@ option_13 = StrOption(name="varname", doc="varname", multi=True, default=["val1" optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"standard"})) option_16 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) optiondescription_15 = OptionDescription(name="grp", doc="grp", children=[option_16], properties=frozenset({"basic"})) -optiondescription_14 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_13, notraisepropertyerror=True)))), children=[optiondescription_15], properties=frozenset({"basic"})) -option_18 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_16, 'dynval1.grp.vardyn', optiondescription_14)})), properties=frozenset({"standard"})) +optiondescription_14 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_13, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_15], properties=frozenset({"basic"})) +option_18 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_16, ['val1'])})), properties=frozenset({"standard"})) optiondescription_17 = OptionDescription(name="new", doc="new", children=[option_18], properties=frozenset({"standard"})) optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14, optiondescription_17], properties=frozenset({"basic"})) optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml index b16716cea..b85f7ae97 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/dictionaries/rougail/00-base.yml @@ -12,6 +12,8 @@ general: variable: rougail.general.varname grp: vardyn: + default: + type: 'suffix' new: newvar: type: string diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/after.json b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/after.json index 14886d47c..4165607eb 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/after.json +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/after.json @@ -8,14 +8,14 @@ }, "rougail.dynval1.grp.vardyn": { "owner": "default", - "value": null + "value": "val1" }, "rougail.dynval2.grp.vardyn": { "owner": "default", - "value": null + "value": "val2" }, "rougail.new.newvar": { "owner": "default", - "value": null + "value": "val1" } } diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/base.json b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/base.json index 1fd04a71c..22eac06d3 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/base.json +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/base.json @@ -3,7 +3,7 @@ "val1", "val2" ], - "rougail.dynval1.grp.vardyn": null, - "rougail.dynval2.grp.vardyn": null, - "rougail.new.newvar": null + "rougail.dynval1.grp.vardyn": "val1", + "rougail.dynval2.grp.vardyn": "val2", + "rougail.new.newvar": "val1" } diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/before.json b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/before.json index 14886d47c..4165607eb 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/before.json +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/before.json @@ -8,14 +8,14 @@ }, "rougail.dynval1.grp.vardyn": { "owner": "default", - "value": null + "value": "val1" }, "rougail.dynval2.grp.vardyn": { "owner": "default", - "value": null + "value": "val2" }, "rougail.new.newvar": { "owner": "default", - "value": null + "value": "val1" } } diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/mandatory.json b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/mandatory.json index 694f0ed89..0637a088a 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/mandatory.json +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/makedict/mandatory.json @@ -1 +1 @@ -["rougail.dynval1.grp.vardyn", "rougail.dynval2.grp.vardyn"] \ No newline at end of file +[] \ No newline at end of file diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py index a82a88519..ee61f193c 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/base.py @@ -1,79 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) -option_6 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) -optiondescription_5 = OptionDescription(name="grp", doc="grp", children=[option_6], properties=frozenset({"basic"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[optiondescription_5], properties=frozenset({"basic"})) -option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_6, 'dynval1.grp.vardyn', optiondescription_4)})), properties=frozenset({"standard"})) +option_6 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +optiondescription_5 = OptionDescription(name="grp", doc="grp", children=[option_6], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_5], properties=frozenset({"standard"})) +option_8 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_6, ['val1'])})), properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_7], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_7], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py index 7cfc6e9b0..c0ef6da7d 100644 --- a/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_jinja_fill_sub_group_2/tiramisu/multi.py @@ -1,90 +1,28 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dynval1.grp.vardyn }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) -option_7 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) -optiondescription_6 = OptionDescription(name="grp", doc="grp", children=[option_7], properties=frozenset({"basic"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[optiondescription_6], properties=frozenset({"basic"})) -option_9 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_7, 'dynval1.grp.vardyn', optiondescription_5)})), properties=frozenset({"standard"})) +option_7 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +optiondescription_6 = OptionDescription(name="grp", doc="grp", children=[option_7], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_6], properties=frozenset({"standard"})) +option_9 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_7, ['val1'])})), properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="new", doc="new", children=[option_9], properties=frozenset({"standard"})) -optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_8], properties=frozenset({"basic"})) -optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_8], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_13 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"standard"})) -option_16 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) -optiondescription_15 = OptionDescription(name="grp", doc="grp", children=[option_16], properties=frozenset({"basic"})) -optiondescription_14 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_13, notraisepropertyerror=True)))), children=[optiondescription_15], properties=frozenset({"basic"})) -option_18 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_16, 'dynval1.grp.vardyn', optiondescription_14)})), properties=frozenset({"standard"})) +option_16 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +optiondescription_15 = OptionDescription(name="grp", doc="grp", children=[option_16], properties=frozenset({"standard"})) +optiondescription_14 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_13, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[optiondescription_15], properties=frozenset({"standard"})) +option_18 = StrOption(name="newvar", doc="newvar", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dynval1.grp.vardyn': ParamDynOption(option_16, ['val1'])})), properties=frozenset({"standard"})) optiondescription_17 = OptionDescription(name="new", doc="new", children=[option_18], properties=frozenset({"standard"})) -optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14, optiondescription_17], properties=frozenset({"basic"})) -optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"basic"})) +optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_12, optiondescription_14, optiondescription_17], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10]) diff --git a/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml index ab2281959..771b84b6f 100644 --- a/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_leadership/dictionaries/rougail/00-base.yml @@ -1,3 +1,4 @@ +--- version: '1.1' general: varname: @@ -5,9 +6,9 @@ general: description: No change multi: true default: - - val1 - - val2 -dyn: + - val1 + - val2 +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py b/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py index b16db446f..17160800b 100644 --- a/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_leadership/tiramisu/base.py @@ -1,72 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) @@ -74,6 +12,6 @@ option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozens option_8 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) option_9 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"standard"})) optiondescription_6 = Leadership(name="leadership", doc="leadership", children=[option_7, option_8, option_9], properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5, optiondescription_6], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5, optiondescription_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py index c3461559c..a14b7924b 100644 --- a/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_leadership/tiramisu/multi.py @@ -1,72 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", properties=frozenset({"standard"})) @@ -74,7 +12,7 @@ option_8 = StrOption(name="leader", doc="leader", multi=True, properties=frozens option_9 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) option_10 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"standard"})) optiondescription_7 = Leadership(name="leadership", doc="leadership", children=[option_8, option_9, option_10], properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6, optiondescription_7], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6, optiondescription_7], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_14 = StrOption(name="varname", doc="No change", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) @@ -84,7 +22,7 @@ option_18 = StrOption(name="leader", doc="leader", multi=True, properties=frozen option_19 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) option_20 = StrOption(name="follower2", doc="follower2", multi=True, properties=frozenset({"standard"})) optiondescription_17 = Leadership(name="leadership", doc="leadership", children=[option_18, option_19, option_20], properties=frozenset({"standard"})) -optiondescription_15 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_14, notraisepropertyerror=True)))), children=[option_16, optiondescription_17], properties=frozenset({"standard"})) +optiondescription_15 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_14, notraisepropertyerror=True)))), children=[option_16, optiondescription_17], properties=frozenset({"standard"})) optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_11]) diff --git a/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml index 8f17b72b7..46f8976eb 100644 --- a/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_number/dictionaries/rougail/00-base.yml @@ -8,7 +8,7 @@ general: default: - 1 - 2 -dyn: +"dyn{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_number/tiramisu/base.py b/tests/dictionaries/20family_dynamic_number/tiramisu/base.py index 22d69df0c..6bd66025a 100644 --- a/tests/dictionaries/20family_dynamic_number/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_number/tiramisu/base.py @@ -1,78 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_rougail.new.newvar'] = "{{ rougail.dyn1.vardyn | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) -option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_5, 'dyn1.vardyn', optiondescription_4)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_7 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_5, ['1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_6 = OptionDescription(name="new", doc="new", children=[option_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_4, optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py index 90133e5a5..c6f04dda9 100644 --- a/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_number/tiramisu/multi.py @@ -1,87 +1,25 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription dict_env['default_1.rougail.new.newvar'] = "{{ rougail.dyn1.vardyn | calc_val }}" dict_env['default_2.rougail.new.newvar'] = "{{ rougail.dyn1.vardyn | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) -option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_6, 'dyn1.vardyn', optiondescription_5)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +option_8 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_6, ['1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_7 = OptionDescription(name="new", doc="new", children=[option_8], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3, optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_12 = IntOption(name="varname", doc="No change", multi=True, default=[1, 2], default_multi=1, properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_11 = OptionDescription(name="general", doc="general", children=[option_12], properties=frozenset({"standard"})) option_14 = StrOption(name="vardyn", doc="No change", default="val", properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="dyn", doc="dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) -option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_14, 'dyn1.vardyn', optiondescription_13)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +option_16 = StrOption(name="newvar", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.new.newvar"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.dyn1.vardyn': ParamDynOption(option_14, ['1'])})), properties=frozenset({"mandatory", "standard"})) optiondescription_15 = OptionDescription(name="new", doc="new", children=[option_16], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_11, optiondescription_13, optiondescription_15], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/80check_unknown/__init__.py b/tests/dictionaries/20family_dynamic_static/__init__.py similarity index 100% rename from tests/dictionaries/80check_unknown/__init__.py rename to tests/dictionaries/20family_dynamic_static/__init__.py diff --git a/tests/dictionaries/20family_dynamic_static/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_static/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..a75dbe753 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/dictionaries/rougail/00-base.yml @@ -0,0 +1,8 @@ +--- +version: '1.1' +"dyn{{ suffix }}": + type: dynamic + dynamic: + - val1 + - val2 + vardyn: diff --git a/tests/dictionaries/20family_dynamic_static/makedict/after.json b/tests/dictionaries/20family_dynamic_static/makedict/after.json new file mode 100644 index 000000000..1b76eb47a --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/makedict/after.json @@ -0,0 +1,10 @@ +{ + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_static/makedict/base.json b/tests/dictionaries/20family_dynamic_static/makedict/base.json new file mode 100644 index 000000000..0609904d7 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/makedict/base.json @@ -0,0 +1,4 @@ +{ + "rougail.dynval1.vardyn": null, + "rougail.dynval2.vardyn": null +} diff --git a/tests/dictionaries/20family_dynamic_static/makedict/before.json b/tests/dictionaries/20family_dynamic_static/makedict/before.json new file mode 100644 index 000000000..1b76eb47a --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/makedict/before.json @@ -0,0 +1,10 @@ +{ + "rougail.dynval1.vardyn": { + "owner": "default", + "value": null + }, + "rougail.dynval2.vardyn": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/20family_dynamic_static/makedict/mandatory.json b/tests/dictionaries/20family_dynamic_static/makedict/mandatory.json new file mode 100644 index 000000000..3cf9ddc26 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/makedict/mandatory.json @@ -0,0 +1 @@ +["rougail.dynval1.vardyn", "rougail.dynval2.vardyn"] \ No newline at end of file diff --git a/tests/dictionaries/20family_dynamic_static/tiramisu/base.py b/tests/dictionaries/20family_dynamic_static/tiramisu/base.py new file mode 100644 index 000000000..6e19c9dfe --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/tiramisu/base.py @@ -0,0 +1,11 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_2 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", "val2"], children=[option_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_static/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_static/tiramisu/multi.py new file mode 100644 index 000000000..2c7c9b146 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_static/tiramisu/multi.py @@ -0,0 +1,16 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", "val2"], children=[option_4], properties=frozenset({"basic"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_8 = StrOption(name="vardyn", doc="vardyn", properties=frozenset({"basic", "mandatory"})) +optiondescription_7 = ConvertDynOptionDescription(name="dyn{{ suffix }}", doc="dyn{{ suffix }}", suffixes=["val1", "val2"], children=[option_8], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"basic"})) +optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/80check_unknown_var/__init__.py b/tests/dictionaries/20family_dynamic_unknown_suffix/__init__.py similarity index 100% rename from tests/dictionaries/80check_unknown_var/__init__.py rename to tests/dictionaries/20family_dynamic_unknown_suffix/__init__.py diff --git a/tests/dictionaries/20family_dynamic_unknown_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_unknown_suffix/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..c7bd62fe4 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_unknown_suffix/dictionaries/rougail/00-base.yml @@ -0,0 +1,28 @@ +--- +version: '1.1' +varname: + multi: true + default: + - val1 + - val2 + +"{{ suffix }}_dyn": + type: dynamic + dynamic: + type: variable + variable: rougail.varname + var1: + default: + type: suffix + var2: + default: + type: variable + variable: rougail.{{ suffix }}_dyn.var1 + var3: + default: + type: variable + variable: _.var1 + var4: + default: + type: variable + variable: rougail.val4_dyn.var1 diff --git a/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/base.py b/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/base.py new file mode 100644 index 000000000..183312f73 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/base.py @@ -0,0 +1,15 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_4 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_5 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"})) +option_6 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_4)))), properties=frozenset({"mandatory", "standard"})) +option_7 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ['val4'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_4, option_5, option_6, option_7], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/multi.py new file mode 100644 index 000000000..6456d66b3 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_unknown_suffix/tiramisu/multi.py @@ -0,0 +1,24 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_5 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_6 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) +option_7 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_5)))), properties=frozenset({"mandatory", "standard"})) +option_8 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ['val4'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_5, option_6, option_7, option_8], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_11 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_13 = StrOption(name="var1", doc="var1", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_14 = StrOption(name="var2", doc="var2", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"})) +option_15 = StrOption(name="var3", doc="var3", default=Calculation(func['calc_value'], Params((ParamOption(option_13)))), properties=frozenset({"mandatory", "standard"})) +option_16 = StrOption(name="var4", doc="var4", default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ['val4'])))), properties=frozenset({"mandatory", "standard"})) +optiondescription_12 = ConvertDynOptionDescription(name="{{ suffix }}_dyn", doc="{{ suffix }}_dyn", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_11)))), children=[option_13, option_14, option_15, option_16], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="rougail", doc="rougail", children=[option_11, optiondescription_12], properties=frozenset({"standard"})) +optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_9]) diff --git a/tests/dictionaries/20family_dynamic_variable_outside/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_variable_outside/dictionaries/rougail/00-base.yml index 08a76571b..846804f23 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_variable_outside/dictionaries/rougail/00-base.yml @@ -5,14 +5,14 @@ varname: default: - val1 - val2 -my_dyn_family_: +"my_dyn_family_{{ suffix }}": type: dynamic dynamic: type: variable variable: rougail.varname propertyerror: false description: 'Describe ' - my_dyn_var_: + my_dyn_var: type: string default: type: suffix @@ -21,5 +21,6 @@ all_dyn_var: multi: true default: type: variable - variable: rougail.my_dyn_family_.my_dyn_var_ + variable: "rougail.my_dyn_family_{{ suffix }}.my_dyn_var" + allow_none: true mandatory: false diff --git a/tests/dictionaries/20family_dynamic_variable_outside/makedict/after.json b/tests/dictionaries/20family_dynamic_variable_outside/makedict/after.json index 10bf3f881..d27fabaaa 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/makedict/after.json +++ b/tests/dictionaries/20family_dynamic_variable_outside/makedict/after.json @@ -6,11 +6,11 @@ "val2" ] }, - "rougail.my_dyn_family_val1.my_dyn_var_": { + "rougail.my_dyn_family_val1.my_dyn_var": { "owner": "default", "value": "val1" }, - "rougail.my_dyn_family_val2.my_dyn_var_": { + "rougail.my_dyn_family_val2.my_dyn_var": { "owner": "default", "value": "val2" }, diff --git a/tests/dictionaries/20family_dynamic_variable_outside/makedict/base.json b/tests/dictionaries/20family_dynamic_variable_outside/makedict/base.json index 734cc57ba..13e99a51e 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/makedict/base.json +++ b/tests/dictionaries/20family_dynamic_variable_outside/makedict/base.json @@ -3,8 +3,8 @@ "val1", "val2" ], - "rougail.my_dyn_family_val1.my_dyn_var_": "val1", - "rougail.my_dyn_family_val2.my_dyn_var_": "val2", + "rougail.my_dyn_family_val1.my_dyn_var": "val1", + "rougail.my_dyn_family_val2.my_dyn_var": "val2", "rougail.all_dyn_var": [ "val1", "val2" diff --git a/tests/dictionaries/20family_dynamic_variable_outside/makedict/before.json b/tests/dictionaries/20family_dynamic_variable_outside/makedict/before.json index 10bf3f881..d27fabaaa 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/makedict/before.json +++ b/tests/dictionaries/20family_dynamic_variable_outside/makedict/before.json @@ -6,11 +6,11 @@ "val2" ] }, - "rougail.my_dyn_family_val1.my_dyn_var_": { + "rougail.my_dyn_family_val1.my_dyn_var": { "owner": "default", "value": "val1" }, - "rougail.my_dyn_family_val2.my_dyn_var_": { + "rougail.my_dyn_family_val2.my_dyn_var": { "owner": "default", "value": "val2" }, diff --git a/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/base.py b/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/base.py index 5c72e9c08..233dcef06 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/base.py @@ -1,75 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -option_4 = StrOption(name="my_dyn_var_", doc="my_dyn_var_", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"standard"})) +option_4 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"standard"})) option_5 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'allow_none': ParamValue(True)})), properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/multi.py index 63a4f31c8..2f86b3b89 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_variable_outside/tiramisu/multi.py @@ -1,81 +1,19 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -option_5 = StrOption(name="my_dyn_var_", doc="my_dyn_var_", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_5 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) option_6 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_5)), kwargs={'allow_none': ParamValue(True)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) -option_11 = StrOption(name="my_dyn_var_", doc="my_dyn_var_", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_9, notraisepropertyerror=True)))), children=[option_11], properties=frozenset({"standard"})) +option_11 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_9, notraisepropertyerror=True)))), children=[option_11], properties=frozenset({"standard"})) option_12 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_11)), kwargs={'allow_none': ParamValue(True)})), properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..ad92701fc --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/dictionaries/rougail/00-base.yml @@ -0,0 +1,30 @@ +--- +version: '1.1' +varname: + multi: true + default: + - val1 + - val2 +"my_dyn_family_{{ suffix }}": + type: dynamic + dynamic: + type: variable + variable: rougail.varname + propertyerror: false + description: 'Describe ' + "subdyn_{{ suffix }}": + type: dynamic + dynamic: + type: variable + variable: rougail.varname + my_dyn_var: + type: string + mandatory: false + default: + type: suffix +all_dyn_var: + mandatory: false + multi: true + default: + type: variable + variable: "rougail.my_dyn_family_val1.subdyn_{{ suffix }}.my_dyn_var" diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/after.json b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/after.json new file mode 100644 index 000000000..def594d13 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/after.json @@ -0,0 +1,21 @@ +{ + "rougail.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.my_dyn_family_val1.my_dyn_var": { + "owner": "default", + "value": "val1" + }, + "rougail.my_dyn_family_val2.my_dyn_var": { + "owner": "default", + "value": "val2" + }, + "rougail.all_dyn_var": { + "owner": "default", + "value": "val1" + } +} diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/base.json b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/base.json new file mode 100644 index 000000000..c66b02b52 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/base.json @@ -0,0 +1,9 @@ +{ + "rougail.varname": [ + "val1", + "val2" + ], + "rougail.my_dyn_family_val1.my_dyn_var": "val1", + "rougail.my_dyn_family_val2.my_dyn_var": "val2", + "rougail.all_dyn_var": "val1" +} diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/before.json b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/before.json new file mode 100644 index 000000000..def594d13 --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/before.json @@ -0,0 +1,21 @@ +{ + "rougail.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.my_dyn_family_val1.my_dyn_var": { + "owner": "default", + "value": "val1" + }, + "rougail.my_dyn_family_val2.my_dyn_var": { + "owner": "default", + "value": "val2" + }, + "rougail.all_dyn_var": { + "owner": "default", + "value": "val1" + } +} diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/mandatory.json b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/base.py b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/base.py new file mode 100644 index 000000000..85dd0eafa --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/base.py @@ -0,0 +1,14 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_5 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="subdyn_{{ suffix }}", doc="subdyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2)))), children=[option_5], properties=frozenset({"standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[optiondescription_4], properties=frozenset({"standard"})) +option_6 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ['val1', None])))), properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3, option_6], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py new file mode 100644 index 000000000..d0c40996a --- /dev/null +++ b/tests/dictionaries/20family_dynamic_variable_outside_sub_suffix/tiramisu/multi.py @@ -0,0 +1,22 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_6 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="subdyn_{{ suffix }}", doc="subdyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[optiondescription_5], properties=frozenset({"standard"})) +option_7 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_6, ['val1', None])))), properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4, option_7], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_10 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_13 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) +optiondescription_12 = ConvertDynOptionDescription(name="subdyn_{{ suffix }}", doc="subdyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10)))), children=[option_13], properties=frozenset({"standard"})) +optiondescription_11 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_10, notraisepropertyerror=True)))), children=[optiondescription_12], properties=frozenset({"standard"})) +option_14 = StrOption(name="all_dyn_var", doc="all_dyn_var", multi=True, default=Calculation(func['calc_value'], Params((ParamDynOption(option_13, ['val1', None])))), properties=frozenset({"standard"})) +optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[option_10, optiondescription_11, option_14], properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/20family_dynamic_variable_outside_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_dynamic_variable_outside_suffix/dictionaries/rougail/00-base.yml index b66485ed4..ae1b7dc59 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside_suffix/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/20family_dynamic_variable_outside_suffix/dictionaries/rougail/00-base.yml @@ -5,7 +5,7 @@ varname: default: - val1 - val2 -my_dyn_family_: +"my_dyn_family_{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/base.py b/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/base.py index e5c4bc913..077c442a1 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/base.py +++ b/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/base.py @@ -1,75 +1,13 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) option_4 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"standard"})) -option_5 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, 'my_dyn_family_val1.my_dyn_var', optiondescription_3)))), properties=frozenset({"standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)))), children=[option_4], properties=frozenset({"standard"})) +option_5 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_4, ['val1'])))), properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3, option_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/multi.py b/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/multi.py index 5fb1177b4..85d37f245 100644 --- a/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/multi.py +++ b/tests/dictionaries/20family_dynamic_variable_outside_suffix/tiramisu/multi.py @@ -1,82 +1,20 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) option_5 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) -option_6 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, 'my_dyn_family_val1.my_dyn_var', optiondescription_4)))), properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_5], properties=frozenset({"standard"})) +option_6 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_5, ['val1'])))), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4, option_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) option_9 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) option_11 = StrOption(name="my_dyn_var", doc="my_dyn_var", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"standard"})) -optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_9, notraisepropertyerror=True)))), children=[option_11], properties=frozenset({"standard"})) -option_12 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_11, 'my_dyn_family_val1.my_dyn_var', optiondescription_10)))), properties=frozenset({"standard"})) +optiondescription_10 = ConvertDynOptionDescription(name="my_dyn_family_{{ suffix }}", doc="Describe ", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_9, notraisepropertyerror=True)))), children=[option_11], properties=frozenset({"standard"})) +option_12 = StrOption(name="all_dyn_var", doc="all_dyn_var", default=Calculation(func['calc_value'], Params((ParamDynOption(option_11, ['val1'])))), properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="rougail", doc="rougail", children=[option_9, optiondescription_10, option_12], properties=frozenset({"standard"})) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_7]) diff --git a/tests/dictionaries/20family_empty/tiramisu/base.py b/tests/dictionaries/20family_empty/tiramisu/base.py index dd3fe230a..d04f4b170 100644 --- a/tests/dictionaries/20family_empty/tiramisu/base.py +++ b/tests/dictionaries/20family_empty/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/20family_empty/tiramisu/multi.py b/tests/dictionaries/20family_empty/tiramisu/multi.py index 2eea70caa..1106a5824 100644 --- a/tests/dictionaries/20family_empty/tiramisu/multi.py +++ b/tests/dictionaries/20family_empty/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/20family_hidden/tiramisu/base.py b/tests/dictionaries/20family_hidden/tiramisu/base.py index 8c0f8d87b..7516fd30a 100644 --- a/tests/dictionaries/20family_hidden/tiramisu/base.py +++ b/tests/dictionaries/20family_hidden/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"hidden", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_hidden/tiramisu/multi.py b/tests/dictionaries/20family_hidden/tiramisu/multi.py index e0a13550c..f8a77991e 100644 --- a/tests/dictionaries/20family_hidden/tiramisu/multi.py +++ b/tests/dictionaries/20family_hidden/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"hidden", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_mode/tiramisu/base.py b/tests/dictionaries/20family_mode/tiramisu/base.py index dd3fe230a..d04f4b170 100644 --- a/tests/dictionaries/20family_mode/tiramisu/base.py +++ b/tests/dictionaries/20family_mode/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/20family_mode/tiramisu/multi.py b/tests/dictionaries/20family_mode/tiramisu/multi.py index 7f7c86985..58e56907c 100644 --- a/tests/dictionaries/20family_mode/tiramisu/multi.py +++ b/tests/dictionaries/20family_mode/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"basic", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/20family_modeleadership/tiramisu/base.py b/tests/dictionaries/20family_modeleadership/tiramisu/base.py index 86653e138..7413ccac9 100644 --- a/tests/dictionaries/20family_modeleadership/tiramisu/base.py +++ b/tests/dictionaries/20family_modeleadership/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"})) option_6 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/20family_modeleadership/tiramisu/multi.py b/tests/dictionaries/20family_modeleadership/tiramisu/multi.py index d0e0871b5..ec85040f2 100644 --- a/tests/dictionaries/20family_modeleadership/tiramisu/multi.py +++ b/tests/dictionaries/20family_modeleadership/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic"})) option_7 = StrOption(name="follower1", doc="follower1", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/80check_without_target/__init__.py b/tests/dictionaries/20family_sub_dynamic/__init__.py similarity index 100% rename from tests/dictionaries/80check_without_target/__init__.py rename to tests/dictionaries/20family_sub_dynamic/__init__.py diff --git a/tests/dictionaries/20family_sub_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/20family_sub_dynamic/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..331f4cdbf --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/dictionaries/rougail/00-base.yml @@ -0,0 +1,40 @@ +--- +version: '1.0' +varname: + multi: true + default: + - val1 + - val2 +"dyn_{{ suffix }}": + varname: + multi: true + default: + type: jinja + jinja: | + {% for val in rougail.varname %} + t{{ val }} + {% endfor %} + type: dynamic + variable: rougail.varname + "dyn_{{ suffix }}": + type: dynamic + variable: "rougail.dyn_{{ suffix }}.varname" + vardyn: + default: + type: suffix + p_vardyn: + default: + type: suffix + suffix: 0 + q_vardyn: + default: + type: jinja + jinja: | + {{ s1 }}-{{ s2 }} + params: + s1: + type: suffix + suffix: 0 + s2: + type: suffix + suffix: 1 diff --git a/tests/dictionaries/20family_sub_dynamic/makedict/after.json b/tests/dictionaries/20family_sub_dynamic/makedict/after.json new file mode 100644 index 000000000..6d62d87c7 --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/makedict/after.json @@ -0,0 +1,71 @@ +{ + "rougail.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dyn_val1.varname": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dyn_val1.dyn_tval1.vardyn": { + "owner": "default", + "value": "tval1" + }, + "rougail.dyn_val1.dyn_tval1.p_vardyn": { + "owner": "default", + "value": "val1" + }, + "rougail.dyn_val1.dyn_tval1.q_vardyn": { + "owner": "default", + "value": "val1-tval1" + }, + "rougail.dyn_val1.dyn_tval2.vardyn": { + "owner": "default", + "value": "tval2" + }, + "rougail.dyn_val1.dyn_tval2.p_vardyn": { + "owner": "default", + "value": "val1" + }, + "rougail.dyn_val1.dyn_tval2.q_vardyn": { + "owner": "default", + "value": "val1-tval2" + }, + "rougail.dyn_val2.varname": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dyn_val2.dyn_tval1.vardyn": { + "owner": "default", + "value": "tval1" + }, + "rougail.dyn_val2.dyn_tval1.p_vardyn": { + "owner": "default", + "value": "val2" + }, + "rougail.dyn_val2.dyn_tval1.q_vardyn": { + "owner": "default", + "value": "val2-tval1" + }, + "rougail.dyn_val2.dyn_tval2.vardyn": { + "owner": "default", + "value": "tval2" + }, + "rougail.dyn_val2.dyn_tval2.p_vardyn": { + "owner": "default", + "value": "val2" + }, + "rougail.dyn_val2.dyn_tval2.q_vardyn": { + "owner": "default", + "value": "val2-tval2" + } +} diff --git a/tests/dictionaries/20family_sub_dynamic/makedict/base.json b/tests/dictionaries/20family_sub_dynamic/makedict/base.json new file mode 100644 index 000000000..ac0c197a7 --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/makedict/base.json @@ -0,0 +1,26 @@ +{ + "rougail.varname": [ + "val1", + "val2" + ], + "rougail.dyn_val1.varname": [ + "tval1", + "tval2" + ], + "rougail.dyn_val1.dyn_tval1.vardyn": "tval1", + "rougail.dyn_val1.dyn_tval1.p_vardyn": "val1", + "rougail.dyn_val1.dyn_tval1.q_vardyn": "val1-tval1", + "rougail.dyn_val1.dyn_tval2.vardyn": "tval2", + "rougail.dyn_val1.dyn_tval2.p_vardyn": "val1", + "rougail.dyn_val1.dyn_tval2.q_vardyn": "val1-tval2", + "rougail.dyn_val2.varname": [ + "tval1", + "tval2" + ], + "rougail.dyn_val2.dyn_tval1.vardyn": "tval1", + "rougail.dyn_val2.dyn_tval1.p_vardyn": "val2", + "rougail.dyn_val2.dyn_tval1.q_vardyn": "val2-tval1", + "rougail.dyn_val2.dyn_tval2.vardyn": "tval2", + "rougail.dyn_val2.dyn_tval2.p_vardyn": "val2", + "rougail.dyn_val2.dyn_tval2.q_vardyn": "val2-tval2" +} diff --git a/tests/dictionaries/20family_sub_dynamic/makedict/before.json b/tests/dictionaries/20family_sub_dynamic/makedict/before.json new file mode 100644 index 000000000..6d62d87c7 --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/makedict/before.json @@ -0,0 +1,71 @@ +{ + "rougail.varname": { + "owner": "default", + "value": [ + "val1", + "val2" + ] + }, + "rougail.dyn_val1.varname": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dyn_val1.dyn_tval1.vardyn": { + "owner": "default", + "value": "tval1" + }, + "rougail.dyn_val1.dyn_tval1.p_vardyn": { + "owner": "default", + "value": "val1" + }, + "rougail.dyn_val1.dyn_tval1.q_vardyn": { + "owner": "default", + "value": "val1-tval1" + }, + "rougail.dyn_val1.dyn_tval2.vardyn": { + "owner": "default", + "value": "tval2" + }, + "rougail.dyn_val1.dyn_tval2.p_vardyn": { + "owner": "default", + "value": "val1" + }, + "rougail.dyn_val1.dyn_tval2.q_vardyn": { + "owner": "default", + "value": "val1-tval2" + }, + "rougail.dyn_val2.varname": { + "owner": "default", + "value": [ + "tval1", + "tval2" + ] + }, + "rougail.dyn_val2.dyn_tval1.vardyn": { + "owner": "default", + "value": "tval1" + }, + "rougail.dyn_val2.dyn_tval1.p_vardyn": { + "owner": "default", + "value": "val2" + }, + "rougail.dyn_val2.dyn_tval1.q_vardyn": { + "owner": "default", + "value": "val2-tval1" + }, + "rougail.dyn_val2.dyn_tval2.vardyn": { + "owner": "default", + "value": "tval2" + }, + "rougail.dyn_val2.dyn_tval2.p_vardyn": { + "owner": "default", + "value": "val2" + }, + "rougail.dyn_val2.dyn_tval2.q_vardyn": { + "owner": "default", + "value": "val2-tval2" + } +} diff --git a/tests/dictionaries/20family_sub_dynamic/makedict/mandatory.json b/tests/dictionaries/20family_sub_dynamic/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/20family_sub_dynamic/tiramisu/base.py b/tests/dictionaries/20family_sub_dynamic/tiramisu/base.py new file mode 100644 index 000000000..9ad6396ce --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/tiramisu/base.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_rougail.dyn_{{ suffix }}.varname'] = "{% for val in rougail.varname %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn'] = "{{ s1 }}-{{ s2 }}\n" +option_2 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_4 = StrOption(name="varname", doc="varname", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn_{{ suffix }}.varname"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.varname': ParamOption(option_2)})), properties=frozenset({"mandatory", "notempty", "standard"})) +option_6 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_7 = StrOption(name="p_vardyn", doc="p_vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix(suffix_index=0)))), properties=frozenset({"mandatory", "standard"})) +option_8 = StrOption(name="q_vardyn", doc="q_vardyn", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 's1': ParamSuffix(suffix_index=0), 's2': ParamSuffix(suffix_index=1)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_6, option_7, option_8], properties=frozenset({"standard"})) +optiondescription_3 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_2, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_4, optiondescription_5], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2, optiondescription_3], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/20family_sub_dynamic/tiramisu/multi.py b/tests/dictionaries/20family_sub_dynamic/tiramisu/multi.py new file mode 100644 index 000000000..e152cf391 --- /dev/null +++ b/tests/dictionaries/20family_sub_dynamic/tiramisu/multi.py @@ -0,0 +1,30 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +dict_env['default_1.rougail.dyn_{{ suffix }}.varname'] = "{% for val in rougail.varname %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_1.rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn'] = "{{ s1 }}-{{ s2 }}\n" +dict_env['default_2.rougail.dyn_{{ suffix }}.varname'] = "{% for val in rougail.varname %}\nt{{ val }}\n{% endfor %}\n" +dict_env['default_2.rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn'] = "{{ s1 }}-{{ s2 }}\n" +option_3 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_5 = StrOption(name="varname", doc="varname", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn_{{ suffix }}.varname"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.varname': ParamOption(option_3)})), properties=frozenset({"mandatory", "notempty", "standard"})) +option_7 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_8 = StrOption(name="p_vardyn", doc="p_vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix(suffix_index=0)))), properties=frozenset({"mandatory", "standard"})) +option_9 = StrOption(name="q_vardyn", doc="q_vardyn", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 's1': ParamSuffix(suffix_index=0), 's2': ParamSuffix(suffix_index=1)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_6 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_5, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_7, option_8, option_9], properties=frozenset({"standard"})) +optiondescription_4 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_5, optiondescription_6], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3, optiondescription_4], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_12 = StrOption(name="varname", doc="varname", multi=True, default=["val1", "val2"], default_multi="val1", properties=frozenset({"mandatory", "notempty", "standard"})) +option_14 = StrOption(name="varname", doc="varname", multi=True, default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn_{{ suffix }}.varname"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(True), 'rougail.varname': ParamOption(option_12)})), properties=frozenset({"mandatory", "notempty", "standard"})) +option_16 = StrOption(name="vardyn", doc="vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix()))), properties=frozenset({"mandatory", "standard"})) +option_17 = StrOption(name="p_vardyn", doc="p_vardyn", default=Calculation(func['calc_value'], Params((ParamSuffix(suffix_index=0)))), properties=frozenset({"mandatory", "standard"})) +option_18 = StrOption(name="q_vardyn", doc="q_vardyn", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.rougail.dyn_{{ suffix }}.dyn_{{ suffix }}.q_vardyn"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 's1': ParamSuffix(suffix_index=0), 's2': ParamSuffix(suffix_index=1)})), properties=frozenset({"mandatory", "standard"})) +optiondescription_15 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_14, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_16, option_17, option_18], properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="dyn_{{ suffix }}", doc="dyn_{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_12, notraisepropertyerror=True)), kwargs={'allow_none': ParamValue(True)})), children=[option_14, optiondescription_15], properties=frozenset({"standard"})) +optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children=[option_12, optiondescription_13], properties=frozenset({"standard"})) +optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10]) diff --git a/tests/dictionaries/21family_empty/tiramisu/base.py b/tests/dictionaries/21family_empty/tiramisu/base.py index 41d4c1a9f..fae1c9a6d 100644 --- a/tests/dictionaries/21family_empty/tiramisu/base.py +++ b/tests/dictionaries/21family_empty/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/21family_empty/tiramisu/multi.py b/tests/dictionaries/21family_empty/tiramisu/multi.py index d5ac8da08..c4ef7c8c9 100644 --- a/tests/dictionaries/21family_empty/tiramisu/multi.py +++ b/tests/dictionaries/21family_empty/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/21family_empty_sub/tiramisu/base.py b/tests/dictionaries/21family_empty_sub/tiramisu/base.py index 41d4c1a9f..fae1c9a6d 100644 --- a/tests/dictionaries/21family_empty_sub/tiramisu/base.py +++ b/tests/dictionaries/21family_empty_sub/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/21family_empty_sub/tiramisu/multi.py b/tests/dictionaries/21family_empty_sub/tiramisu/multi.py index 5416669a0..344f70d51 100644 --- a/tests/dictionaries/21family_empty_sub/tiramisu/multi.py +++ b/tests/dictionaries/21family_empty_sub/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py index e4fed3301..12ae6a35a 100644 --- a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py +++ b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"basic"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py index 8c9044185..8854fb457 100644 --- a/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py +++ b/tests/dictionaries/30mandatory_withoutvalue/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"basic", "mandatory"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py index 6c2048194..6aa51ccfb 100644 --- a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py +++ b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py index 1b5a409cb..e0672b5c8 100644 --- a/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py +++ b/tests/dictionaries/30mandatory_withoutvaluecalc/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py b/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py index ff83b74c1..3946df4c4 100644 --- a/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py +++ b/tests/dictionaries/30mandatory_withvalue/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py b/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py index 4e6b3078b..f21efa7d8 100644 --- a/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py +++ b/tests/dictionaries/30mandatory_withvalue/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="value", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py index a1c4ecc08..9f9bf20cb 100644 --- a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py +++ b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py index d02f3759a..65e68f87f 100644 --- a/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py +++ b/tests/dictionaries/30mandatory_withvaluecalc/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"value\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40condition_base/tiramisu/base.py b/tests/dictionaries/40condition_base/tiramisu/base.py index e29060ef5..86b1e6864 100644 --- a/tests/dictionaries/40condition_base/tiramisu/base.py +++ b/tests/dictionaries/40condition_base/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/40condition_base/tiramisu/multi.py b/tests/dictionaries/40condition_base/tiramisu/multi.py index 7e5d15b97..ac66d5847 100644 --- a/tests/dictionaries/40condition_base/tiramisu/multi.py +++ b/tests/dictionaries/40condition_base/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/40condition_base_add/tiramisu/base.py b/tests/dictionaries/40condition_base_add/tiramisu/base.py index 11fb83a8e..e043ba07a 100644 --- a/tests/dictionaries/40condition_base_add/tiramisu/base.py +++ b/tests/dictionaries/40condition_base_add/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_4)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/40condition_base_add/tiramisu/multi.py b/tests/dictionaries/40condition_base_add/tiramisu/multi.py index c0debe65b..6c1e80656 100644 --- a/tests/dictionaries/40condition_base_add/tiramisu/multi.py +++ b/tests/dictionaries/40condition_base_add/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_1.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif2'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"standard"})) option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general.condition': ParamOption(option_5)}), help_function=func['jinja_to_property_help'])})) diff --git a/tests/dictionaries/40condition_fallback/tmp/base.py b/tests/dictionaries/40condition_fallback/tmp/base.py deleted file mode 100644 index 2c5d43ba7..000000000 --- a/tests/dictionaries/40condition_fallback/tmp/base.py +++ /dev/null @@ -1,75 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("normal") -ALLOWED_LEADER_PROPERTIES.add("expert") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail.annotator.variable import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value) -def valid_with_jinja(warning=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warning: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['disabled_rougail.general.mode_conteneur_actif1'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}" -dict_env['disabled_rougail.general.mode_conteneur_actif2'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}" -dict_env['disabled_rougail.disabled_family'] = "{% if __condition == \"oui\" %}true{% else %}false{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "normal"})) -option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif1"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))})) -option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"mandatory", "normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif2"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4, option_5], properties=frozenset({"normal"})) -option_7 = StrOption(name="mode_conteneur_actif3", doc="No change", default="non", properties=frozenset({"mandatory", "normal"})) -optiondescription_6 = OptionDescription(name="disabled_family", doc="disabled_family", children=[option_7], properties=frozenset({"normal", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.disabled_family"), '__internal_type': ParamValue("boolean"), '__internal_multi': ParamValue(False)}))})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2, optiondescription_6], properties=frozenset({"normal"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40empty_param/tiramisu/base.py b/tests/dictionaries/40empty_param/tiramisu/base.py index b46cf2364..72701606f 100644 --- a/tests/dictionaries/40empty_param/tiramisu/base.py +++ b/tests/dictionaries/40empty_param/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40empty_param/tiramisu/multi.py b/tests/dictionaries/40empty_param/tiramisu/multi.py index 0feb086b9..0922ac04b 100644 --- a/tests/dictionaries/40empty_param/tiramisu/multi.py +++ b/tests/dictionaries/40empty_param/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40empty_param2/tiramisu/base.py b/tests/dictionaries/40empty_param2/tiramisu/base.py index b46cf2364..72701606f 100644 --- a/tests/dictionaries/40empty_param2/tiramisu/base.py +++ b/tests/dictionaries/40empty_param2/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40empty_param2/tiramisu/multi.py b/tests/dictionaries/40empty_param2/tiramisu/multi.py index 0feb086b9..0922ac04b 100644 --- a/tests/dictionaries/40empty_param2/tiramisu/multi.py +++ b/tests/dictionaries/40empty_param2/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ null | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml b/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml index 635109060..ea50b9c74 100644 --- a/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/40family_underscode/dictionaries/rougail/00-base.yml @@ -4,30 +4,25 @@ my_family: _type: family _description: This is a great family _help: This is a great family - _mode: advanced + _mode: basic _hidden: true _disabled: true type: type: family my_variable: - type: variable description: description: This is a other great family my_variable: - type: variable help: help: This is a other great family my_variable: - type: variable mode: mode: advanced my_variable: - type: variable + mandatory: false hidden: hidden: true my_variable: - type: variable disabled: disabled: true my_variable: - type: variable diff --git a/tests/dictionaries/40family_underscode/makedict/after.json b/tests/dictionaries/40family_underscode/makedict/after.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/40family_underscode/makedict/after.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/40family_underscode/makedict/base.json b/tests/dictionaries/40family_underscode/makedict/base.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/40family_underscode/makedict/base.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/40family_underscode/makedict/before.json b/tests/dictionaries/40family_underscode/makedict/before.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/tests/dictionaries/40family_underscode/makedict/before.json @@ -0,0 +1 @@ +{} diff --git a/tests/dictionaries/40family_underscode/makedict/mandatory.json b/tests/dictionaries/40family_underscode/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/40family_underscode/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/40family_underscode/tiramisu/base.py b/tests/dictionaries/40family_underscode/tiramisu/base.py new file mode 100644 index 000000000..06fe5ddff --- /dev/null +++ b/tests/dictionaries/40family_underscode/tiramisu/base.py @@ -0,0 +1,22 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_3 = OptionDescription(name="type", doc="type", children=[option_4], properties=frozenset({"basic"})) +option_6 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_5 = OptionDescription(name="description", doc="This is a other great family", children=[option_6], properties=frozenset({"basic"})) +option_8 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_7 = OptionDescription(name="help", doc="help", children=[option_8], properties=frozenset({"basic"}), informations={'help': 'This is a other great family'}) +option_10 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"advanced", "force_default_on_freeze", "frozen"})) +optiondescription_9 = OptionDescription(name="mode", doc="mode", children=[option_10], properties=frozenset({"advanced"})) +option_12 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_11 = OptionDescription(name="hidden", doc="hidden", children=[option_12], properties=frozenset({"basic", "hidden"})) +option_14 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_13 = OptionDescription(name="disabled", doc="disabled", children=[option_14], properties=frozenset({"basic", "disabled"})) +optiondescription_2 = OptionDescription(name="my_family", doc="This is a great family", children=[optiondescription_3, optiondescription_5, optiondescription_7, optiondescription_9, optiondescription_11, optiondescription_13], properties=frozenset({"basic", "disabled", "hidden"}), informations={'help': 'This is a great family'}) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40family_underscode/tiramisu/multi.py b/tests/dictionaries/40family_underscode/tiramisu/multi.py new file mode 100644 index 000000000..f0f0acf52 --- /dev/null +++ b/tests/dictionaries/40family_underscode/tiramisu/multi.py @@ -0,0 +1,38 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_5 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_4 = OptionDescription(name="type", doc="type", children=[option_5], properties=frozenset({"basic"})) +option_7 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_6 = OptionDescription(name="description", doc="This is a other great family", children=[option_7], properties=frozenset({"basic"})) +option_9 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_8 = OptionDescription(name="help", doc="help", children=[option_9], properties=frozenset({"basic"}), informations={'help': 'This is a other great family'}) +option_11 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"advanced", "force_default_on_freeze", "frozen"})) +optiondescription_10 = OptionDescription(name="mode", doc="mode", children=[option_11], properties=frozenset({"advanced"})) +option_13 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_12 = OptionDescription(name="hidden", doc="hidden", children=[option_13], properties=frozenset({"basic", "hidden"})) +option_15 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_14 = OptionDescription(name="disabled", doc="disabled", children=[option_15], properties=frozenset({"basic", "disabled"})) +optiondescription_3 = OptionDescription(name="my_family", doc="This is a great family", children=[optiondescription_4, optiondescription_6, optiondescription_8, optiondescription_10, optiondescription_12, optiondescription_14], properties=frozenset({"basic", "disabled", "hidden"}), informations={'help': 'This is a great family'}) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_20 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_19 = OptionDescription(name="type", doc="type", children=[option_20], properties=frozenset({"basic"})) +option_22 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_21 = OptionDescription(name="description", doc="This is a other great family", children=[option_22], properties=frozenset({"basic"})) +option_24 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_23 = OptionDescription(name="help", doc="help", children=[option_24], properties=frozenset({"basic"}), informations={'help': 'This is a other great family'}) +option_26 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"advanced", "force_default_on_freeze", "frozen"})) +optiondescription_25 = OptionDescription(name="mode", doc="mode", children=[option_26], properties=frozenset({"advanced"})) +option_28 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_27 = OptionDescription(name="hidden", doc="hidden", children=[option_28], properties=frozenset({"basic", "hidden"})) +option_30 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_29 = OptionDescription(name="disabled", doc="disabled", children=[option_30], properties=frozenset({"basic", "disabled"})) +optiondescription_18 = OptionDescription(name="my_family", doc="This is a great family", children=[optiondescription_19, optiondescription_21, optiondescription_23, optiondescription_25, optiondescription_27, optiondescription_29], properties=frozenset({"basic", "disabled", "hidden"}), informations={'help': 'This is a great family'}) +optiondescription_17 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_18], properties=frozenset({"basic"})) +optiondescription_16 = OptionDescription(name="2", doc="2", children=[optiondescription_17], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_16]) diff --git a/tests/dictionaries/40family_unique_not_same_family/makedict/after.json b/tests/dictionaries/40family_unique_not_same_family/makedict/after.json new file mode 100644 index 000000000..4c3efe8ae --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/makedict/after.json @@ -0,0 +1,6 @@ +{ + "rougail.general.general.my_variable": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/40family_unique_not_same_family/makedict/base.json b/tests/dictionaries/40family_unique_not_same_family/makedict/base.json new file mode 100644 index 000000000..ae2261e1d --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/makedict/base.json @@ -0,0 +1,3 @@ +{ + "rougail.general.general.my_variable": null +} diff --git a/tests/dictionaries/40family_unique_not_same_family/makedict/before.json b/tests/dictionaries/40family_unique_not_same_family/makedict/before.json new file mode 100644 index 000000000..4c3efe8ae --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/makedict/before.json @@ -0,0 +1,6 @@ +{ + "rougail.general.general.my_variable": { + "owner": "default", + "value": null + } +} diff --git a/tests/dictionaries/40family_unique_not_same_family/makedict/mandatory.json b/tests/dictionaries/40family_unique_not_same_family/makedict/mandatory.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/makedict/mandatory.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/dictionaries/40family_unique_not_same_family/tiramisu/base.py b/tests/dictionaries/40family_unique_not_same_family/tiramisu/base.py new file mode 100644 index 000000000..9ab6374cd --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/tiramisu/base.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) +optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="general", doc="general", children=[optiondescription_3], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40family_unique_not_same_family/tiramisu/multi.py b/tests/dictionaries/40family_unique_not_same_family/tiramisu/multi.py new file mode 100644 index 000000000..a0bff2b09 --- /dev/null +++ b/tests/dictionaries/40family_unique_not_same_family/tiramisu/multi.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_5 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) +optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5], properties=frozenset({"standard"})) +optiondescription_3 = OptionDescription(name="general", doc="general", children=[optiondescription_4], properties=frozenset({"standard"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) +option_10 = StrOption(name="my_variable", doc="my_variable", properties=frozenset({"standard"})) +optiondescription_9 = OptionDescription(name="general", doc="general", children=[option_10], properties=frozenset({"standard"})) +optiondescription_8 = OptionDescription(name="general", doc="general", children=[optiondescription_9], properties=frozenset({"standard"})) +optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"standard"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"standard"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/40ifin_leadership/tiramisu/base.py b/tests/dictionaries/40ifin_leadership/tiramisu/base.py index 6d855341d..c2c5a9a8f 100644 --- a/tests/dictionaries/40ifin_leadership/tiramisu/base.py +++ b/tests/dictionaries/40ifin_leadership/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40ifin_leadership/tiramisu/multi.py b/tests/dictionaries/40ifin_leadership/tiramisu/multi.py index 9e50c5ae1..e43a51d9e 100644 --- a/tests/dictionaries/40ifin_leadership/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_leadership/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}" dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}true{% else %}false{% endif %}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py index 9e100172f..04bc6211d 100644 --- a/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py +++ b/tests/dictionaries/40ifin_leadershipauto/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=["a"], properties=frozenset({"mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py b/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py index 06d482802..db8031465 100644 --- a/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_leadershipauto/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" dict_env['default_2.rougail.general.leader.follower1'] = "{{ \"valfill\" | calc_val }}" dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.condition == \"oui\" %}\ncondition is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, default=["a"], properties=frozenset({"mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py index c008ef146..415fc30a5 100644 --- a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py +++ b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.leader.follower1'] = "{{ calc_val() }}" dict_env['disabled_rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b"], properties=frozenset({"mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py index b3e823e97..b11f7ae40 100644 --- a/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_leadershipauto_follower/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.leader.follower1'] = "{{ calc_val() }}" dict_env['disabled_1.rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n" dict_env['default_2.rougail.general.leader.follower1'] = "{{ calc_val() }}" dict_env['disabled_2.rougail.general.leader.follower1'] = "{% if rougail.general.leader.leader == \"a\" %}\nthe value of \"leader\" is \"a\"\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="condition", default="oui", properties=frozenset({"mandatory", "standard"})) option_7 = StrOption(name="leader", doc="leader", multi=True, default=["a", "b"], properties=frozenset({"mandatory", "notempty", "standard"})) diff --git a/tests/dictionaries/40ifin_multi/tiramisu/base.py b/tests/dictionaries/40ifin_multi/tiramisu/base.py index f09ea2330..a814f3760 100644 --- a/tests/dictionaries/40ifin_multi/tiramisu/base.py +++ b/tests/dictionaries/40ifin_multi/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/40ifin_multi/tiramisu/multi.py b/tests/dictionaries/40ifin_multi/tiramisu/multi.py index 4f9860f37..fd9034202 100644 --- a/tests/dictionaries/40ifin_multi/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_multi/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/40ifin_multi2/tiramisu/base.py b/tests/dictionaries/40ifin_multi2/tiramisu/base.py index 1d6d81b83..4808c62ca 100644 --- a/tests/dictionaries/40ifin_multi2/tiramisu/base.py +++ b/tests/dictionaries/40ifin_multi2/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/40ifin_multi2/tiramisu/multi.py b/tests/dictionaries/40ifin_multi2/tiramisu/multi.py index a9e43ea1d..c06ef8330 100644 --- a/tests/dictionaries/40ifin_multi2/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_multi2/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general2.mode_conteneur_actif3'] = "{% if rougail.general2.mode_conteneur_actif2 == \"oui\" %}\nmode_conteneur_actif2 is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/40ifin_validenum/tiramisu/base.py b/tests/dictionaries/40ifin_validenum/tiramisu/base.py index 3296f1cec..1b47c49e7 100644 --- a/tests/dictionaries/40ifin_validenum/tiramisu/base.py +++ b/tests/dictionaries/40ifin_validenum/tiramisu/base.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" dict_env['disabled_rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_6 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=("a", "b", "c"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"})) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_6)}), help_function=func['jinja_to_property_help'])})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40ifin_validenum/tiramisu/multi.py b/tests/dictionaries/40ifin_validenum/tiramisu/multi.py index dc6d8e8b2..4a4c230a8 100644 --- a/tests/dictionaries/40ifin_validenum/tiramisu/multi.py +++ b/tests/dictionaries/40ifin_validenum/tiramisu/multi.py @@ -1,75 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" dict_env['disabled_1.rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" dict_env['disabled_2.rougail.general.mode_conteneur_actif'] = "{% if rougail.general2.mode_conteneur_actif3 == \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" dict_env['disabled_2.rougail.general2.mode_conteneur_actif2'] = "{% if rougail.general2.mode_conteneur_actif3 != \"d\" %}\nmode_conteneur_actif3 is d\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_7 = ChoiceOption(name="mode_conteneur_actif3", doc="No change", values=("a", "b", "c"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'rougail.general2.mode_conteneur_actif3': ParamOption(option_7)}), help_function=func['jinja_to_property_help'])})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/40space_param/tiramisu/base.py b/tests/dictionaries/40space_param/tiramisu/base.py index 0fef14ffe..a6d031e6c 100644 --- a/tests/dictionaries/40space_param/tiramisu/base.py +++ b/tests/dictionaries/40space_param/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_4 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_2 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_3, option_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40space_param/tiramisu/multi.py b/tests/dictionaries/40space_param/tiramisu/multi.py index 7fb3e1fbe..320d20c8c 100644 --- a/tests/dictionaries/40space_param/tiramisu/multi.py +++ b/tests/dictionaries/40space_param/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}" dict_env['default_2.rougail.proxy_authentifie.toto1'] = "{{ \" \" | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = PortOption(name="toto1", doc="Port d'écoute du proxy", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.proxy_authentifie.toto1"), '__internal_type': ParamValue("port"), '__internal_multi': ParamValue(False)})), allow_private=True, properties=frozenset({"advanced"})) option_5 = PortOption(name="toto2", doc="Port d'écoute du proxy NTLM", default="3127", allow_private=True, properties=frozenset({"advanced", "mandatory"})) optiondescription_3 = OptionDescription(name="proxy_authentifie", doc="proxy authentifié", children=[option_4, option_5], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/40version_underscode/dictionaries/rougail/00-base.yml b/tests/dictionaries/40version_underscode/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..cddd9c701 --- /dev/null +++ b/tests/dictionaries/40version_underscode/dictionaries/rougail/00-base.yml @@ -0,0 +1,3 @@ +--- +_version: '1.0' +version: diff --git a/tests/dictionaries/40version_underscode/tiramisu/base.py b/tests/dictionaries/40version_underscode/tiramisu/base.py new file mode 100644 index 000000000..60144f6be --- /dev/null +++ b/tests/dictionaries/40version_underscode/tiramisu/base.py @@ -0,0 +1,10 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_2 = StrOption(name="version", doc="version", properties=frozenset({"basic", "mandatory"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/40version_underscode/tiramisu/multi.py b/tests/dictionaries/40version_underscode/tiramisu/multi.py new file mode 100644 index 000000000..c6276640d --- /dev/null +++ b/tests/dictionaries/40version_underscode/tiramisu/multi.py @@ -0,0 +1,14 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="version", doc="version", properties=frozenset({"basic", "mandatory"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_6 = StrOption(name="version", doc="version", properties=frozenset({"basic", "mandatory"})) +optiondescription_5 = OptionDescription(name="rougail", doc="rougail", children=[option_6], properties=frozenset({"basic"})) +optiondescription_4 = OptionDescription(name="2", doc="2", children=[optiondescription_5], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/45extra_without_family/tiramisu/base.py b/tests/dictionaries/45extra_without_family/tiramisu/base.py index d8cc391e9..a29725ce2 100644 --- a/tests/dictionaries/45extra_without_family/tiramisu/base.py +++ b/tests/dictionaries/45extra_without_family/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.my_var'] = "{{ \"non\" | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_2 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_4 = StrOption(name="my_var", doc="my_var", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.my_var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45extra_without_family/tiramisu/multi.py b/tests/dictionaries/45extra_without_family/tiramisu/multi.py index f956e590c..c1f98d245 100644 --- a/tests/dictionaries/45extra_without_family/tiramisu/multi.py +++ b/tests/dictionaries/45extra_without_family/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.my_var'] = "{{ \"non\" | calc_multi_condition }}" dict_env['default_2.extra.my_var'] = "{{ \"non\" | calc_multi_condition }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="my_var", doc="my_var", default="rougail", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="my_var", doc="my_var", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.my_var"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45multi_family/tiramisu/base.py b/tests/dictionaries/45multi_family/tiramisu/base.py index 96c4b612d..9ec7b97ea 100644 --- a/tests/dictionaries/45multi_family/tiramisu/base.py +++ b/tests/dictionaries/45multi_family/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45multi_family/tiramisu/multi.py b/tests/dictionaries/45multi_family/tiramisu/multi.py index ed6cb4c85..9c78a248c 100644 --- a/tests/dictionaries/45multi_family/tiramisu/multi.py +++ b/tests/dictionaries/45multi_family/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45multi_family_basic/tiramisu/base.py b/tests/dictionaries/45multi_family_basic/tiramisu/base.py index f5e9b34e8..572e5b7c0 100644 --- a/tests/dictionaries/45multi_family_basic/tiramisu/base.py +++ b/tests/dictionaries/45multi_family_basic/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"})) optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"basic"})) optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/45multi_family_basic/tiramisu/multi.py b/tests/dictionaries/45multi_family_basic/tiramisu/multi.py index 7fb505886..a92c16732 100644 --- a/tests/dictionaries/45multi_family_basic/tiramisu/multi.py +++ b/tests/dictionaries/45multi_family_basic/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"basic"})) optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"basic"})) optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"basic"})) diff --git a/tests/dictionaries/45multi_family_expert/tiramisu/base.py b/tests/dictionaries/45multi_family_expert/tiramisu/base.py index acae1a208..e7d6e4721 100644 --- a/tests/dictionaries/45multi_family_expert/tiramisu/base.py +++ b/tests/dictionaries/45multi_family_expert/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="variable", doc="variable", properties=frozenset({"advanced"})) optiondescription_3 = OptionDescription(name="subfamily", doc="subfamily", children=[option_4], properties=frozenset({"advanced"})) optiondescription_2 = OptionDescription(name="base", doc="base", children=[optiondescription_3], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/45multi_family_expert/tiramisu/multi.py b/tests/dictionaries/45multi_family_expert/tiramisu/multi.py index ca64a7707..6b1e31e20 100644 --- a/tests/dictionaries/45multi_family_expert/tiramisu/multi.py +++ b/tests/dictionaries/45multi_family_expert/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_5 = StrOption(name="variable", doc="variable", properties=frozenset({"advanced"})) optiondescription_4 = OptionDescription(name="subfamily", doc="subfamily", children=[option_5], properties=frozenset({"advanced"})) optiondescription_3 = OptionDescription(name="base", doc="base", children=[optiondescription_4], properties=frozenset({"advanced"})) diff --git a/tests/dictionaries/45multi_family_order/tiramisu/base.py b/tests/dictionaries/45multi_family_order/tiramisu/base.py index 8d50aac45..115528e33 100644 --- a/tests/dictionaries/45multi_family_order/tiramisu/base.py +++ b/tests/dictionaries/45multi_family_order/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = StrOption(name="variable1", doc="variable1", properties=frozenset({"standard"})) option_4 = StrOption(name="variable2", doc="variable2", properties=frozenset({"standard"})) option_6 = StrOption(name="variable3", doc="variable3", properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45multi_family_order/tiramisu/multi.py b/tests/dictionaries/45multi_family_order/tiramisu/multi.py index 1d19a8b9d..14ba7fa65 100644 --- a/tests/dictionaries/45multi_family_order/tiramisu/multi.py +++ b/tests/dictionaries/45multi_family_order/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="variable1", doc="variable1", properties=frozenset({"standard"})) option_5 = StrOption(name="variable2", doc="variable2", properties=frozenset({"standard"})) option_7 = StrOption(name="variable3", doc="variable3", properties=frozenset({"standard"})) diff --git a/tests/dictionaries/45without_family/tiramisu/base.py b/tests/dictionaries/45without_family/tiramisu/base.py index d9659712a..6c6a99012 100644 --- a/tests/dictionaries/45without_family/tiramisu/base.py +++ b/tests/dictionaries/45without_family/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_2 = StrOption(name="variable", doc="variable", properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/45without_family/tiramisu/multi.py b/tests/dictionaries/45without_family/tiramisu/multi.py index dea6f6488..ad5703274 100644 --- a/tests/dictionaries/45without_family/tiramisu/multi.py +++ b/tests/dictionaries/45without_family/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="variable", doc="variable", properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/50exists_exists/tiramisu/base.py b/tests/dictionaries/50exists_exists/tiramisu/base.py index 9dda343c6..ae2c56be1 100644 --- a/tests/dictionaries/50exists_exists/tiramisu/base.py +++ b/tests/dictionaries/50exists_exists/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/50exists_exists/tiramisu/multi.py b/tests/dictionaries/50exists_exists/tiramisu/multi.py index cba011fd3..5231b4662 100644 --- a/tests/dictionaries/50exists_exists/tiramisu/multi.py +++ b/tests/dictionaries/50exists_exists/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/50redefine_description/tiramisu/base.py b/tests/dictionaries/50redefine_description/tiramisu/base.py index 0b031c3fe..0ec1ea3e3 100644 --- a/tests/dictionaries/50redefine_description/tiramisu/base.py +++ b/tests/dictionaries/50redefine_description/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/50redefine_description/tiramisu/multi.py b/tests/dictionaries/50redefine_description/tiramisu/multi.py index 2f1a3e001..ddfbb9220 100644 --- a/tests/dictionaries/50redefine_description/tiramisu/multi.py +++ b/tests/dictionaries/50redefine_description/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefined", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51exists_nonexists/tiramisu/base.py b/tests/dictionaries/51exists_nonexists/tiramisu/base.py index ae85a8349..5971440f6 100644 --- a/tests/dictionaries/51exists_nonexists/tiramisu/base.py +++ b/tests/dictionaries/51exists_nonexists/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/51exists_nonexists/tiramisu/multi.py b/tests/dictionaries/51exists_nonexists/tiramisu/multi.py index 11413b381..c114893cd 100644 --- a/tests/dictionaries/51exists_nonexists/tiramisu/multi.py +++ b/tests/dictionaries/51exists_nonexists/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="Description", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="New description", default="oui", properties=frozenset({"mandatory", "standard"})) diff --git a/tests/dictionaries/51exists_redefine/tiramisu/base.py b/tests/dictionaries/51exists_redefine/tiramisu/base.py index 94fe179f2..7be861c1a 100644 --- a/tests/dictionaries/51exists_redefine/tiramisu/base.py +++ b/tests/dictionaries/51exists_redefine/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51exists_redefine/tiramisu/multi.py b/tests/dictionaries/51exists_redefine/tiramisu/multi.py index beda76351..89f6ca9e1 100644 --- a/tests/dictionaries/51exists_redefine/tiramisu/multi.py +++ b/tests/dictionaries/51exists_redefine/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_auto/tiramisu/base.py b/tests/dictionaries/51redefine_auto/tiramisu/base.py index b9539bbd2..7a173de4c 100644 --- a/tests/dictionaries/51redefine_auto/tiramisu/base.py +++ b/tests/dictionaries/51redefine_auto/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_auto/tiramisu/multi.py b/tests/dictionaries/51redefine_auto/tiramisu/multi.py index 155068721..3ea053f7a 100644 --- a/tests/dictionaries/51redefine_auto/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_auto/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_autofill/tiramisu/base.py b/tests/dictionaries/51redefine_autofill/tiramisu/base.py index 9d21fab85..c5058b009 100644 --- a/tests/dictionaries/51redefine_autofill/tiramisu/base.py +++ b/tests/dictionaries/51redefine_autofill/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_autofill/tiramisu/multi.py b/tests/dictionaries/51redefine_autofill/tiramisu/multi.py index 5f3d421b9..6da4ff4d0 100644 --- a/tests/dictionaries/51redefine_autofill/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_autofill/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_family/tiramisu/base.py b/tests/dictionaries/51redefine_family/tiramisu/base.py index b671e837a..70b185044 100644 --- a/tests/dictionaries/51redefine_family/tiramisu/base.py +++ b/tests/dictionaries/51redefine_family/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) option_5 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/51redefine_family/tiramisu/multi.py b/tests/dictionaries/51redefine_family/tiramisu/multi.py index 306c597f8..ab0a213ad 100644 --- a/tests/dictionaries/51redefine_family/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_family/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['disabled_1.rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" dict_env['disabled_2.rougail.general2'] = "{% if rougail.general.mode_conteneur_actif == \"oui\" %}\nmode_conteneur_actif is oui\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/51redefine_fill/tiramisu/base.py b/tests/dictionaries/51redefine_fill/tiramisu/base.py index b9539bbd2..7a173de4c 100644 --- a/tests/dictionaries/51redefine_fill/tiramisu/base.py +++ b/tests/dictionaries/51redefine_fill/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_fill/tiramisu/multi.py b/tests/dictionaries/51redefine_fill/tiramisu/multi.py index 155068721..3ea053f7a 100644 --- a/tests/dictionaries/51redefine_fill/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_fill/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_fillauto/tiramisu/base.py b/tests/dictionaries/51redefine_fillauto/tiramisu/base.py index b9539bbd2..7a173de4c 100644 --- a/tests/dictionaries/51redefine_fillauto/tiramisu/base.py +++ b/tests/dictionaries/51redefine_fillauto/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py b/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py index 155068721..3ea053f7a 100644 --- a/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_fillauto/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" dict_env['default_2.rougail.general.mode_conteneur_actif'] = "{{ \"non\" | concat }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.rougail.general.mode_conteneur_actif"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False)})), properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_help/tiramisu/base.py b/tests/dictionaries/51redefine_help/tiramisu/base.py index 6b1c419a8..29b6f555e 100644 --- a/tests/dictionaries/51redefine_help/tiramisu/base.py +++ b/tests/dictionaries/51redefine_help/tiramisu/base.py @@ -1,27 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_3 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_3.impl_set_information('help', "redefine help ok") -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) -optiondescription_2.impl_set_information('help', "redefine help family ok") +option_3 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"}), informations={'help': 'redefine help ok'}) +optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"}), informations={'help': 'redefine help family ok'}) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/51redefine_help/tiramisu/multi.py b/tests/dictionaries/51redefine_help/tiramisu/multi.py index 7eedcea5f..cfb38f231 100644 --- a/tests/dictionaries/51redefine_help/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_help/tiramisu/multi.py @@ -1,34 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -option_4 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_4.impl_set_information('help', "redefine help ok") -optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) -optiondescription_3.impl_set_information('help', "redefine help family ok") +option_4 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"}), informations={'help': 'redefine help ok'}) +optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"}), informations={'help': 'redefine help family ok'}) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_8.impl_set_information('help', "redefine help ok") -optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"})) -optiondescription_7.impl_set_information('help', "redefine help family ok") +option_8 = StrOption(name="mode_conteneur_actif", doc="redefine help", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"}), informations={'help': 'redefine help ok'}) +optiondescription_7 = OptionDescription(name="general", doc="general", children=[option_8], properties=frozenset({"standard"}), informations={'help': 'redefine help family ok'}) optiondescription_6 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="2", doc="2", children=[optiondescription_6], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_5]) diff --git a/tests/dictionaries/51redefine_hidden/tiramisu/base.py b/tests/dictionaries/51redefine_hidden/tiramisu/base.py index 9857c6a14..f1f01dc0e 100644 --- a/tests/dictionaries/51redefine_hidden/tiramisu/base.py +++ b/tests/dictionaries/51redefine_hidden/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_hidden/tiramisu/multi.py b/tests/dictionaries/51redefine_hidden/tiramisu/multi.py index 8f70609f7..aae2a5eb1 100644 --- a/tests/dictionaries/51redefine_hidden/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_hidden/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py index 1430fdac4..102ffacc1 100644 --- a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py +++ b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py index 2b2e08501..ad4337f11 100644 --- a/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_hidden_inverse/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/80condition_itself/__init__.py b/tests/dictionaries/51redefine_leadership/__init__.py similarity index 100% rename from tests/dictionaries/80condition_itself/__init__.py rename to tests/dictionaries/51redefine_leadership/__init__.py diff --git a/tests/dictionaries/51redefine_leadership/dictionaries/rougail/00-base.yml b/tests/dictionaries/51redefine_leadership/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..b86f9db8a --- /dev/null +++ b/tests/dictionaries/51redefine_leadership/dictionaries/rougail/00-base.yml @@ -0,0 +1,7 @@ +--- +version: '1.0' +leader: + type: leadership + leader: + multi: true + follower: diff --git a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml b/tests/dictionaries/51redefine_leadership/dictionaries/rougail/01-base.yml similarity index 54% rename from tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml rename to tests/dictionaries/51redefine_leadership/dictionaries/rougail/01-base.yml index b1ec9a764..ea26d3e22 100644 --- a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/01-base.yml +++ b/tests/dictionaries/51redefine_leadership/dictionaries/rougail/01-base.yml @@ -1,4 +1,5 @@ -enumvar: - redefine: true - choices: null +--- version: '1.0' +leader: + redefine: true + hidden: true diff --git a/tests/dictionaries/51redefine_leadership/tiramisu/base.py b/tests/dictionaries/51redefine_leadership/tiramisu/base.py new file mode 100644 index 000000000..ffbaa1bed --- /dev/null +++ b/tests/dictionaries/51redefine_leadership/tiramisu/base.py @@ -0,0 +1,12 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_3 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory", "notempty"})) +option_4 = StrOption(name="follower", doc="follower", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_2 = Leadership(name="leader", doc="leader", children=[option_3, option_4], properties=frozenset({"basic", "hidden"})) +optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/51redefine_leadership/tiramisu/multi.py b/tests/dictionaries/51redefine_leadership/tiramisu/multi.py new file mode 100644 index 000000000..b5ac8511a --- /dev/null +++ b/tests/dictionaries/51redefine_leadership/tiramisu/multi.py @@ -0,0 +1,18 @@ +from tiramisu import * +from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') +ALLOWED_LEADER_PROPERTIES.add("basic") +ALLOWED_LEADER_PROPERTIES.add("standard") +ALLOWED_LEADER_PROPERTIES.add("advanced") +option_4 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory", "notempty"})) +option_5 = StrOption(name="follower", doc="follower", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_3 = Leadership(name="leader", doc="leader", children=[option_4, option_5], properties=frozenset({"basic", "hidden"})) +optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"basic"})) +optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2], properties=frozenset({"basic"})) +option_9 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory", "notempty"})) +option_10 = StrOption(name="follower", doc="follower", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "frozen", "mandatory"})) +optiondescription_8 = Leadership(name="leader", doc="leader", children=[option_9, option_10], properties=frozenset({"basic", "hidden"})) +optiondescription_7 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_8], properties=frozenset({"basic"})) +optiondescription_6 = OptionDescription(name="2", doc="2", children=[optiondescription_7], properties=frozenset({"basic"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6]) diff --git a/tests/dictionaries/51redefine_multi/tiramisu/base.py b/tests/dictionaries/51redefine_multi/tiramisu/base.py index e9a836be1..4d358650d 100644 --- a/tests/dictionaries/51redefine_multi/tiramisu/base.py +++ b/tests/dictionaries/51redefine_multi/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_multi/tiramisu/multi.py b/tests/dictionaries/51redefine_multi/tiramisu/multi.py index 8b9814205..082cdc41d 100644 --- a/tests/dictionaries/51redefine_multi/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_multi/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine description", multi=True, default=["non"], default_multi="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py b/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py index d45de022a..e0ac1d9dc 100644 --- a/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py +++ b/tests/dictionaries/51redefine_remove_condition/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py b/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py index 8435737d6..bd2023093 100644 --- a/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_remove_condition/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="condition", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_6 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/51redefine_validenum/tiramisu/base.py b/tests/dictionaries/51redefine_validenum/tiramisu/base.py index ec304b321..6c9fd92df 100644 --- a/tests/dictionaries/51redefine_validenum/tiramisu/base.py +++ b/tests/dictionaries/51redefine_validenum/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=("a", "b"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_validenum/tiramisu/multi.py b/tests/dictionaries/51redefine_validenum/tiramisu/multi.py index ff5a922b6..d023b6353 100644 --- a/tests/dictionaries/51redefine_validenum/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_validenum/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = ChoiceOption(name="mode_conteneur_actif", doc="Redefine description", values=("a", "b"), default="a", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_value/tiramisu/base.py b/tests/dictionaries/51redefine_value/tiramisu/base.py index 205f7d907..f503ac499 100644 --- a/tests/dictionaries/51redefine_value/tiramisu/base.py +++ b/tests/dictionaries/51redefine_value/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_value/tiramisu/multi.py b/tests/dictionaries/51redefine_value/tiramisu/multi.py index 7fbc0fd98..ca92bb544 100644 --- a/tests/dictionaries/51redefine_value/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_value/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine value", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="Redefine value", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py b/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py index 9857c6a14..f1f01dc0e 100644 --- a/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py +++ b/tests/dictionaries/51redefine_without_hidden/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py b/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py index 8f70609f7..aae2a5eb1 100644 --- a/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py +++ b/tests/dictionaries/51redefine_without_hidden/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Redefine hidden", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51remove_fill/tiramisu/base.py b/tests/dictionaries/51remove_fill/tiramisu/base.py index 506a213cc..dcab80f7d 100644 --- a/tests/dictionaries/51remove_fill/tiramisu/base.py +++ b/tests/dictionaries/51remove_fill/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/51remove_fill/tiramisu/multi.py b/tests/dictionaries/51remove_fill/tiramisu/multi.py index 4a299b6e8..04ea838e1 100644 --- a/tests/dictionaries/51remove_fill/tiramisu/multi.py +++ b/tests/dictionaries/51remove_fill/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="oui", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="mode_conteneur_actif1", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/52exists_redefine/tiramisu/base.py b/tests/dictionaries/52exists_redefine/tiramisu/base.py index 94fe179f2..7be861c1a 100644 --- a/tests/dictionaries/52exists_redefine/tiramisu/base.py +++ b/tests/dictionaries/52exists_redefine/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/52exists_redefine/tiramisu/multi.py b/tests/dictionaries/52exists_redefine/tiramisu/multi.py index beda76351..89f6ca9e1 100644 --- a/tests/dictionaries/52exists_redefine/tiramisu/multi.py +++ b/tests/dictionaries/52exists_redefine/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="Description", default="oui", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="general", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60action_external/tiramisu/base.py b/tests/dictionaries/60action_external/tiramisu/base.py index bb01e4634..365952035 100644 --- a/tests/dictionaries/60action_external/tiramisu/base.py +++ b/tests/dictionaries/60action_external/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60action_external/tiramisu/multi.py b/tests/dictionaries/60action_external/tiramisu/multi.py index e8b8b25de..ec417ebac 100644 --- a/tests/dictionaries/60action_external/tiramisu/multi.py +++ b/tests/dictionaries/60action_external/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}" dict_env['default_2.extra.test.calc_url'] = "{{ \"http://localhost/\" | calc_val }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_basic/tiramisu/base.py b/tests/dictionaries/60extra_basic/tiramisu/base.py index 1bd958bef..f157b6a95 100644 --- a/tests/dictionaries/60extra_basic/tiramisu/base.py +++ b/tests/dictionaries/60extra_basic/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_basic/tiramisu/multi.py b/tests/dictionaries/60extra_basic/tiramisu/multi.py index a75e21cc7..a2c5016c3 100644 --- a/tests/dictionaries/60extra_basic/tiramisu/multi.py +++ b/tests/dictionaries/60extra_basic/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml deleted file mode 100644 index baea1b1af..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra/00-base.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -version: '1.0' -ejabberd: - description: - type: string - default: Exportation de la base de ejabberd - day: - type: choice - mandatory: true - default: none - choices: - - none - - daily - - weekly - - monthly - mode: - type: choice - mandatory: true - default: pre - choices: - - pre - - post diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml deleted file mode 100644 index ea3c10fa3..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/dictionaries/extra1/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -version: '1.0' -external: - description: - type: string - default: test - disabled: - type: jinja - jinja: | - {% if extra.ejabberd.description == "non" %} - description is non - {% endif %} diff --git a/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml b/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml deleted file mode 100644 index 8a059d038..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -version: '1.0' -general: - description: général - my_var: - default: 'no' - my_var1: - hidden: true - default: 'no' - server_deployed: - type: boolean - hidden: true - default: false diff --git a/tests/dictionaries/60extra_externalspacecondition/makedict/after.json b/tests/dictionaries/60extra_externalspacecondition/makedict/after.json deleted file mode 100644 index c979ff36a..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/makedict/after.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "rougail.general.my_var": { - "owner": "default", - "value": "no" - }, - "rougail.general.my_var1": { - "owner": "default", - "value": "no" - }, - "rougail.general.server_deployed": { - "owner": "default", - "value": false - }, - "extra.ejabberd.description": { - "owner": "default", - "value": "Exportation de la base de ejabberd" - }, - "extra.ejabberd.day": { - "owner": "default", - "value": "none" - }, - "extra.ejabberd.mode": { - "owner": "default", - "value": "pre" - }, - "extra1.external.description": { - "owner": "default", - "value": "test" - } -} diff --git a/tests/dictionaries/60extra_externalspacecondition/makedict/base.json b/tests/dictionaries/60extra_externalspacecondition/makedict/base.json deleted file mode 100644 index 1c5001315..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/makedict/base.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "rougail.general.my_var": "no", - "rougail.general.my_var1": "no", - "rougail.general.server_deployed": false, - "extra.ejabberd.description": "Exportation de la base de ejabberd", - "extra.ejabberd.day": "none", - "extra.ejabberd.mode": "pre", - "extra1.external.description": "test" -} diff --git a/tests/dictionaries/60extra_externalspacecondition/makedict/before.json b/tests/dictionaries/60extra_externalspacecondition/makedict/before.json deleted file mode 100644 index c979ff36a..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/makedict/before.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "rougail.general.my_var": { - "owner": "default", - "value": "no" - }, - "rougail.general.my_var1": { - "owner": "default", - "value": "no" - }, - "rougail.general.server_deployed": { - "owner": "default", - "value": false - }, - "extra.ejabberd.description": { - "owner": "default", - "value": "Exportation de la base de ejabberd" - }, - "extra.ejabberd.day": { - "owner": "default", - "value": "none" - }, - "extra.ejabberd.mode": { - "owner": "default", - "value": "pre" - }, - "extra1.external.description": { - "owner": "default", - "value": "test" - } -} diff --git a/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py b/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py deleted file mode 100644 index 2a68bc9e6..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/tiramisu/base.py +++ /dev/null @@ -1,83 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['disabled_extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_3 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "standard"})) -option_4 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_5 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4, option_5], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) -option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "standard"})) -option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) -optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"standard"})) -optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"standard"})) -option_13 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "standard"})) -optiondescription_12 = OptionDescription(name="external", doc="external", children=[option_13], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_8)}), help_function=func['jinja_to_property_help'])})) -optiondescription_11 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_12], properties=frozenset({"standard"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_6, optiondescription_11]) diff --git a/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py b/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py deleted file mode 100644 index 7d1468837..000000000 --- a/tests/dictionaries/60extra_externalspacecondition/tiramisu/multi.py +++ /dev/null @@ -1,99 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -dict_env['disabled_1.extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n" -dict_env['disabled_2.extra1.external'] = "{% if extra.ejabberd.description == \"non\" %}\ndescription is non\n{% endif %}\n" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_4 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "standard"})) -option_5 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_6 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5, option_6], properties=frozenset({"standard"})) -optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) -option_9 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_10 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "standard"})) -option_11 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) -optiondescription_8 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_9, option_10, option_11], properties=frozenset({"standard"})) -optiondescription_7 = OptionDescription(name="extra", doc="extra", children=[optiondescription_8], properties=frozenset({"standard"})) -option_14 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "standard"})) -optiondescription_13 = OptionDescription(name="external", doc="external", children=[option_14], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_1.extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_9)}), help_function=func['jinja_to_property_help'])})) -optiondescription_12 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_13], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_7, optiondescription_12], properties=frozenset({"standard"})) -option_18 = StrOption(name="my_var", doc="my_var", default="no", properties=frozenset({"mandatory", "standard"})) -option_19 = StrOption(name="my_var1", doc="my_var1", default="no", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -option_20 = BoolOption(name="server_deployed", doc="server_deployed", default=False, properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) -optiondescription_17 = OptionDescription(name="general", doc="général", children=[option_18, option_19, option_20], properties=frozenset({"standard"})) -optiondescription_16 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_17], properties=frozenset({"standard"})) -option_23 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_24 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default="none", properties=frozenset({"mandatory", "standard"})) -option_25 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) -optiondescription_22 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_23, option_24, option_25], properties=frozenset({"standard"})) -optiondescription_21 = OptionDescription(name="extra", doc="extra", children=[optiondescription_22], properties=frozenset({"standard"})) -option_28 = StrOption(name="description", doc="description", default="test", properties=frozenset({"mandatory", "standard"})) -optiondescription_27 = OptionDescription(name="external", doc="external", children=[option_28], properties=frozenset({"standard", Calculation(func['jinja_to_property'], Params((ParamValue("disabled")), kwargs={'__internal_jinja': ParamValue("disabled_2.extra1.external"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), 'extra.ejabberd.description': ParamOption(option_23)}), help_function=func['jinja_to_property_help'])})) -optiondescription_26 = OptionDescription(name="extra1", doc="extra1", children=[optiondescription_27], properties=frozenset({"standard"})) -optiondescription_15 = OptionDescription(name="2", doc="2", children=[optiondescription_16, optiondescription_21, optiondescription_26], properties=frozenset({"standard"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_15]) diff --git a/tests/dictionaries/60extra_help/tiramisu/base.py b/tests/dictionaries/60extra_help/tiramisu/base.py index 7711fa1c2..03b9cde1a 100644 --- a/tests/dictionaries/60extra_help/tiramisu/base.py +++ b/tests/dictionaries/60extra_help/tiramisu/base.py @@ -1,79 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_7 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"})) -option_8.impl_set_information('help', "Test help") +option_8 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_4, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'help': 'Test help'}) option_9 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) optiondescription_6 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_7, option_8, option_9], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_help/tiramisu/multi.py b/tests/dictionaries/60extra_help/tiramisu/multi.py index ff7fc10de..75f0ec275 100644 --- a/tests/dictionaries/60extra_help/tiramisu/multi.py +++ b/tests/dictionaries/60extra_help/tiramisu/multi.py @@ -1,80 +1,18 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) option_8 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"})) -option_9.impl_set_information('help', "Test help") +option_9 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_1.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_5, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'help': 'Test help'}) option_10 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) optiondescription_7 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_8, option_9, option_10], properties=frozenset({"standard"})) optiondescription_6 = OptionDescription(name="extra", doc="extra", children=[optiondescription_7], properties=frozenset({"standard"})) @@ -84,8 +22,7 @@ option_15 = StrOption(name="activer_ejabberd", doc="No change", default="non", p optiondescription_13 = OptionDescription(name="general", doc="général", children=[option_14, option_15], properties=frozenset({"standard"})) optiondescription_12 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_13], properties=frozenset({"standard"})) option_18 = StrOption(name="description", doc="description", default="Exportation de la base de ejabberd", properties=frozenset({"mandatory", "standard"})) -option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"})) -option_19.impl_set_information('help', "Test help") +option_19 = ChoiceOption(name="day", doc="day", values=("none", "daily", "weekly", "monthly"), default=Calculation(func['jinja_to_function'], Params((), kwargs={'__internal_jinja': ParamValue("default_2.extra.ejabberd.day"), '__internal_type': ParamValue("choice"), '__internal_multi': ParamValue(False), '__activer_ejabberd': ParamOption(option_15, notraisepropertyerror=True)})), properties=frozenset({"mandatory", "standard"}), informations={'help': 'Test help'}) option_20 = ChoiceOption(name="mode", doc="mode", values=("pre", "post"), default="pre", properties=frozenset({"mandatory", "standard"})) optiondescription_17 = OptionDescription(name="ejabberd", doc="ejabberd", children=[option_18, option_19, option_20], properties=frozenset({"standard"})) optiondescription_16 = OptionDescription(name="extra", doc="extra", children=[optiondescription_17], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership/tiramisu/base.py b/tests/dictionaries/60extra_leadership/tiramisu/base.py index 823dc92b6..a557ebd93 100644 --- a/tests/dictionaries/60extra_leadership/tiramisu/base.py +++ b/tests/dictionaries/60extra_leadership/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership/tiramisu/multi.py b/tests/dictionaries/60extra_leadership/tiramisu/multi.py index 4c3936fbc..cf30a36c3 100644 --- a/tests/dictionaries/60extra_leadership/tiramisu/multi.py +++ b/tests/dictionaries/60extra_leadership/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_name/tiramisu/base.py b/tests/dictionaries/60extra_leadership_name/tiramisu/base.py index 04a55ab71..fbcd45c42 100644 --- a/tests/dictionaries/60extra_leadership_name/tiramisu/base.py +++ b/tests/dictionaries/60extra_leadership_name/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py index a379cc70f..1e7d9f5b8 100644 --- a/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py +++ b/tests/dictionaries/60extra_leadership_name/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py b/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py index 04a55ab71..fbcd45c42 100644 --- a/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py +++ b/tests/dictionaries/60extra_leadership_name_item/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py index a379cc70f..1e7d9f5b8 100644 --- a/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py +++ b/tests/dictionaries/60extra_leadership_name_item/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py index e20c66ef4..3bec2640f 100644 --- a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py +++ b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py index cceba94d2..334799c11 100644 --- a/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py +++ b/tests/dictionaries/60extra_leadership_valid_enum/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_load/tiramisu/base.py b/tests/dictionaries/60extra_load/tiramisu/base.py index 93aa66bef..7efe11f03 100644 --- a/tests/dictionaries/60extra_load/tiramisu/base.py +++ b/tests/dictionaries/60extra_load/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_load/tiramisu/multi.py b/tests/dictionaries/60extra_load/tiramisu/multi.py index 2f7534f03..a0d56b081 100644 --- a/tests/dictionaries/60extra_load/tiramisu/multi.py +++ b/tests/dictionaries/60extra_load/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_mandatory/tiramisu/base.py b/tests/dictionaries/60extra_mandatory/tiramisu/base.py index 7ba9f528b..19fbaf974 100644 --- a/tests/dictionaries/60extra_mandatory/tiramisu/base.py +++ b/tests/dictionaries/60extra_mandatory/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_mandatory/tiramisu/multi.py b/tests/dictionaries/60extra_mandatory/tiramisu/multi.py index 49a75eed1..81709b7c9 100644 --- a/tests/dictionaries/60extra_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/60extra_mandatory/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_name_family/tiramisu/base.py b/tests/dictionaries/60extra_name_family/tiramisu/base.py index fd430aca9..aa331d9f0 100644 --- a/tests/dictionaries/60extra_name_family/tiramisu/base.py +++ b/tests/dictionaries/60extra_name_family/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="extra", doc="extra", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_name_family/tiramisu/multi.py b/tests/dictionaries/60extra_name_family/tiramisu/multi.py index 86efd4f48..778bc6dd5 100644 --- a/tests/dictionaries/60extra_name_family/tiramisu/multi.py +++ b/tests/dictionaries/60extra_name_family/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="extra", doc="extra", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_no_condition/tiramisu/base.py b/tests/dictionaries/60extra_no_condition/tiramisu/base.py index 041963fe7..141900031 100644 --- a/tests/dictionaries/60extra_no_condition/tiramisu/base.py +++ b/tests/dictionaries/60extra_no_condition/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/60extra_no_condition/tiramisu/multi.py b/tests/dictionaries/60extra_no_condition/tiramisu/multi.py index c2afed8ec..c04a26c36 100644 --- a/tests/dictionaries/60extra_no_condition/tiramisu/multi.py +++ b/tests/dictionaries/60extra_no_condition/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_6 = StrOption(name="module_instancie", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) diff --git a/tests/dictionaries/60extra_redefine/tiramisu/base.py b/tests/dictionaries/60extra_redefine/tiramisu/base.py index 736276ad1..86b6c9efb 100644 --- a/tests/dictionaries/60extra_redefine/tiramisu/base.py +++ b/tests/dictionaries/60extra_redefine/tiramisu/base.py @@ -1,72 +1,11 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_redefine/tiramisu/multi.py b/tests/dictionaries/60extra_redefine/tiramisu/multi.py index 95b05836e..ff5a9e261 100644 --- a/tests/dictionaries/60extra_redefine/tiramisu/multi.py +++ b/tests/dictionaries/60extra_redefine/tiramisu/multi.py @@ -1,73 +1,12 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} dict_env['default_1.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" dict_env['default_2.extra.ejabberd.day'] = "{{ \"non\" | calc_multi_condition(condition_1=__activer_ejabberd, match=\"none\", mismatch=\"daily\") }}" -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py b/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py index b709fccc9..e832f4c73 100644 --- a/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py +++ b/tests/dictionaries/60extra_variable_name_extra/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_4 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3, option_4], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py b/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py index ade230ba0..5360726b7 100644 --- a/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py +++ b/tests/dictionaries/60extra_variable_name_extra/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) option_5 = StrOption(name="activer_ejabberd", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4, option_5], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60familyaction/tiramisu/base.py b/tests/dictionaries/60familyaction/tiramisu/base.py index 782a354a9..23df18394 100644 --- a/tests/dictionaries/60familyaction/tiramisu/base.py +++ b/tests/dictionaries/60familyaction/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60familyaction/tiramisu/multi.py b/tests/dictionaries/60familyaction/tiramisu/multi.py index 17d733515..14a8f2678 100644 --- a/tests/dictionaries/60familyaction/tiramisu/multi.py +++ b/tests/dictionaries/60familyaction/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py b/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py index 638b5dc2a..2d2c4ed59 100644 --- a/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py +++ b/tests/dictionaries/60familyaction_mandatory/tiramisu/base.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_3 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py b/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py index da84dd8a8..1ed36d715 100644 --- a/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py +++ b/tests/dictionaries/60familyaction_mandatory/tiramisu/multi.py @@ -1,24 +1,10 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') option_4 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"force_default_on_freeze", "frozen", "hidden", "mandatory", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) diff --git a/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml b/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml index 5e447ce5d..5bf778765 100644 --- a/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml +++ b/tests/dictionaries/61extra_dyn/dictionaries/extra/00-base.yml @@ -1,6 +1,6 @@ --- version: '1.1' -ejabberd: +ejabberd{{ suffix }}: type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/61extra_dyn/tiramisu/base.py b/tests/dictionaries/61extra_dyn/tiramisu/base.py index aad953fcf..ea1e670cf 100644 --- a/tests/dictionaries/61extra_dyn/tiramisu/base.py +++ b/tests/dictionaries/61extra_dyn/tiramisu/base.py @@ -1,76 +1,14 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_6 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_5 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) +optiondescription_5 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_3, notraisepropertyerror=True)))), children=[option_6], properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/61extra_dyn/tiramisu/multi.py b/tests/dictionaries/61extra_dyn/tiramisu/multi.py index 01469001a..57f1cc872 100644 --- a/tests/dictionaries/61extra_dyn/tiramisu/multi.py +++ b/tests/dictionaries/61extra_dyn/tiramisu/multi.py @@ -1,84 +1,22 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) option_7 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_6 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_7], properties=frozenset({"standard"})) +optiondescription_6 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_4, notraisepropertyerror=True)))), children=[option_7], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"standard"})) option_11 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_10 = OptionDescription(name="general", doc="général", children=[option_11], properties=frozenset({"standard"})) optiondescription_9 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_10], properties=frozenset({"standard"})) option_14 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_13 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_11, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) +optiondescription_13 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_11, notraisepropertyerror=True)))), children=[option_14], properties=frozenset({"standard"})) optiondescription_12 = OptionDescription(name="extra", doc="extra", children=[optiondescription_13], properties=frozenset({"standard"})) optiondescription_8 = OptionDescription(name="2", doc="2", children=[optiondescription_9, optiondescription_12], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_8]) diff --git a/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml b/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml index 85921bf1b..8c3ae2ac6 100644 --- a/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml +++ b/tests/dictionaries/61extra_dyn_extra/dictionaries/extra/00-base.yml @@ -8,7 +8,7 @@ general: multi: true default: - a -ejabberd: +"ejabberd{{ suffix }}": type: dynamic dynamic: type: variable diff --git a/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py b/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py index 80585e1d2..2c80c9f6d 100644 --- a/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py +++ b/tests/dictionaries/61extra_dyn_extra/tiramisu/base.py @@ -1,78 +1,16 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_3 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_2 = OptionDescription(name="general", doc="général", children=[option_3], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) option_6 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_5 = OptionDescription(name="general", doc="général", children=[option_6], properties=frozenset({"standard"})) option_8 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_7 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"standard"})) +optiondescription_7 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_6, notraisepropertyerror=True)))), children=[option_8], properties=frozenset({"standard"})) optiondescription_4 = OptionDescription(name="extra", doc="extra", children=[optiondescription_5, optiondescription_7], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_4]) diff --git a/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py b/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py index a98874815..1ea6fef07 100644 --- a/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py +++ b/tests/dictionaries/61extra_dyn_extra/tiramisu/multi.py @@ -1,79 +1,17 @@ from tiramisu import * from tiramisu.setting import ALLOWED_LEADER_PROPERTIES +from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription +load_functions('tests/dictionaries/../eosfunc/test.py') ALLOWED_LEADER_PROPERTIES.add("basic") ALLOWED_LEADER_PROPERTIES.add("standard") ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value is not None) -def jinja_to_property_help(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return (prop, f'"{prop}" ({value})') -def valid_with_jinja(warnings_only=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warnings_only: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['jinja_to_property_help'] = jinja_to_property_help -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -from rougail.tiramisu import ConvertDynOptionDescription -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) option_4 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_3 = OptionDescription(name="general", doc="général", children=[option_4], properties=frozenset({"standard"})) optiondescription_2 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_3], properties=frozenset({"standard"})) option_7 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_6 = OptionDescription(name="general", doc="général", children=[option_7], properties=frozenset({"standard"})) option_9 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_8 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_7, notraisepropertyerror=True)))), children=[option_9], properties=frozenset({"standard"})) +optiondescription_8 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_7, notraisepropertyerror=True)))), children=[option_9], properties=frozenset({"standard"})) optiondescription_5 = OptionDescription(name="extra", doc="extra", children=[optiondescription_6, optiondescription_8], properties=frozenset({"standard"})) optiondescription_1 = OptionDescription(name="1", doc="1", children=[optiondescription_2, optiondescription_5], properties=frozenset({"standard"})) option_13 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) @@ -82,7 +20,7 @@ optiondescription_11 = OptionDescription(name="rougail", doc="rougail", children option_16 = StrOption(name="varname", doc="No change", multi=True, default=["a"], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) optiondescription_15 = OptionDescription(name="general", doc="général", children=[option_16], properties=frozenset({"standard"})) option_18 = StrOption(name="mode", doc="mode", properties=frozenset({"standard"})) -optiondescription_17 = ConvertDynOptionDescription(name="ejabberd", doc="ejabberd", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_16, notraisepropertyerror=True)))), children=[option_18], properties=frozenset({"standard"})) +optiondescription_17 = ConvertDynOptionDescription(name="ejabberd{{ suffix }}", doc="ejabberd{{ suffix }}", suffixes=Calculation(func['calc_value'], Params((ParamOption(option_16, notraisepropertyerror=True)))), children=[option_18], properties=frozenset({"standard"})) optiondescription_14 = OptionDescription(name="extra", doc="extra", children=[optiondescription_15, optiondescription_17], properties=frozenset({"standard"})) optiondescription_10 = OptionDescription(name="2", doc="2", children=[optiondescription_11, optiondescription_14], properties=frozenset({"standard"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1, optiondescription_10]) diff --git a/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml deleted file mode 100644 index d3bb1a20f..000000000 --- a/tests/dictionaries/80auto_family/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -general: - variable: - type: string - description: No change - default: 'no' -version: '1.0' diff --git a/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml deleted file mode 100644 index 51acf23a3..000000000 --- a/tests/dictionaries/80base_file_mode_wrong_type/dictionaries/services/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -test.service: - files: - /etc/file: - mode: wrong_mode -version: '1.0' diff --git a/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml deleted file mode 100644 index ee26b935d..000000000 --- a/tests/dictionaries/80check_self/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,13 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - int: - type: number - description: No change - validators: - - type: jinja - jinja: '{{ rougail.general.int | valid_lower(mini=0, maxi=rougail.general.int) - }}' -version: '1.0' diff --git a/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml deleted file mode 100644 index f28b3173f..000000000 --- a/tests/dictionaries/80check_unknown/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - int: - type: number - description: No change - validators: - - type: jinja - jinja: '{{ rougail.general.int | unknown(mini="0", maxi="100") }}' -version: '1.0' diff --git a/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml b/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml deleted file mode 100644 index 3344c8611..000000000 --- a/tests/dictionaries/80check_unknown_var/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,9 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - validators: - - type: jinja - jinja: '{{ rougail.general.mode_conteneur_actif | valid_differ(__int3) }}' -version: '1.0' diff --git a/tests/dictionaries/80check_without_target/errno_9 b/tests/dictionaries/80check_without_target/errno_9 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml deleted file mode 100644 index f7a19a2ba..000000000 --- a/tests/dictionaries/80condition_itself/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,8 +0,0 @@ -test: - replicationtype: - description: replicationType - disabled: - type: jinja - jinja: '{% if rougail.test.replicationtype == "leader-leader" %}true{% else - %}false{% endif %}' -version: '1.0' diff --git a/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml deleted file mode 100644 index 6a3011e35..000000000 --- a/tests/dictionaries/80condition_not_exists_error/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -general: - condition: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80condition_not_exists_error/errno_12 b/tests/dictionaries/80condition_not_exists_error/errno_12 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml b/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml deleted file mode 100644 index 6a3011e35..000000000 --- a/tests/dictionaries/80condition_not_exists_error_var/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -general: - condition: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80condition_not_exists_error_var/errno_12 b/tests/dictionaries/80condition_not_exists_error_var/errno_12 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80condition_without_target/errno_9 b/tests/dictionaries/80condition_without_target/errno_9 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml deleted file mode 100644 index 16cafc592..000000000 --- a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,11 +0,0 @@ -general: - description: général - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: oui - file_name: - type: string - default: /etc/mailname -version: '1.0' diff --git a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml b/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml deleted file mode 100644 index 3d7d61c08..000000000 --- a/tests/dictionaries/80container_files_symlink_without_source/dictionaries/services/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -test.service: - files: - rougail.general.file_name: - type: variable -version: '1.0' diff --git a/tests/dictionaries/80container_files_symlink_without_source/errno_34 b/tests/dictionaries/80container_files_symlink_without_source/errno_34 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml deleted file mode 100644 index c3e916c03..000000000 --- a/tests/dictionaries/80container_filesredefine_error/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,8 +0,0 @@ -general: - description: général - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: oui -version: '1.0' diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml deleted file mode 100644 index e25233253..000000000 --- a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -test.service: - files: - /etc/mailname: {} -version: '1.0' diff --git a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml b/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml deleted file mode 100644 index 138b4172c..000000000 --- a/tests/dictionaries/80container_filesredefine_error/dictionaries/services/01-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -test.service: - files: - /etc/mailname: - source: mailname.new -version: '1.0' diff --git a/tests/dictionaries/80container_filesredefine_error/errno_45 b/tests/dictionaries/80container_filesredefine_error/errno_45 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_dir/__init__.py b/tests/dictionaries/80empty_dir/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_dir/errno_77 b/tests/dictionaries/80empty_dir/errno_77 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_param_number/__init__.py b/tests/dictionaries/80empty_param_number/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_typeeole_eole/__init__.py b/tests/dictionaries/80empty_typeeole_eole/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_typeeole_eole/errno_27 b/tests/dictionaries/80empty_typeeole_eole/errno_27 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_typeeole_number/__init__.py b/tests/dictionaries/80empty_typeeole_number/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80empty_typeeole_number/errno_27 b/tests/dictionaries/80empty_typeeole_number/errno_27 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml index 47d02767d..4b3464307 100644 --- a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml +++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra/00-base.yml @@ -1,21 +1,4 @@ -ejabberd: - description: - type: string - default: Exportation de la base de ejabberd - day: - type: choice - mandatory: true - default: none - choices: - - none - - daily - - weekly - - monthly - mode: - type: choice - mandatory: true - default: pre - choices: - - pre - - post +--- version: '1.0' +extra_var: + type: string diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml index 0765adcd8..df9f2c619 100644 --- a/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml +++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/extra1/00-base.yml @@ -1,8 +1,6 @@ -external: - description: - type: string - default: - type: jinja - jinja: '{{ "non" | calc_multi_condition(condition_1=__extra.ejabberd.day, match="none", - mismatch="daily") }}' +--- version: '1.0' +extra1: + default: + type: variable + variable: extra.extra_var diff --git a/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml index 957459af9..9fb6c1443 100644 --- a/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80extra_externalspaceauto/dictionaries/rougail/00-base.yml @@ -1,8 +1,4 @@ -general: - description: général - activer_ejabberd: - type: string - description: No change - hidden: true - default: non +--- version: '1.0' +ejabberd: + default: "no" diff --git a/tests/dictionaries/80extra_externalspacecondition2/errno_38 b/tests/dictionaries/80extra_externalspaceauto/errno_38 similarity index 100% rename from tests/dictionaries/80extra_externalspacecondition2/errno_38 rename to tests/dictionaries/80extra_externalspaceauto/errno_38 diff --git a/tests/dictionaries/80extra_externalspaceauto/errno_41 b/tests/dictionaries/80extra_externalspaceauto/errno_41 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80condition_not_exists_error/__init__.py b/tests/dictionaries/80extra_externalspacecondition/__init__.py similarity index 100% rename from tests/dictionaries/80condition_not_exists_error/__init__.py rename to tests/dictionaries/80extra_externalspacecondition/__init__.py diff --git a/tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition/dictionaries/extra/00-base.yml similarity index 51% rename from tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml rename to tests/dictionaries/80extra_externalspacecondition/dictionaries/extra/00-base.yml index 992946427..2e1cb90ad 100644 --- a/tests/dictionaries/80variable_extra/dictionaries/extra/00-base.yml +++ b/tests/dictionaries/80extra_externalspacecondition/dictionaries/extra/00-base.yml @@ -1,2 +1,3 @@ -day: {} +--- version: '1.0' +variable: diff --git a/tests/dictionaries/80extra_externalspacecondition/dictionaries/extra1/00-base.yml b/tests/dictionaries/80extra_externalspacecondition/dictionaries/extra1/00-base.yml new file mode 100644 index 000000000..3494c8ca0 --- /dev/null +++ b/tests/dictionaries/80extra_externalspacecondition/dictionaries/extra1/00-base.yml @@ -0,0 +1,9 @@ +--- +version: '1.0' +external: + disabled: + type: jinja + jinja: | + {% if extra.variable == "no" %} + disabled + {% endif %} diff --git a/tests/dictionaries/80extra_externalspacecondition3/errno_38 b/tests/dictionaries/80extra_externalspacecondition/errno_38 similarity index 100% rename from tests/dictionaries/80extra_externalspacecondition3/errno_38 rename to tests/dictionaries/80extra_externalspacecondition/errno_38 diff --git a/tests/dictionaries/80extra_externalspacecondition2/__init__.py b/tests/dictionaries/80extra_externalspacecondition2/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml deleted file mode 100644 index 47d02767d..000000000 --- a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra/00-base.yml +++ /dev/null @@ -1,21 +0,0 @@ -ejabberd: - description: - type: string - default: Exportation de la base de ejabberd - day: - type: choice - mandatory: true - default: none - choices: - - none - - daily - - weekly - - monthly - mode: - type: choice - mandatory: true - default: pre - choices: - - pre - - post -version: '1.0' diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml deleted file mode 100644 index aedf01921..000000000 --- a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/extra1/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -external: - description: - type: string - default: test -version: '1.0' diff --git a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml deleted file mode 100644 index 957459af9..000000000 --- a/tests/dictionaries/80extra_externalspacecondition2/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,8 +0,0 @@ -general: - description: général - activer_ejabberd: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80extra_externalspacecondition3/__init__.py b/tests/dictionaries/80extra_externalspacecondition3/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml deleted file mode 100644 index aedf01921..000000000 --- a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/extra/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -external: - description: - type: string - default: test -version: '1.0' diff --git a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml deleted file mode 100644 index 957459af9..000000000 --- a/tests/dictionaries/80extra_externalspacecondition3/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,8 +0,0 @@ -general: - description: général - activer_ejabberd: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80extra_rougail/__init__.py b/tests/dictionaries/80extra_rougail/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml deleted file mode 100644 index c1f5b2a24..000000000 --- a/tests/dictionaries/80extra_rougail/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non - activer_ejabberd: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80extra_rougail/errno_21 b/tests/dictionaries/80extra_rougail/errno_21 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_services/__init__.py b/tests/dictionaries/80extra_services/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml b/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml deleted file mode 100644 index c1f5b2a24..000000000 --- a/tests/dictionaries/80extra_services/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non - activer_ejabberd: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml b/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml deleted file mode 100644 index 47d02767d..000000000 --- a/tests/dictionaries/80extra_services/dictionaries/services/00-base.yml +++ /dev/null @@ -1,21 +0,0 @@ -ejabberd: - description: - type: string - default: Exportation de la base de ejabberd - day: - type: choice - mandatory: true - default: none - choices: - - none - - daily - - weekly - - monthly - mode: - type: choice - mandatory: true - default: pre - choices: - - pre - - post -version: '1.0' diff --git a/tests/dictionaries/80extra_services/errno_21 b/tests/dictionaries/80extra_services/errno_21 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_appendaccent/__init__.py b/tests/dictionaries/80family_appendaccent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml deleted file mode 100644 index 009515298..000000000 --- a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,16 +0,0 @@ -Général: - mode_conteneur_actif: - type: string - description: No change - default: non - disabled: - type: jinja - jinja: '{% if rougail.Other.mode_conteneur_actif3 == "non" %}true{% else %}false{% - endif %}' -Other: - mode_conteneur_actif3: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml deleted file mode 100644 index d50b486ea..000000000 --- a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -Général: - mode_conteneur_actif1: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml b/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml deleted file mode 100644 index bce32b41b..000000000 --- a/tests/dictionaries/80family_appendaccent/dictionaries/rougail/02-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - mode_conteneur_actif2: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80family_appendaccent/errno_76 b/tests/dictionaries/80family_appendaccent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_change/__init__.py b/tests/dictionaries/80family_change/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml deleted file mode 100644 index bbe3024d2..000000000 --- a/tests/dictionaries/80family_change/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non - mode_conteneur_actif1: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml b/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml deleted file mode 100644 index 2cbc7c499..000000000 --- a/tests/dictionaries/80family_change/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -other: - mode_conteneur_actif1: - redefine: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80family_change/errno_47 b/tests/dictionaries/80family_change/errno_47 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/__init__.py b/tests/dictionaries/80family_dynamic_calc_invalid_suffix/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml deleted file mode 100644 index 756059a70..000000000 --- a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,26 +0,0 @@ -general: - varname: - type: string - description: No change - multi: true - default: - - val1 - - val2 -dyn: - type: dynamic - variable: rougail.general.varname - vardyn: - type: string - description: No change - default: - type: jinja - jinja: '{{ __suffix | calc_val }}' - params: - __suffix: - type: suffix - text: unknown -new: - newvar: - type: string - description: No change -version: '1.0' diff --git a/tests/dictionaries/80family_dynamic_check/__init__.py b/tests/dictionaries/80family_dynamic_check/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml deleted file mode 100644 index 4f8cf4b0d..000000000 --- a/tests/dictionaries/80family_dynamic_check/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,15 +0,0 @@ -general: - varname: - type: string - description: No change - multi: true - default: - - val1 - - val2 -dyn: - type: dynamic - variable: rougail.general.varname - vardyn: - type: number - description: No change -version: '1.0' diff --git a/tests/dictionaries/80family_dynamic_check/errno_35 b/tests/dictionaries/80family_dynamic_check/errno_35 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml index 0ec58f9e7..d3fb4b47f 100644 --- a/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80family_dynamic_not_multi/dictionaries/rougail/00-base.yml @@ -1,12 +1,11 @@ -general: - varname: - type: string - description: No change - default: val1 -dyn: +--- +version: '1.1' +varname: + default: val1 +dyn{{ suffix }}: type: dynamic - variable: rougail.general.varname + dynamic: + type: variable + variable: _.varname vardyn: type: string - description: No change -version: '1.0' diff --git a/tests/dictionaries/80hidden_if_in_dynamic/errno_20 b/tests/dictionaries/80family_dynamic_not_multi/errno_20 similarity index 100% rename from tests/dictionaries/80hidden_if_in_dynamic/errno_20 rename to tests/dictionaries/80family_dynamic_not_multi/errno_20 diff --git a/tests/dictionaries/80condition_not_exists_error_var/__init__.py b/tests/dictionaries/80family_dynamic_unknown_variable/__init__.py similarity index 100% rename from tests/dictionaries/80condition_not_exists_error_var/__init__.py rename to tests/dictionaries/80family_dynamic_unknown_variable/__init__.py diff --git a/tests/dictionaries/80family_dynamic_unknown_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_dynamic_unknown_variable/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..6b8e485ad --- /dev/null +++ b/tests/dictionaries/80family_dynamic_unknown_variable/dictionaries/rougail/00-base.yml @@ -0,0 +1,15 @@ +--- +version: '1.0' +varname: + multi: true + default: + - val1 + - val2 + +"{{ suffix }}_dyn": + type: dynamic + variable: rougail.varname + var1: + default: + type: variable + variable: rougail.val1_dyn.unknown diff --git a/tests/dictionaries/80invalid_bool/errno_88 b/tests/dictionaries/80family_dynamic_unknown_variable/errno_88 similarity index 100% rename from tests/dictionaries/80invalid_bool/errno_88 rename to tests/dictionaries/80family_dynamic_unknown_variable/errno_88 diff --git a/tests/dictionaries/80family_dynamic_with_family/__init__.py b/tests/dictionaries/80family_dynamic_with_family/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_dynamic_with_family/errno_22 b/tests/dictionaries/80family_dynamic_with_family/errno_22 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml index 444bd5692..43c57f747 100644 --- a/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80family_not_dynamic_calc_suffix/dictionaries/rougail/00-base.yml @@ -1,26 +1,5 @@ -general: - varname: - type: string - description: No change - multi: true - default: - - val1 - - val2 -dyn: - type: dynamic - variable: rougail.general.varname - vardyn: - type: string - description: No change - default: val -new: - newvar: - type: string - description: No change - default: - type: jinja - jinja: '{{ __suffix | calc_val }}' - params: - __suffix: - type: suffix +--- version: '1.0' +newvar: + default: + type: suffix diff --git a/tests/dictionaries/80family_only_on_suffix/__init__.py b/tests/dictionaries/80family_only_on_suffix/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml deleted file mode 100644 index 4839ed54c..000000000 --- a/tests/dictionaries/80family_only_on_suffix/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,15 +0,0 @@ -general: - varname: - type: string - description: No change - multi: true - default: - - val1 - - val2 -dyn: - type: dynamic - variable: rougail.general.varname - vardyn: - type: string - description: No change -version: '1.0' diff --git a/tests/dictionaries/80family_only_on_suffix/errno_35 b/tests/dictionaries/80family_only_on_suffix/errno_35 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml index eec4e3781..b952c3f7a 100644 --- a/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80family_several/dictionaries/rougail/00-base.yml @@ -1,23 +1,6 @@ -general: - leader: - description: leader - type: leadership - leader: - type: string - description: leader - multi: true - follower1: - type: string - description: follower1 - multi: true - default: - type: jinja - jinja: '{{ "valfill" | calc_val }}' - follower2: - type: string - description: follower2 - multi: true - default: - type: jinja - jinja: '{{ rougail.general.leader.follower1 | calc_val }}' +--- version: '1.0' +general: + variable1: +general: + variable2: diff --git a/tests/dictionaries/80family_dynamic_not_multi/errno_16 b/tests/dictionaries/80family_underscode/errno_16 similarity index 100% rename from tests/dictionaries/80family_dynamic_not_multi/errno_16 rename to tests/dictionaries/80family_underscode/errno_16 diff --git a/tests/dictionaries/80family_unique/__init__.py b/tests/dictionaries/80family_unique/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml deleted file mode 100644 index de1df1b2e..000000000 --- a/tests/dictionaries/80family_unique/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -general: - general: - my_variable: {} -version: '1.0' diff --git a/tests/dictionaries/80family_unique/errno_55 b/tests/dictionaries/80family_unique/errno_55 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_variable_not_same_name/__init__.py b/tests/dictionaries/80family_variable_not_same_name/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml deleted file mode 100644 index 1494c992a..000000000 --- a/tests/dictionaries/80family_variable_not_same_name/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,2 +0,0 @@ -general: {} -version: '1.0' diff --git a/tests/dictionaries/80family_variable_not_same_name/errno_57 b/tests/dictionaries/80family_variable_not_same_name/errno_57 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80family_variable_not_same_name/no_yml b/tests/dictionaries/80family_variable_not_same_name/no_yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80familyaction_accent/__init__.py b/tests/dictionaries/80familyaction_accent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml b/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml deleted file mode 100644 index 2ccc3ff50..000000000 --- a/tests/dictionaries/80familyaction_accent/dictionaries/extra/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -test: - delay: - type: number - description: délai en minutes avant lancement - default: 0 -version: '1.0' diff --git a/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0c0c9bc69..000000000 --- a/tests/dictionaries/80familyaction_accent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -général: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80familyaction_accent/errno_76 b/tests/dictionaries/80familyaction_accent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_group_wrong_type/__init__.py b/tests/dictionaries/80file_group_wrong_type/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml deleted file mode 100644 index 2f570f39e..000000000 --- a/tests/dictionaries/80file_group_wrong_type/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -group: - type: string - default: nobody -version: '1.0' diff --git a/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml deleted file mode 100644 index 9c28101bc..000000000 --- a/tests/dictionaries/80file_group_wrong_type/dictionaries/services/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -test.service: - files: - /etc/file: - group: - name: rougail.group - type: variable -version: '1.0' diff --git a/tests/dictionaries/80file_group_wrong_type/errno_58 b/tests/dictionaries/80file_group_wrong_type/errno_58 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_owner_wrong_type/__init__.py b/tests/dictionaries/80file_owner_wrong_type/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0088a6c8a..000000000 --- a/tests/dictionaries/80file_owner_wrong_type/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -general: - owner: - type: string - default: nobody -version: '1.0' diff --git a/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml deleted file mode 100644 index 584dbb3b2..000000000 --- a/tests/dictionaries/80file_owner_wrong_type/dictionaries/services/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -test.service: - files: - /etc/file: - owner: - name: rougail.general.owner - type: variable -version: '1.0' diff --git a/tests/dictionaries/80file_owner_wrong_type/errno_58 b/tests/dictionaries/80file_owner_wrong_type/errno_58 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_wrong_type/__init__.py b/tests/dictionaries/80file_wrong_type/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml deleted file mode 100644 index f417d36e2..000000000 --- a/tests/dictionaries/80file_wrong_type/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -file_name: - type: string - default: /etc/mailname -version: '1.0' diff --git a/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml deleted file mode 100644 index efe680d12..000000000 --- a/tests/dictionaries/80file_wrong_type/dictionaries/services/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -test.service: - files: - rougail.file_name: - source: mailname - type: variable -version: '1.0' diff --git a/tests/dictionaries/80file_wrong_type/errno_58 b/tests/dictionaries/80file_wrong_type/errno_58 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_baseaccent/__init__.py b/tests/dictionaries/80fill_baseaccent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml deleted file mode 100644 index 11221492c..000000000 --- a/tests/dictionaries/80fill_baseaccent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,13 +0,0 @@ -Général: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: - type: jinja - jinja: '{{ rougail.Général.mode_conteneur_actif1 | calc_val }}' - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80fill_baseaccent/errno_76 b/tests/dictionaries/80fill_baseaccent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_error/__init__.py b/tests/dictionaries/80fill_error/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml deleted file mode 100644 index abcb1c8ae..000000000 --- a/tests/dictionaries/80fill_error/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,9 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: - type: jinja - jinja: '{{ "valeur2" | calc_val }}' -version: '1.0' diff --git a/tests/dictionaries/80fill_multi/__init__.py b/tests/dictionaries/80fill_multi/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_multi/errno_24 b/tests/dictionaries/80fill_multi/errno_24 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_not_exists/__init__.py b/tests/dictionaries/80fill_not_exists/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml deleted file mode 100644 index eae9f060f..000000000 --- a/tests/dictionaries/80fill_not_exists/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,14 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: - type: jinja - jinja: '{{ __mode_conteneur_actif4 | calc_val(rougail.general.mode_conteneur_actif1, - __mode_conteneur_actif3) }}' - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80fill_not_exists/errno_42 b/tests/dictionaries/80fill_not_exists/errno_42 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_option/__init__.py b/tests/dictionaries/80fill_option/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml deleted file mode 100644 index ab500946e..000000000 --- a/tests/dictionaries/80fill_option/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: - type: jinja - jinja: '{{ rougail.general.mode_conteneur_actif1 | calc_val }}' - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80fill_option/errno_90 b/tests/dictionaries/80fill_option/errno_90 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_unknown_function/__init__.py b/tests/dictionaries/80fill_unknown_function/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml b/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml deleted file mode 100644 index a925aa74f..000000000 --- a/tests/dictionaries/80fill_unknown_function/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: - type: jinja - jinja: '{{ rougail.general.mode_conteneur_actif1 | unknown_function }}' - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80frozenifin_unknown/__init__.py b/tests/dictionaries/80frozenifin_unknown/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml deleted file mode 100644 index 1fa089105..000000000 --- a/tests/dictionaries/80frozenifin_unknown/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,24 +0,0 @@ -general: - mode: advanced - mode_conteneur_actif: - type: string - description: No change - default: non -enumfam: - mode: advanced - enumvar: - type: choice - description: enumvar - help: bla bla bla - default: 1 - choices: - - 1 - - 2 - - 3 - test_variable: - type: number - description: test variable - hidden: - type: jinja - jinja: '{% if __condition == "4" %}true{% else %}false{% endif %}' -version: '1.0' diff --git a/tests/dictionaries/80frozenifin_unknown/errno_23 b/tests/dictionaries/80frozenifin_unknown/errno_23 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80hidden_if_in_dynamic/__init__.py b/tests/dictionaries/80hidden_if_in_dynamic/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml b/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml deleted file mode 100644 index f521d0fbc..000000000 --- a/tests/dictionaries/80hidden_if_in_dynamic/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,23 +0,0 @@ -general: - varname: - type: string - description: No change - multi: true - default: - - val1 - - val2 -dyn: - type: dynamic - variable: rougail.general.varname - vardyn: - type: string - description: No change - default: val -new: - newvar: - type: string - description: No change - hidden: - type: jinja - jinja: '{% if __vardynval1 == "non" %}true{% else %}false{% endif %}' -version: '1.0' diff --git a/tests/dictionaries/80hidden_if_in_filelist/__init__.py b/tests/dictionaries/80hidden_if_in_filelist/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml deleted file mode 100644 index b7524fed1..000000000 --- a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,11 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non - condition: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml b/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml deleted file mode 100644 index f17b0d641..000000000 --- a/tests/dictionaries/80hidden_if_in_filelist/dictionaries/services/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -test.service: - files: - /tmp/file1: - hidden: - type: jinja - jinja: '{% if __activer_clam == "non" %}true{% else %}false{% endif %}' -version: '1.0' diff --git a/tests/dictionaries/80hidden_if_in_filelist/errno_10 b/tests/dictionaries/80hidden_if_in_filelist/errno_10 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_bool/__init__.py b/tests/dictionaries/80invalid_bool/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_dtd/__init__.py b/tests/dictionaries/80invalid_dtd/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_dtd/errno_43 b/tests/dictionaries/80invalid_dtd/errno_43 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_dtd/no_yml b/tests/dictionaries/80invalid_dtd/no_yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_xml/__init__.py b/tests/dictionaries/80invalid_xml/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_xml/errno_52 b/tests/dictionaries/80invalid_xml/errno_52 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80invalid_xml/no_yml b/tests/dictionaries/80invalid_xml/no_yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_accent/__init__.py b/tests/dictionaries/80leadership_accent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml deleted file mode 100644 index dcbccaaa9..000000000 --- a/tests/dictionaries/80leadership_accent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,17 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: non -general1: - leader: - description: leader - type: leadership - leader: - type: string - multi: true - Followér1: - type: string - Followér2: - type: string -version: '1.0' diff --git a/tests/dictionaries/80leadership_accent/errno_76 b/tests/dictionaries/80leadership_accent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_accent_leader/__init__.py b/tests/dictionaries/80leadership_accent_leader/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml deleted file mode 100644 index 402446108..000000000 --- a/tests/dictionaries/80leadership_accent_leader/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,23 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: non -general1: - Léader: - description: Léader - type: leadership - Léader: - type: string - multi: true - follower1: - type: string - default: - type: jinja - jinja: '{{ "valfill" | calc_val }}' - follower2: - type: string - default: - type: jinja - jinja: '{{ rougail.general1.Léader.follower1 | calc_val }}' -version: '1.0' diff --git a/tests/dictionaries/80leadership_accent_leader/errno_76 b/tests/dictionaries/80leadership_accent_leader/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_familyaccent/__init__.py b/tests/dictionaries/80leadership_familyaccent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml deleted file mode 100644 index fa1e077c2..000000000 --- a/tests/dictionaries/80leadership_familyaccent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,25 +0,0 @@ -Général: - mode_conteneur_actif: - type: string - description: No change - default: non - leader: - description: leader - type: leadership - leader: - type: string - description: leader - multi: true - follower1: - type: string - description: follower1 - default: - type: jinja - jinja: '{{ "valfill" | calc_val }}' - follower2: - type: string - description: follower2 - default: - type: jinja - jinja: '{{ rougail.Général.leader.follower1 | calc_val }}' -version: '1.0' diff --git a/tests/dictionaries/80leadership_familyaccent/errno_76 b/tests/dictionaries/80leadership_familyaccent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml b/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml index 322ed06b7..b2587f880 100644 --- a/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80leadership_subfamily/dictionaries/rougail/00-base.yml @@ -1,11 +1,8 @@ version: '1.0' -general1: +leader: + type: leadership leader: - description: leader - type: leadership - leader: - type: string - description: leader - multi: true - follower1: - type: family + multi: true + follower: + family: + type: family diff --git a/tests/dictionaries/80fill_error/errno_24 b/tests/dictionaries/80leadership_subfamily/errno_24 similarity index 100% rename from tests/dictionaries/80fill_error/errno_24 rename to tests/dictionaries/80leadership_subfamily/errno_24 diff --git a/tests/dictionaries/80leadership_subfamily/tiramisu/base.py b/tests/dictionaries/80leadership_subfamily/tiramisu/base.py deleted file mode 100644 index 364ae9048..000000000 --- a/tests/dictionaries/80leadership_subfamily/tiramisu/base.py +++ /dev/null @@ -1,38 +0,0 @@ -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -class func: - pass - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - setattr(func, function, getattr(func_, function)) -_load_functions('tests/dictionaries/../eosfunc/test.py') -try: - from tiramisu4 import * - from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES -except: - from tiramisu import * - from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) -optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"standard"})) -option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) -option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"standard"})) -option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"standard"})) -optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"standard"})) -option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"standard"})) -option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"standard"})) -option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"standard"})) -optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"standard"})) -optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"standard"})) -optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"standard"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12]) diff --git a/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py b/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py deleted file mode 100644 index d633baae2..000000000 --- a/tests/dictionaries/80leadership_subfamily/tiramisu/multi.py +++ /dev/null @@ -1,52 +0,0 @@ -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -class func: - pass - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - setattr(func, function, getattr(func_, function)) -_load_functions('tests/dictionaries/../eosfunc/test.py') -try: - from tiramisu4 import * - from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES -except: - from tiramisu import * - from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) -optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"standard"})) -option_5 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) -option_6 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"standard"})) -option_7 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_6)))), properties=frozenset({"standard"})) -optiondescription_4 = Leadership(name="leader", doc="leader", children=[option_5, option_6, option_7], properties=frozenset({"standard"})) -option_9 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"standard"})) -option_10 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"standard"})) -option_11 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"standard"})) -optiondescription_8 = Leadership(name="leader1", doc="leader", children=[option_9, option_10, option_11], properties=frozenset({"standard"})) -optiondescription_3 = OptionDescription(name="general1", doc="general1", children=[optiondescription_4, optiondescription_8], properties=frozenset({"standard"})) -optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3], properties=frozenset({"standard"})) -optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24]) -option_13 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"mandatory", "standard"})) -optiondescription_12 = OptionDescription(name="general", doc="general", children=[option_13], properties=frozenset({"standard"})) -option_16 = StrOption(name="leader", doc="leader", multi=True, properties=frozenset({"standard"})) -option_17 = StrOption(name="follower1", doc="follower1", multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})), properties=frozenset({"standard"})) -option_18 = StrOption(name="follower2", doc="follower2", multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_17)))), properties=frozenset({"standard"})) -optiondescription_15 = Leadership(name="leader", doc="leader", children=[option_16, option_17, option_18], properties=frozenset({"standard"})) -option_20 = StrOption(name="leader1", doc="leader", multi=True, properties=frozenset({"standard"})) -option_21 = StrOption(name="follower11", doc="follower1", multi=True, properties=frozenset({"standard"})) -option_22 = StrOption(name="follower21", doc="follower2", multi=True, properties=frozenset({"standard"})) -optiondescription_19 = Leadership(name="leader1", doc="leader", children=[option_20, option_21, option_22], properties=frozenset({"standard"})) -optiondescription_14 = OptionDescription(name="general1", doc="general1", children=[optiondescription_15, optiondescription_19], properties=frozenset({"standard"})) -optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_12, optiondescription_14], properties=frozenset({"standard"})) -optiondescription_25 = OptionDescription(name="2", doc="2", children=[optiondescription_26]) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_25]) diff --git a/tests/dictionaries/80load_disabled_if_inaccent_family/__init__.py b/tests/dictionaries/80load_disabled_if_inaccent_family/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml deleted file mode 100644 index 3edeea471..000000000 --- a/tests/dictionaries/80load_disabled_if_inaccent_family/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,32 +0,0 @@ -Général: - condition: - type: string - description: No change - default: non - mode_conteneur_actif: - type: string - description: No change - default: non - disabled: - type: jinja - jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif - %}' - mode_conteneur_actif2: - type: string - description: No change - default: non - disabled: - type: jinja - jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif - %}' -Général2: - mode_conteneur_actif3: - type: string - description: No change - hidden: true - default: non - disabled: - type: jinja - jinja: '{% if rougail.Général.condition == "oui" %}true{% else %}false{% endif - %}' -version: '1.0' diff --git a/tests/dictionaries/80load_disabled_if_inaccent_family/errno_76 b/tests/dictionaries/80load_disabled_if_inaccent_family/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_emptyvalue/__init__.py b/tests/dictionaries/80load_emptyvalue/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml deleted file mode 100644 index 601dd0138..000000000 --- a/tests/dictionaries/80load_emptyvalue/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change -version: '1.0' diff --git a/tests/dictionaries/80load_emptyvalue/errno_95 b/tests/dictionaries/80load_emptyvalue/errno_95 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_leadership_normalize_family/__init__.py b/tests/dictionaries/80load_leadership_normalize_family/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml deleted file mode 100644 index 1646e3575..000000000 --- a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,20 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: non -general-1: - leader: - description: leader - type: leadership - leader: - type: string - description: leader - multi: true - follower1: - type: string - description: follower1 - follower2: - type: string - description: follower2 -version: '1.0' diff --git a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml b/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml deleted file mode 100644 index 82fe13f56..000000000 --- a/tests/dictionaries/80load_leadership_normalize_family/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -general-1: - leader: - redefine: true - mandatory: true -version: '1.0' diff --git a/tests/dictionaries/80load_leadership_normalize_family/errno_76 b/tests/dictionaries/80load_leadership_normalize_family/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_mandatoryifin_family/__init__.py b/tests/dictionaries/80load_mandatoryifin_family/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80load_mandatoryifin_family/errno_51 b/tests/dictionaries/80load_mandatoryifin_family/errno_51 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml b/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml index 4d572a0f4..03253b1b0 100644 --- a/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80mode_conflict/dictionaries/rougail/00-base.yml @@ -1,10 +1,7 @@ -server_deployed: - type: boolean +--- +version: '1.0' general: - mode: normal + mode: standard mode_conteneur_actif: - type: string - description: No change mode: advanced default: non -version: '1.0' diff --git a/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml b/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml index 545d207c3..7fe5bf583 100644 --- a/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80mode_leadership_conflict/dictionaries/rougail/00-base.yml @@ -19,7 +19,7 @@ leadermode: follower1: type: string description: follower1 - mode: normal + mode: standard follower2: type: string description: follower2 diff --git a/tests/dictionaries/80nil_with_value/__init__.py b/tests/dictionaries/80nil_with_value/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml b/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml deleted file mode 100644 index 70b006087..000000000 --- a/tests/dictionaries/80nil_with_value/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,24 +0,0 @@ -general: - condition: - type: string - description: No change - default: non - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: non - disabled: - type: jinja - jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif - %}' - mode_conteneur_actif2: - type: string - description: No change - hidden: true - default: non - disabled: - type: jinja - jinja: '{% if rougail.general.condition == null %}true{% else %}false{% endif - %}' -version: '1.0' diff --git a/tests/dictionaries/80nil_with_value/errno_40 b/tests/dictionaries/80nil_with_value/errno_40 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml b/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml index 08a03ce39..db2e1244e 100644 --- a/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80no_leadership_index/dictionaries/rougail/00-base.yml @@ -1,8 +1,9 @@ +--- +version: '1.0' my_variable: default: type: jinja - jinja: '{{ __index | calc_val }}' + jinja: '{{ index }}' params: - __index: + index: type: index -version: '1.0' diff --git a/tests/dictionaries/80fill_unknown_function/errno_25 b/tests/dictionaries/80no_leadership_index/errno_25 similarity index 100% rename from tests/dictionaries/80fill_unknown_function/errno_25 rename to tests/dictionaries/80no_leadership_index/errno_25 diff --git a/tests/dictionaries/80condition_without_target/__init__.py b/tests/dictionaries/80no_leadership_index2/__init__.py similarity index 100% rename from tests/dictionaries/80condition_without_target/__init__.py rename to tests/dictionaries/80no_leadership_index2/__init__.py diff --git a/tests/dictionaries/80no_leadership_index2/dictionaries/rougail/00-base.yml b/tests/dictionaries/80no_leadership_index2/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..b9ae87ad4 --- /dev/null +++ b/tests/dictionaries/80no_leadership_index2/dictionaries/rougail/00-base.yml @@ -0,0 +1,6 @@ +--- +version: '1.0' +my_variable: + type: number + default: + type: index diff --git a/tests/dictionaries/80no_leadership_index/errno_60 b/tests/dictionaries/80no_leadership_index2/errno_60 similarity index 100% rename from tests/dictionaries/80no_leadership_index/errno_60 rename to tests/dictionaries/80no_leadership_index2/errno_60 diff --git a/tests/dictionaries/80container_files_symlink_without_source/__init__.py b/tests/dictionaries/80no_version/__init__.py similarity index 100% rename from tests/dictionaries/80container_files_symlink_without_source/__init__.py rename to tests/dictionaries/80no_version/__init__.py diff --git a/tests/dictionaries/80no_version/dictionaries/rougail/00-base.yml b/tests/dictionaries/80no_version/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..749c09cc7 --- /dev/null +++ b/tests/dictionaries/80no_version/dictionaries/rougail/00-base.yml @@ -0,0 +1,2 @@ +--- +variable: diff --git a/tests/dictionaries/80empty_param_number/errno_27 b/tests/dictionaries/80no_version/errno_27 similarity index 100% rename from tests/dictionaries/80empty_param_number/errno_27 rename to tests/dictionaries/80no_version/errno_27 diff --git a/tests/dictionaries/80override_twice/__init__.py b/tests/dictionaries/80override_twice/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml b/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml deleted file mode 100644 index 6522280e9..000000000 --- a/tests/dictionaries/80override_twice/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml b/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml deleted file mode 100644 index 77725cdaa..000000000 --- a/tests/dictionaries/80override_twice/dictionaries/services/00-base.yml +++ /dev/null @@ -1,3 +0,0 @@ -test.service: - override: null -version: '1.0' diff --git a/tests/dictionaries/80override_twice/errno_69 b/tests/dictionaries/80override_twice/errno_69 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80override_twice/no_yml b/tests/dictionaries/80override_twice/no_yml deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_double_error/__init__.py b/tests/dictionaries/80redefine_double_error/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml deleted file mode 100644 index da1ea3c58..000000000 --- a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: Redefine description - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml deleted file mode 100644 index 7c59b7f2b..000000000 --- a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -general: - mode_conteneur_actif: - redefine: true -version: '1.0' diff --git a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml b/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml deleted file mode 100644 index 7fbcd3a39..000000000 --- a/tests/dictionaries/80redefine_double_error/dictionaries/rougail/02-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -general: - mode_conteneur_actif: - redefine: true - type: string -version: '1.0' diff --git a/tests/dictionaries/80redefine_double_error/errno_48 b/tests/dictionaries/80redefine_double_error/errno_48 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml index da1ea3c58..94a3341b9 100644 --- a/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80redefine_error/dictionaries/rougail/00-base.yml @@ -1,7 +1,3 @@ -general: - mode_conteneur_actif: - type: string - description: Redefine description - hidden: true - default: non +--- version: '1.0' +mode_conteneur_actif: diff --git a/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml index da1ea3c58..94a3341b9 100644 --- a/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml +++ b/tests/dictionaries/80redefine_error/dictionaries/rougail/01-redefine.yml @@ -1,7 +1,3 @@ -general: - mode_conteneur_actif: - type: string - description: Redefine description - hidden: true - default: non +--- version: '1.0' +mode_conteneur_actif: diff --git a/tests/dictionaries/80redefine_fillerror/__init__.py b/tests/dictionaries/80redefine_fillerror/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml deleted file mode 100644 index 70007ac9f..000000000 --- a/tests/dictionaries/80redefine_fillerror/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,9 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - hidden: true - default: - type: jinja - jinja: '{{ "valeur" | calc_val }}' -version: '1.0' diff --git a/tests/dictionaries/80redefine_fillerror/errno_24 b/tests/dictionaries/80redefine_fillerror/errno_24 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_type/__init__.py b/tests/dictionaries/80redefine_type/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml deleted file mode 100644 index da1ea3c58..000000000 --- a/tests/dictionaries/80redefine_type/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: Redefine description - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml b/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml deleted file mode 100644 index 58125ae27..000000000 --- a/tests/dictionaries/80redefine_type/dictionaries/rougail/01-redefine.yml +++ /dev/null @@ -1,5 +0,0 @@ -general: - mode_conteneur_actif: - redefine: true - type: number -version: '1.0' diff --git a/tests/dictionaries/80redefine_type/errno_48 b/tests/dictionaries/80redefine_type/errno_48 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80remove_fill_no_fill/__init__.py b/tests/dictionaries/80remove_fill_no_fill/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml deleted file mode 100644 index 9d415e2b0..000000000 --- a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,10 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: oui - mode_conteneur_actif1: - type: string - description: No change - default: non -version: '1.0' diff --git a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml b/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml deleted file mode 100644 index 7c59b7f2b..000000000 --- a/tests/dictionaries/80remove_fill_no_fill/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -general: - mode_conteneur_actif: - redefine: true -version: '1.0' diff --git a/tests/dictionaries/80remove_fill_no_fill/errno_89 b/tests/dictionaries/80remove_fill_no_fill/errno_89 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80service_not_managed_overrides/__init__.py b/tests/dictionaries/80service_not_managed_overrides/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml b/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0a95c96ec..000000000 --- a/tests/dictionaries/80service_not_managed_overrides/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -var: - type: string - default: mailname -version: '1.0' diff --git a/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml b/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml deleted file mode 100644 index 77725cdaa..000000000 --- a/tests/dictionaries/80service_not_managed_overrides/dictionaries/services/00-base.yml +++ /dev/null @@ -1,3 +0,0 @@ -test.service: - override: null -version: '1.0' diff --git a/tests/dictionaries/80service_not_managed_overrides/errno_66 b/tests/dictionaries/80service_not_managed_overrides/errno_66 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_cidr_netmask/__init__.py b/tests/dictionaries/80services_ip_cidr_netmask/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0fd12041c..000000000 --- a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -nut_monitor_host: - type: network_cidr - mandatory: true -nut_monitor_netmask: - type: netmask - mandatory: true -version: '1.0' diff --git a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml deleted file mode 100644 index b59853812..000000000 --- a/tests/dictionaries/80services_ip_cidr_netmask/dictionaries/services/00-base.yml +++ /dev/null @@ -1,6 +0,0 @@ -nut.service: - ip: - rougail.nut_monitor_host: - ip_type: variable - netmask: rougail.nut_monitor_netmask -version: '1.0' diff --git a/tests/dictionaries/80services_ip_cidr_netmask/errno_59 b/tests/dictionaries/80services_ip_cidr_netmask/errno_59 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_netmask/__init__.py b/tests/dictionaries/80services_ip_netmask/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml deleted file mode 100644 index 3783759a8..000000000 --- a/tests/dictionaries/80services_ip_netmask/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -nut_monitor_host: - type: ip - mandatory: true -nut_monitor_netmask: - type: netmask - mandatory: true -version: '1.0' diff --git a/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml deleted file mode 100644 index a57e6c9bb..000000000 --- a/tests/dictionaries/80services_ip_netmask/dictionaries/services/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -nut.service: - ip: - rougail.nut_monitor_host: - netmask: rougail.nut_monitor_netmask -version: '1.0' diff --git a/tests/dictionaries/80services_ip_netmask/errno_59 b/tests/dictionaries/80services_ip_netmask/errno_59 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_network_no_netmask/__init__.py b/tests/dictionaries/80services_ip_network_no_netmask/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml deleted file mode 100644 index 781438de0..000000000 --- a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -nut_monitor_host: - type: network - mandatory: true -version: '1.0' diff --git a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml deleted file mode 100644 index 8637277cc..000000000 --- a/tests/dictionaries/80services_ip_network_no_netmask/dictionaries/services/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -nut.service: - ip: - rougail.nut_monitor_host: {} -version: '1.0' diff --git a/tests/dictionaries/80services_ip_network_no_netmask/errno_64 b/tests/dictionaries/80services_ip_network_no_netmask/errno_64 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_not_netmask/__init__.py b/tests/dictionaries/80services_ip_not_netmask/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml deleted file mode 100644 index ba88b2e88..000000000 --- a/tests/dictionaries/80services_ip_not_netmask/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -nut_monitor_host: - type: network - mandatory: true -nut_monitor_netmask: - type: ip - mandatory: true -version: '1.0' diff --git a/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml deleted file mode 100644 index a57e6c9bb..000000000 --- a/tests/dictionaries/80services_ip_not_netmask/dictionaries/services/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -nut.service: - ip: - rougail.nut_monitor_host: - netmask: rougail.nut_monitor_netmask -version: '1.0' diff --git a/tests/dictionaries/80services_ip_not_netmask/errno_65 b/tests/dictionaries/80services_ip_not_netmask/errno_65 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_wrong_type/__init__.py b/tests/dictionaries/80services_ip_wrong_type/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml b/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml deleted file mode 100644 index df6453685..000000000 --- a/tests/dictionaries/80services_ip_wrong_type/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -nut_monitor_host: - type: string - mandatory: true - default: 192.168.0.1 -version: '1.0' diff --git a/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml b/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml deleted file mode 100644 index 8637277cc..000000000 --- a/tests/dictionaries/80services_ip_wrong_type/dictionaries/services/00-base.yml +++ /dev/null @@ -1,4 +0,0 @@ -nut.service: - ip: - rougail.nut_monitor_host: {} -version: '1.0' diff --git a/tests/dictionaries/80services_ip_wrong_type/errno_70 b/tests/dictionaries/80services_ip_wrong_type/errno_70 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80target_list_unknown/__init__.py b/tests/dictionaries/80target_list_unknown/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml b/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml deleted file mode 100644 index 5b42c2211..000000000 --- a/tests/dictionaries/80target_list_unknown/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,3 +0,0 @@ -condition: - type: boolean -version: '1.0' diff --git a/tests/dictionaries/80target_list_unknown/errno_2 b/tests/dictionaries/80target_list_unknown/errno_2 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80container_filesredefine_error/__init__.py b/tests/dictionaries/80unsupported_version/__init__.py similarity index 100% rename from tests/dictionaries/80container_filesredefine_error/__init__.py rename to tests/dictionaries/80unsupported_version/__init__.py diff --git a/tests/dictionaries/80unsupported_version/dictionaries/rougail/00-base.yml b/tests/dictionaries/80unsupported_version/dictionaries/rougail/00-base.yml new file mode 100644 index 000000000..01c612553 --- /dev/null +++ b/tests/dictionaries/80unsupported_version/dictionaries/rougail/00-base.yml @@ -0,0 +1,3 @@ +--- +version: '0.10' +variable: diff --git a/tests/dictionaries/80family_dynamic_calc_invalid_suffix/errno_28 b/tests/dictionaries/80unsupported_version/errno_28 similarity index 100% rename from tests/dictionaries/80family_dynamic_calc_invalid_suffix/errno_28 rename to tests/dictionaries/80unsupported_version/errno_28 diff --git a/tests/dictionaries/80valid_entier_invalid_param/__init__.py b/tests/dictionaries/80valid_entier_invalid_param/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0f8e94bec..000000000 --- a/tests/dictionaries/80valid_entier_invalid_param/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - int: - type: number - description: No change - validators: - - type: jinja - jinja: '{{ rougail.general.int | valid_entier(unknown=0) }}' -version: '1.0' diff --git a/tests/dictionaries/80valid_entier_invalid_param/errno_19 b/tests/dictionaries/80valid_entier_invalid_param/errno_19 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_entier_not_number/__init__.py b/tests/dictionaries/80valid_entier_not_number/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml deleted file mode 100644 index 24905a878..000000000 --- a/tests/dictionaries/80valid_entier_not_number/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - int: - type: number - description: No change - validators: - - type: jinja - jinja: '{{ rougail.general.int | valid_entier(mini="0", maxi=100) }}' -version: '1.0' diff --git a/tests/dictionaries/80valid_entier_not_number/errno_18 b/tests/dictionaries/80valid_entier_not_number/errno_18 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_entier_without_param/__init__.py b/tests/dictionaries/80valid_entier_without_param/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml deleted file mode 100644 index 1076a346f..000000000 --- a/tests/dictionaries/80valid_entier_without_param/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - mode_conteneur_actif: - type: string - description: No change - default: b - int: - type: number - description: No change - validators: - - type: jinja - jinja: '{{ rougail.general.int | valid_entier }}' -version: '1.0' diff --git a/tests/dictionaries/80valid_entier_without_param/errno_17 b/tests/dictionaries/80valid_entier_without_param/errno_17 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml index 4d4168dff..d26a3f74d 100644 --- a/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80valid_enum_multi_param/dictionaries/rougail/00-base.yml @@ -1,18 +1,15 @@ -general: - mode_conteneur_actif: - type: choice - description: No change - default: a - choices: +--- +version: '1.1' +mode_conteneur_actif: + type: choice + default: a + choices: - type: variable - variable: rougail.general.var + variable: _.var - d - var: - type: string - description: New variable - multi: true - default: +var: + multi: true + default: - a - b - c -version: '1.0' diff --git a/tests/dictionaries/80auto_family/errno_8 b/tests/dictionaries/80valid_enum_multi_param/errno_18 similarity index 100% rename from tests/dictionaries/80auto_family/errno_8 rename to tests/dictionaries/80valid_enum_multi_param/errno_18 diff --git a/tests/dictionaries/80valid_enum_multi_param/errno_5 b/tests/dictionaries/80valid_enum_multi_param/errno_5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80base_file_mode_wrong_type/errno_43 b/tests/dictionaries/80valid_enum_multi_variable/errno_18 similarity index 100% rename from tests/dictionaries/80base_file_mode_wrong_type/errno_43 rename to tests/dictionaries/80valid_enum_multi_variable/errno_18 diff --git a/tests/dictionaries/80valid_enum_multi_variable/errno_5 b/tests/dictionaries/80valid_enum_multi_variable/errno_5 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml index 58b49b08b..3ee89c30c 100644 --- a/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80valid_enum_no_choice/dictionaries/rougail/00-base.yml @@ -1,14 +1,4 @@ -general: - mode: advanced - mode_conteneur_actif: - type: string - description: No change - default: non -enumfam: - mode: advanced - enumvar: - type: choice - description: multi - help: bla bla bla - default: c +--- version: '1.0' +var: + type: choice diff --git a/tests/dictionaries/80base_file_mode_wrong_type/errno_93 b/tests/dictionaries/80valid_enum_no_choice/errno_19 similarity index 100% rename from tests/dictionaries/80base_file_mode_wrong_type/errno_93 rename to tests/dictionaries/80valid_enum_no_choice/errno_19 diff --git a/tests/dictionaries/80valid_enum_no_choice/errno_4 b/tests/dictionaries/80valid_enum_no_choice/errno_4 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml index 908a8cdad..b074bda9a 100644 --- a/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml +++ b/tests/dictionaries/80valid_enum_none_multi_variable/dictionaries/rougail/00-base.yml @@ -1,13 +1,10 @@ -general: - mode_conteneur_actif: - type: choice - description: No change - default: a - choices: - - type: variable - variable: rougail.general.var - var: - type: string - description: New variable - default: a -version: '1.0' +--- +version: '1.1' +mode_conteneur_actif: + type: choice + default: a + choices: + type: variable + variable: _.var +var: + default: a diff --git a/tests/dictionaries/80check_self/errno_80 b/tests/dictionaries/80valid_enum_none_multi_variable/errno_20 similarity index 100% rename from tests/dictionaries/80check_self/errno_80 rename to tests/dictionaries/80valid_enum_none_multi_variable/errno_20 diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/errno_6 b/tests/dictionaries/80valid_enum_none_multi_variable/errno_6 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80condition_itself/errno_11 b/tests/dictionaries/80valid_enum_not_choice/errno_11 similarity index 100% rename from tests/dictionaries/80condition_itself/errno_11 rename to tests/dictionaries/80valid_enum_not_choice/errno_11 diff --git a/tests/dictionaries/80valid_enum_not_choice/errno_3 b/tests/dictionaries/80valid_enum_not_choice/errno_3 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_number_without_value/__init__.py b/tests/dictionaries/80valid_enum_number_without_value/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_number_without_value/errno_14 b/tests/dictionaries/80valid_enum_number_without_value/errno_14 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_variables/__init__.py b/tests/dictionaries/80valid_enum_variables/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml b/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml deleted file mode 100644 index 303f2f03f..000000000 --- a/tests/dictionaries/80valid_enum_variables/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -version: '1.0' -general: - mode_conteneur_actif: - type: choice - description: No change - default: a - choices: - - type: variable - variable: rougail.general.var1 - - type: variable - variable: rougail.general.var2 - - type: variable - variable: rougail.general.var3 - var1: - type: string - description: New variable - default: a - var2: - type: string - description: New variable - default: b - var3: - type: string - description: New variable - default: c diff --git a/tests/dictionaries/80valid_enum_variables/makedict/after.json b/tests/dictionaries/80valid_enum_variables/makedict/after.json deleted file mode 100644 index da7c19731..000000000 --- a/tests/dictionaries/80valid_enum_variables/makedict/after.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": { - "owner": "default", - "value": "a" - }, - "rougail.general.var": { - "owner": "default", - "value": [ - "a", - "b", - "c" - ] - } -} diff --git a/tests/dictionaries/80valid_enum_variables/makedict/base.json b/tests/dictionaries/80valid_enum_variables/makedict/base.json deleted file mode 100644 index 0d2bcba8b..000000000 --- a/tests/dictionaries/80valid_enum_variables/makedict/base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": "a", - "rougail.general.var": [ - "a", - "b", - "c" - ] -} diff --git a/tests/dictionaries/80valid_enum_variables/makedict/before.json b/tests/dictionaries/80valid_enum_variables/makedict/before.json deleted file mode 100644 index da7c19731..000000000 --- a/tests/dictionaries/80valid_enum_variables/makedict/before.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "rougail.general.mode_conteneur_actif": { - "owner": "default", - "value": "a" - }, - "rougail.general.var": { - "owner": "default", - "value": [ - "a", - "b", - "c" - ] - } -} diff --git a/tests/dictionaries/80valid_enum_variables/tiramisu/base.py b/tests/dictionaries/80valid_enum_variables/tiramisu/base.py deleted file mode 100644 index 69ff09eb3..000000000 --- a/tests/dictionaries/80valid_enum_variables/tiramisu/base.py +++ /dev/null @@ -1,69 +0,0 @@ -from tiramisu import * -from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -global func -func = {'calc_value': calc_value} - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - func[function] = getattr(func_, function) -_load_functions('tests/dictionaries/../eosfunc/test.py') -from jinja2 import StrictUndefined, DictLoader -from jinja2.sandbox import SandboxedEnvironment -from rougail import CONVERT_OPTION -from tiramisu.error import ValueWarning -def jinja_to_function(__internal_jinja, __internal_type, __internal_multi, **kwargs): - global ENV, CONVERT_OPTION - kw = {} - for key, value in kwargs.items(): - if '.' in key: - c_kw = kw - path, var = key.rsplit('.', 1) - for subkey in path.split('.'): - c_kw = c_kw.setdefault(subkey, {}) - c_kw[var] = value - else: - kw[key] = value - values = ENV.get_template(__internal_jinja).render(kw, **func).strip() - convert = CONVERT_OPTION[__internal_type].get('func', str) - if __internal_multi: - return [convert(val) for val in values.split()] - values = convert(values) - return values if values != '' and values != 'None' else None -def variable_to_property(prop, value): - return prop if value else None -def jinja_to_property(prop, **kwargs): - value = func['jinja_to_function'](**kwargs) - return func['variable_to_property'](prop, value) -def valid_with_jinja(warning=False, **kwargs): - global ValueWarning - value = func['jinja_to_function'](**kwargs) - if value: - if warning: - raise ValueWarning(value) - else: - raise ValueError(value) -func['jinja_to_function'] = jinja_to_function -func['jinja_to_property'] = jinja_to_property -func['variable_to_property'] = variable_to_property -func['valid_with_jinja'] = valid_with_jinja -dict_env = {} -ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined) -ENV.filters = func -ENV.compile_templates('jinja_caches', zip=None) -option_4 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "notempty", "standard"})) -option_3 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func['calc_value'], Params((ParamOption(option_4)), kwargs={'multi': ParamValue(False), 'allow_none': ParamValue(True)})), default="a", properties=frozenset({"mandatory", "standard"})) -optiondescription_2 = OptionDescription(name="general", doc="general", children=[option_3, option_4], properties=frozenset({"standard"})) -optiondescription_1 = OptionDescription(name="rougail", doc="rougail", children=[optiondescription_2], properties=frozenset({"standard"})) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1]) diff --git a/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py b/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py deleted file mode 100644 index d6d06ca9e..000000000 --- a/tests/dictionaries/80valid_enum_variables/tiramisu/multi.py +++ /dev/null @@ -1,36 +0,0 @@ -from importlib.machinery import SourceFileLoader as _SourceFileLoader -from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec -class func: - pass - -def _load_functions(path): - global _SourceFileLoader, _spec_from_loader, _module_from_spec, func - loader = _SourceFileLoader('func', path) - spec = _spec_from_loader(loader.name, loader) - func_ = _module_from_spec(spec) - loader.exec_module(func_) - for function in dir(func_): - if function.startswith('_'): - continue - setattr(func, function, getattr(func_, function)) -_load_functions('tests/dictionaries/../eosfunc/test.py') -try: - from tiramisu4 import * - from tiramisu4.setting import ALLOWED_LEADER_PROPERTIES -except: - from tiramisu import * - from tiramisu.setting import ALLOWED_LEADER_PROPERTIES -ALLOWED_LEADER_PROPERTIES.add("basic") -ALLOWED_LEADER_PROPERTIES.add("standard") -ALLOWED_LEADER_PROPERTIES.add("advanced") -option_3 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "standard"})) -option_2 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_3)))), default="a", properties=frozenset({"mandatory", "standard"})) -optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"standard"})) -optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1], properties=frozenset({"standard"})) -optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8]) -option_6 = StrOption(name="var", doc="New variable", multi=True, default=['a', 'b', 'c'], default_multi="a", properties=frozenset({"mandatory", "standard"})) -option_5 = ChoiceOption(name="mode_conteneur_actif", doc="No change", values=Calculation(func.calc_value, Params((ParamOption(option_6)))), default="a", properties=frozenset({"mandatory", "standard"})) -optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"standard"})) -optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4], properties=frozenset({"standard"})) -optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10]) -option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9]) diff --git a/tests/dictionaries/80variable_accent/__init__.py b/tests/dictionaries/80variable_accent/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml deleted file mode 100644 index 5f8611896..000000000 --- a/tests/dictionaries/80variable_accent/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - variableAccenté: - type: string - description: No change - default: non -Other: - mode_conteneur_actif3: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml deleted file mode 100644 index d50b486ea..000000000 --- a/tests/dictionaries/80variable_accent/dictionaries/rougail/01-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -Général: - mode_conteneur_actif1: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml b/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml deleted file mode 100644 index bce32b41b..000000000 --- a/tests/dictionaries/80variable_accent/dictionaries/rougail/02-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - mode_conteneur_actif2: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80variable_accent/errno_76 b/tests/dictionaries/80variable_accent/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_extra/__init__.py b/tests/dictionaries/80variable_extra/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml deleted file mode 100644 index 86179e740..000000000 --- a/tests/dictionaries/80variable_extra/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,2 +0,0 @@ -extra: {} -version: '1.0' diff --git a/tests/dictionaries/80variable_extra/errno_54 b/tests/dictionaries/80variable_extra/errno_54 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_family_not_same_name/__init__.py b/tests/dictionaries/80variable_family_not_same_name/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml deleted file mode 100644 index 0ef61971f..000000000 --- a/tests/dictionaries/80variable_family_not_same_name/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,3 +0,0 @@ -general: - my_variable2: {} -version: '1.0' diff --git a/tests/dictionaries/80variable_family_not_same_name/errno_56 b/tests/dictionaries/80variable_family_not_same_name/errno_56 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_rougail/__init__.py b/tests/dictionaries/80variable_rougail/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml deleted file mode 100644 index ba1c34b83..000000000 --- a/tests/dictionaries/80variable_rougail/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,2 +0,0 @@ -rougail: {} -version: '1.0' diff --git a/tests/dictionaries/80variable_rougail/errno_54 b/tests/dictionaries/80variable_rougail/errno_54 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80check_unknown/errno_1 b/tests/dictionaries/80variable_underscode/errno_16 similarity index 100% rename from tests/dictionaries/80check_unknown/errno_1 rename to tests/dictionaries/80variable_underscode/errno_16 diff --git a/tests/dictionaries/80variable_up/__init__.py b/tests/dictionaries/80variable_up/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml b/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml deleted file mode 100644 index 7a748e339..000000000 --- a/tests/dictionaries/80variable_up/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,12 +0,0 @@ -general: - variableAccent: - type: string - description: No change - default: non -Other: - mode_conteneur_actif3: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/80variable_up/errno_76 b/tests/dictionaries/80variable_up/errno_76 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/81extra_externalspace/__init__.py b/tests/dictionaries/81extra_externalspace/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml deleted file mode 100644 index 47d02767d..000000000 --- a/tests/dictionaries/81extra_externalspace/dictionaries/extra/00-base.yml +++ /dev/null @@ -1,21 +0,0 @@ -ejabberd: - description: - type: string - default: Exportation de la base de ejabberd - day: - type: choice - mandatory: true - default: none - choices: - - none - - daily - - weekly - - monthly - mode: - type: choice - mandatory: true - default: pre - choices: - - pre - - post -version: '1.0' diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml deleted file mode 100644 index aedf01921..000000000 --- a/tests/dictionaries/81extra_externalspace/dictionaries/extra1/00-base.yml +++ /dev/null @@ -1,5 +0,0 @@ -external: - description: - type: string - default: test -version: '1.0' diff --git a/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml b/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml deleted file mode 100644 index 7978196cd..000000000 --- a/tests/dictionaries/81extra_externalspace/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,7 +0,0 @@ -general: - activer_ejabberd: - type: string - description: No change - hidden: true - default: non -version: '1.0' diff --git a/tests/dictionaries/81extra_externalspace/errno_41 b/tests/dictionaries/81extra_externalspace/errno_41 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/88remove_choice_not_choice/__init__.py b/tests/dictionaries/88remove_choice_not_choice/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml b/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml deleted file mode 100644 index 552b83f33..000000000 --- a/tests/dictionaries/88remove_choice_not_choice/dictionaries/rougail/00-base.yml +++ /dev/null @@ -1,3 +0,0 @@ -enumvar: - type: string -version: '1.0' diff --git a/tests/dictionaries/88remove_choice_not_choice/errno_33 b/tests/dictionaries/88remove_choice_not_choice/errno_33 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/88valid_enum_invalid_default/errno_15 b/tests/dictionaries/88valid_enum_invalid_default/errno_15 deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/dictionaries/80check_unknown_var/errno_42 b/tests/dictionaries/88valid_enum_invalid_default/errno_26 similarity index 100% rename from tests/dictionaries/80check_unknown_var/errno_42 rename to tests/dictionaries/88valid_enum_invalid_default/errno_26 diff --git a/tests/test_1_flattener.py b/tests/test_1_flattener.py index a7c0fc2a9..2df3fac4f 100644 --- a/tests/test_1_flattener.py +++ b/tests/test_1_flattener.py @@ -33,17 +33,17 @@ for test in listdir(dico_dirs): elif test != '__pycache__': test_raise.add(test) -excludes = set([]) excludes = set([ - '80leadership_subfamily', - '80valid_enum_variables', + '80family_several', ]) test_ok -= excludes test_raise -= excludes -#test_ok = ['20override_source'] +test_ok = ['40version_underscode'] #test_ok = [] -#test_raise = ['80auto_autofreeze'] -#test_raise = [] +#test_raise = ['88valid_enum_invalid_default'] +test_raise = [] +test_multi = True +#test_multi = False ORI_DIR = getcwd() @@ -95,7 +95,7 @@ def load_rougail_object(test_dir, multi=False): return Rougail(rougailconfig) -def save(test_dir, eolobj, multi=False): +def save(test_dir, eolobj, multi=False, error=False): tiramisu_tmp = get_tiramisu_filename(test_dir, 'tmp', multi) tiramisu_tmp_dir = dirname(tiramisu_tmp) if isdir(tiramisu_tmp_dir): @@ -104,7 +104,9 @@ def save(test_dir, eolobj, multi=False): tiramisu_objects = eolobj.get_config() tiramisu_file = get_tiramisu_filename(test_dir, 'tiramisu', multi) tiramisu_dir = dirname(tiramisu_file) - if isdir(tiramisu_dir): + if not error: + if not isdir(tiramisu_dir): + raise Exception(f'creates {tiramisu_dir}') if not isfile(tiramisu_file) or debug: copyfile(tiramisu_tmp, tiramisu_file) with open(tiramisu_tmp, 'r') as fh: @@ -112,8 +114,8 @@ def save(test_dir, eolobj, multi=False): with open(tiramisu_file, 'r') as fh: tiramisu_objects_ori = fh.read() assert tiramisu_objects == tiramisu_objects_ori - if isdir(tiramisu_tmp_dir): - rmtree(tiramisu_tmp_dir) + if isdir(tiramisu_tmp_dir): + rmtree(tiramisu_tmp_dir) def test_dictionary(test_dir): @@ -127,6 +129,9 @@ def test_dictionary(test_dir): def test_dictionary_multi(test_dir): + if not test_multi: + print('MULTI!') + return assert getcwd() == ORI_DIR test_dir_ = join(dico_dirs, test_dir) eolobj = load_rougail_object(test_dir_, multi=True) @@ -138,21 +143,22 @@ def test_dictionary_multi(test_dir): assert getcwd() == ORI_DIR -#def test_error_dictionary(test_dir_error): -# assert getcwd() == ORI_DIR -# test_dir = join(dico_dirs, test_dir_error) -# errno = [] -# eolobj = load_rougail_object(test_dir) -# if eolobj is None: -# return -# for i in listdir(test_dir): -# if i.startswith('errno_'): -# errno.append(int(i.split('_')[1])) -# if not errno: -# errno.append(0) -# with raises(DictConsistencyError) as err: -# launch_flattener(eolobj) -# save(test_dir, eolobj) -# msg = str(err) -# assert err.value.errno in errno, f'expected errno: {errno}, errno: {err.value.errno}, msg: {err}' -# assert getcwd() == ORI_DIR +def test_error_dictionary(test_dir_error): + assert getcwd() == ORI_DIR + test_dir_ = join(dico_dirs, test_dir_error) + errno = [] + eolobj = load_rougail_object(test_dir_) + if eolobj is None: + return + for i in listdir(test_dir_): + if i.startswith('errno_'): + errno.append(int(i.split('_')[1])) + if not errno: + errno.append(0) + with raises(DictConsistencyError) as err: + save(test_dir_, eolobj, error=True) + assert err.value.errno in errno, f'expected errno: {errno}, errno: {err.value.errno}, msg: {err}' + tiramisu_tmp_dir = dirname(get_tiramisu_filename(test_dir_, 'tmp', False)) + if isdir(tiramisu_tmp_dir): + rmtree(tiramisu_tmp_dir) + assert getcwd() == ORI_DIR diff --git a/tests/test_2_makedict.py b/tests/test_2_makedict.py index b45fff0e3..0acddb13e 100644 --- a/tests/test_2_makedict.py +++ b/tests/test_2_makedict.py @@ -31,7 +31,7 @@ excludes = set([ #excludes = set(['01base_file_utfchar']) test_ok -= excludes -#test_ok = ['10base_certificate_list'] +#test_ok = ['20family_dynamic_static'] test_ok = list(test_ok) @@ -43,6 +43,31 @@ def test_dir(request): return request.param +def option_value(parent, key_is_option=False): + for option, value in parent.items(): + if option.isoptiondescription(): + if not key_is_option and option.isleadership(): + ret = [] + for idx, datas in enumerate(option_value(value, key_is_option=True)): + sub_option, sub_value = datas + if not idx: + sub_option = sub_option.path() + key = sub_option + for val in sub_value: + ret.append({sub_option: val}) + else: + index = sub_option.index() + sub_option = sub_option.path() + ret[index][sub_option] = sub_value + yield key, ret + else: + yield from option_value(value, key_is_option) + elif key_is_option: + yield option, value + else: + yield option.path(), value + + def launch_flattener(test_dir, filename, ): @@ -79,7 +104,7 @@ def launch_flattener(test_dir, for root in ['1', '2']: config.option(f'{root}.{key}').information.set('test_information', value) # - config_dict = config.value.get() + config_dict = dict(option_value(config.value.get())) if filename == 'base': if not isdir(makedict_dir): mkdir(makedict_dir) @@ -125,25 +150,27 @@ def launch_flattener(test_dir, def value_owner(makedict_value_owner, config, filename): ret = {} - for key in config.option.list(recursive=True): + for key, value in option_value(config.value.get(), True): path = key.path() if not key.issymlinkoption() and key.isfollower(): - value = [] - owner = [] + if path in ret: + continue + ret[path] = {'owner': [], + 'value': [], + } for idx in range(0, key.value.len()): try: option = config.option(path, idx) - value.append(option.value.get()) - owner.append(option.owner.get()) + ret[path]['value'].append(option.value.get()) + ret[path]['owner'].append(option.owner.get()) except PropertiesOptionError as err: - value.append(str(err)) - owner.append('error') + ret[path]['value'].append(str(err)) + ret[path]['owner'].append('error') else: - value = key.value.get() owner = key.owner.get() - ret[path] = {'owner': owner, - 'value': value, - } + ret[path] = {'owner': owner, + 'value': value, + } if filename == 'base': if not isfile(makedict_value_owner) or debug: with open(makedict_value_owner, 'w') as fh: