feat(#26): cidr and network_cidr type is depreciate

This commit is contained in:
egarette@silique.fr 2025-09-24 22:14:59 +02:00
parent 99dddf20a9
commit bbcffffb82
10 changed files with 146 additions and 17 deletions

View file

@ -29,7 +29,7 @@ from tiramisu.error import display_list
from rougail.i18n import _
from rougail.utils import calc_multi_for_type_variable
from rougail.error import DictConsistencyError
from rougail.convert.object_model import Calculation, VariableCalculation
from rougail.convert.object_model import Calculation, VariableCalculation, IndexCalculation
from rougail.tiramisu import display_xmlfiles, RENAME_TYPE
from warnings import warn
@ -118,19 +118,28 @@ class Annotator(Walk): # pylint: disable=R0903
warning = f'the variable "{ variable.path }" has a depreciated type "{variable.type}", please use "{RENAME_TYPE[variable.type]}" instead in {display_xmlfiles(variable.xmlfiles)}'
warn(warning)
variable.type = RENAME_TYPE[variable.type]
if variable.type == 'cidr':
warning = f'the variable "{ variable.path }" has a depreciated type "{variable.type}", please use type "ip" with attribute cidr=True instead in {display_xmlfiles(variable.xmlfiles)}'
warn(warning)
if variable.type == 'network_cidr':
warning = f'the variable "{ variable.path }" has a depreciated type "{variable.type}", please use type "network" with attribute cidr=True instead in {display_xmlfiles(variable.xmlfiles)}'
warn(warning)
self.objectspace.informations.add(
variable.path, "ymlfiles", variable.xmlfiles
)
if variable.version != "1.0" and isinstance(
variable.default, VariableCalculation
):
calculated_variable_path, calculated_variable, identifier = (
variable.default.get_variable(self.objectspace)
)
else:
calculated_variable = None
if variable.version != "1.0" and calculated_variable is not None:
self._default_variable_copy_informations(variable, calculated_variable)
if variable.version != "1.0" and variable.type is None:
if isinstance(
variable.default, IndexCalculation
):
variable.type = 'integer'
elif isinstance(
variable.default, VariableCalculation
):
calculated_variable_path, calculated_variable, identifier = (
variable.default.get_variable(self.objectspace)
)
if calculated_variable is not None:
self._default_variable_copy_informations(variable, calculated_variable)
self._convert_variable(variable)
def _convert_variable_inference(
@ -201,12 +210,6 @@ class Annotator(Walk): # pylint: disable=R0903
variable,
calculated_variable,
) -> None:
# if a variable has a variable as default value, that means the type/params or multi should has same value
if (
not isinstance(variable.default, VariableCalculation)
or variable.type is not None
):
return
# copy type and params
variable.type = calculated_variable.type
if variable.params is None and calculated_variable.params is not None:

View file

@ -0,0 +1,16 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_variable/rougail/00-base.yml'], 'type': 'domainname'})
option_3 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_2)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=False, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_variable/rougail/00-base.yml'], 'type': 'domainname'})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"basic"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,11 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = DomainnameOption(name="var1", doc="a first variable", multi=True, type="domainname", allow_ip=True, properties=frozenset({"basic", "mandatory"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_variable/rougail/00-base.yml'], 'type': 'domainname'})
option_2 = DomainnameOption(name="var2", doc="a second variable", multi=True, default=Calculation(func['calc_value'], Params((ParamOption(option_1)), kwargs={'__internal_multi': ParamValue(True)})), type="domainname", allow_ip=False, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_2default_calculated_variable/rougail/00-base.yml'], 'type': 'domainname'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2])

View file

@ -0,0 +1,17 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = IPOption(name="var1", doc="an IP", default="1.1.1.1", allow_reserved=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'ip'})
option_3 = IPOption(name="var2", doc="an IP in CIDR format", default="1.1.1.1/24", allow_reserved=True, cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'ip', 'examples': ('192.168.0.128/25',)})
option_4 = IPOption(name="var3", doc="an IP in CIDR format with obsolete CIDR type", default="1.1.1.1/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'cidr'})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,12 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = IPOption(name="var1", doc="an IP", default="1.1.1.1", allow_reserved=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'ip'})
option_2 = IPOption(name="var2", doc="an IP in CIDR format", default="1.1.1.1/24", allow_reserved=True, cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'ip', 'examples': ('192.168.0.128/25',)})
option_3 = IPOption(name="var3", doc="an IP in CIDR format with obsolete CIDR type", default="1.1.1.1/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6ip/rougail/00-base.yml'], 'type': 'cidr'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2, option_3])

View file

@ -0,0 +1,17 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = NetworkOption(name="var1", doc="an network", default="1.1.1.0", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network'})
option_3 = NetworkOption(name="var2", doc="an network in CIDR format", default="1.1.1.0/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network'})
option_4 = NetworkOption(name="var3", doc="an network in CIDR format with obsolete CIDR type", default="1.1.1.0/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network_cidr'})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3, option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,12 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = NetworkOption(name="var1", doc="an network", default="1.1.1.0", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network'})
option_2 = NetworkOption(name="var2", doc="an network in CIDR format", default="1.1.1.0/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network'})
option_3 = NetworkOption(name="var3", doc="an network in CIDR format with obsolete CIDR type", default="1.1.1.0/24", cidr=True, properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/00_6network/rougail/00-base.yml'], 'type': 'network_cidr'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2, option_3])

View file

@ -0,0 +1,12 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="leader", doc="a leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index/rougail/00-base.yml'], 'type': 'string'})
option_3 = IntOption(name="follower1", doc="a follower", multi=True, default=Calculation(func['calc_value'], Params((ParamIndex()))), properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index/rougail/00-base.yml'], 'type': 'integer'})
optiondescription_1 = Leadership(name="leader", doc="a leadership", children=[option_2, option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index/rougail/00-base.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,17 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_3 = StrOption(name="leader", doc="a leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml'], 'type': 'string'})
option_4 = IntOption(name="follower1", doc="a follower", multi=True, default=Calculation(func['calc_value'], Params((ParamIndex()))), properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml'], 'type': 'integer'})
optiondescription_2 = Leadership(name="leader", doc="a leadership", children=[option_3, option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[optiondescription_2], properties=frozenset({"standard"}), informations={'ymlfiles': ['']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,12 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = StrOption(name="leader", doc="a leader", multi=True, default=["a", "b", "c"], properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml'], 'type': 'string'})
option_3 = IntOption(name="follower1", doc="a follower", multi=True, default=Calculation(func['calc_value'], Params((ParamIndex()))), properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml'], 'type': 'integer'})
optiondescription_1 = Leadership(name="leader", doc="a leadership", children=[option_2, option_3], properties=frozenset({"standard"}), informations={'ymlfiles': ['../rougail-tests/structures/40_2leadership_calculation_index_2/rougail/00-base.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])