Compare commits

..

No commits in common. "ccc69248661ce4a55ec89c76d459bdf497d6309f" and "80b7f1b0838bab334724648f8bad9efbcb3c89ea" have entirely different histories.

199 changed files with 1782 additions and 345 deletions

View File

@ -166,7 +166,7 @@ class GroupAnnotator:
) )
has_a_leader = True has_a_leader = True
else: else:
raise DictConsistencyError(_('cannot found followers "{}"').format('", "'.join(follower_names))) raise DictConsistencyError(_('cannot found followers {}').format(follower_names))
del self.objectspace.space.constraints.group del self.objectspace.space.constraints.group
def manage_leader(self, def manage_leader(self,
@ -464,7 +464,8 @@ class ServiceAnnotator:
if not hasattr(file_, 'source'): if not hasattr(file_, 'source'):
file_.source = basename(file_.name) file_.source = basename(file_.name)
elif not hasattr(file_, 'source'): elif not hasattr(file_, 'source'):
raise DictConsistencyError(_('attribute source mandatory for file with variable name for {}').format(file_.name)) raise DictConsistencyError(_('attribute source mandatory for file with variable name '
'for {}').format(file_.name))
class VariableAnnotator: class VariableAnnotator:
@ -473,6 +474,7 @@ class VariableAnnotator:
): ):
self.objectspace = objectspace self.objectspace = objectspace
self.convert_variable() self.convert_variable()
self.convert_helps()
self.convert_auto_freeze() self.convert_auto_freeze()
self.convert_separators() self.convert_separators()
@ -566,6 +568,20 @@ class VariableAnnotator:
) )
_valid_type(variable) _valid_type(variable)
def convert_helps(self):
if not hasattr(self.objectspace.space, 'help'):
return
helps = self.objectspace.space.help
if hasattr(helps, 'variable'):
for hlp in helps.variable.values():
variable = self.objectspace.paths.get_variable_obj(hlp.name)
variable.help = hlp.text
if hasattr(helps, 'family'):
for hlp in helps.family.values():
variable = self.objectspace.paths.get_family_obj(hlp.name)
variable.help = hlp.text
del self.objectspace.space.help
def convert_auto_freeze(self): # pylint: disable=C0111 def convert_auto_freeze(self): # pylint: disable=C0111
def _convert_auto_freeze(variable, namespace): def _convert_auto_freeze(variable, namespace):
if variable.auto_freeze: if variable.auto_freeze:
@ -689,9 +705,7 @@ class ConstraintAnnotator:
for idx, check in enumerate(self.objectspace.space.constraints.check): for idx, check in enumerate(self.objectspace.space.constraints.check):
if check.name == 'valid_enum': if check.name == 'valid_enum':
if check.target in self.valid_enums: if check.target in self.valid_enums:
old_xmlfiles = self.objectspace.display_xmlfiles(self.valid_enums[check.target]['xmlfiles']) raise DictConsistencyError(_(f'valid_enum already set for {check.target}'))
xmlfiles = self.objectspace.display_xmlfiles(check.xmlfiles)
raise DictConsistencyError(_(f'valid_enum define in {xmlfiles} but already set in {old_xmlfiles} for "{check.target}", did you forget remove_check?'))
if not hasattr(check, 'param'): if not hasattr(check, 'param'):
raise DictConsistencyError(_(f'param is mandatory for a valid_enum of variable {check.target}')) raise DictConsistencyError(_(f'param is mandatory for a valid_enum of variable {check.target}'))
variable = self.objectspace.paths.get_variable_obj(check.target) variable = self.objectspace.paths.get_variable_obj(check.target)
@ -702,8 +716,7 @@ class ConstraintAnnotator:
self._set_valid_enum(variable, self._set_valid_enum(variable,
values, values,
variable.type, variable.type,
check.target, check.target
check.xmlfiles,
) )
remove_indexes.append(idx) remove_indexes.append(idx)
remove_indexes.sort(reverse=True) remove_indexes.sort(reverse=True)
@ -752,7 +765,6 @@ class ConstraintAnnotator:
if target.type == 'variable': if target.type == 'variable':
variable = self.objectspace.paths.get_variable_obj(target.name) variable = self.objectspace.paths.get_variable_obj(target.name)
family = self.objectspace.paths.get_family_obj(target.name.rsplit('.', 1)[0]) family = self.objectspace.paths.get_family_obj(target.name.rsplit('.', 1)[0])
# it's a leader, so apply property to leadership
if isinstance(family, self.objectspace.Leadership) and family.name == variable.name: if isinstance(family, self.objectspace.Leadership) and family.name == variable.name:
return family, family.variable return family, family.variable
return variable, [variable] return variable, [variable]
@ -776,15 +788,13 @@ class ConstraintAnnotator:
if condition.source == target.name: if condition.source == target.name:
raise DictConsistencyError(_('target name and source name must be different: {}').format(condition.source)) raise DictConsistencyError(_('target name and source name must be different: {}').format(condition.source))
try: try:
target_names = [normalize_family(name) for name in target.name.split('.')] target.name = self.objectspace.paths.get_variable_path(target.name, namespace)
target.name = self.objectspace.paths.get_variable_path('.'.join(target_names), namespace)
except DictConsistencyError: except DictConsistencyError:
# for optional variable # for optional variable
pass pass
elif target.type == 'family': elif target.type == 'family':
try: try:
target_names = [normalize_family(name) for name in target.name.split('.')] target.name = self.objectspace.paths.get_family_path(target.name, namespace)
target.name = self.objectspace.paths.get_family_path('.'.join(target_names), namespace)
except KeyError: except KeyError:
raise DictConsistencyError(_('cannot found family {}').format(target.name)) raise DictConsistencyError(_('cannot found family {}').format(target.name))
@ -917,41 +927,34 @@ class ConstraintAnnotator:
inverse = condition.name.endswith('_if_not_in') inverse = condition.name.endswith('_if_not_in')
actions = self._get_condition_actions(condition.name) actions = self._get_condition_actions(condition.name)
for param in condition.param: for param in condition.param:
text = getattr(param, 'text', None) if hasattr(param, 'text'):
param = param.text
else:
param = None
for target in condition.target: for target in condition.target:
leader_or_variable, variables = self._get_family_variables_from_target(target) leader_or_variable, variables = self._get_family_variables_from_target(target)
# if option is already disable, do not apply disable_if_in # if option is already disable, do not apply disable_if_in
# check only the first action (example of multiple actions: 'hidden', 'frozen', 'force_default_on_freeze') if hasattr(leader_or_variable, actions[0]) and getattr(leader_or_variable, actions[0]) is True:
main_action = actions[0]
if getattr(leader_or_variable, main_action, False) is True:
continue continue
for idx, action in enumerate(actions): for idx, action in enumerate(actions):
prop = self.objectspace.property_(leader_or_variable.xmlfiles) prop = self.objectspace.property_(leader_or_variable.xmlfiles)
prop.type = 'calculation' prop.type = 'calculation'
prop.inverse = inverse prop.inverse = inverse
prop.source = condition.source prop.source = condition.source
prop.expected = text prop.expected = param
prop.name = action prop.name = action
if idx == 0: if idx == 0:
# main action is for the variable or family
if not hasattr(leader_or_variable, 'property'): if not hasattr(leader_or_variable, 'property'):
leader_or_variable.property = [] leader_or_variable.property = []
leader_or_variable.property.append(prop) leader_or_variable.property.append(prop)
else: else:
# other actions are set to the variable or children of family
for variable in variables: for variable in variables:
if not hasattr(variable, 'property'): if not hasattr(variable, 'property'):
variable.property = [] variable.property = []
variable.property.append(prop) variable.property.append(prop)
del self.objectspace.space.constraints.condition del self.objectspace.space.constraints.condition
def _set_valid_enum(self, def _set_valid_enum(self, variable, values, type_, target):
variable,
values,
type_,
target: str,
xmlfiles: List[str],
):
# value for choice's variable is mandatory # value for choice's variable is mandatory
variable.mandatory = True variable.mandatory = True
# build choice # build choice
@ -964,7 +967,6 @@ class ConstraintAnnotator:
else: else:
self.valid_enums[target] = {'type': type_, self.valid_enums[target] = {'type': type_,
'values': values, 'values': values,
'xmlfiles': xmlfiles,
} }
choices = [] choices = []
for value in values: for value in values:
@ -1059,9 +1061,8 @@ class ConstraintAnnotator:
for idx in indexes: for idx in indexes:
fill = fills[idx] fill = fills[idx]
# test if it's redefined calculation # test if it's redefined calculation
if fill.target in targets: if fill.target in targets and not fill.redefine:
xmlfiles = self.objectspace.display_xmlfiles(fill.xmlfiles) raise DictConsistencyError(_(f"A fill already exists for the target: {fill.target}"))
raise DictConsistencyError(_(f'A fill already exists for the target of "{fill.target}" created in {xmlfiles}'))
targets.append(fill.target) targets.append(fill.target)
# #
if fill.name not in self.functions: if fill.name not in self.functions:

View File

@ -50,21 +50,21 @@
<!ATTLIST service manage (True|False) "True"> <!ATTLIST service manage (True|False) "True">
<!ELEMENT port (#PCDATA)> <!ELEMENT port (#PCDATA)>
<!ATTLIST port port_type (PortOption|variable) "PortOption"> <!ATTLIST port port_type (PortOption|SymLinkOption|variable) "PortOption">
<!ATTLIST port portlist CDATA #IMPLIED > <!ATTLIST port portlist CDATA #IMPLIED >
<!ATTLIST port protocol (tcp|udp) "tcp"> <!ATTLIST port protocol (tcp|udp) "tcp">
<!ELEMENT ip (#PCDATA)> <!ELEMENT ip (#PCDATA)>
<!ATTLIST ip iplist CDATA #IMPLIED > <!ATTLIST ip iplist CDATA #IMPLIED >
<!ATTLIST ip ip_type (NetworkOption|variable) "NetworkOption"> <!ATTLIST ip ip_type (NetworkOption|SymLinkOption|variable) "NetworkOption">
<!ATTLIST ip interface_type (UnicodeOption|variable) "UnicodeOption"> <!ATTLIST ip interface_type (UnicodeOption|SymLinkOption|variable) "UnicodeOption">
<!ATTLIST ip interface CDATA #REQUIRED> <!ATTLIST ip interface CDATA #REQUIRED>
<!ATTLIST ip netmask_type (NetmaskOption|variable) "NetmaskOption"> <!ATTLIST ip netmask_type (NetmaskOption|SymLinkOption|variable) "NetmaskOption">
<!ATTLIST ip netmask CDATA "255.255.255.255"> <!ATTLIST ip netmask CDATA "255.255.255.255">
<!ELEMENT file EMPTY> <!ELEMENT file EMPTY>
<!ATTLIST file name CDATA #REQUIRED > <!ATTLIST file name CDATA #REQUIRED >
<!ATTLIST file file_type (UnicodeOption|variable) "UnicodeOption"> <!ATTLIST file file_type (UnicodeOption|SymLinkOption|variable) "UnicodeOption">
<!ATTLIST file variable CDATA #IMPLIED> <!ATTLIST file variable CDATA #IMPLIED>
<!ATTLIST file variable_type (variable) "variable"> <!ATTLIST file variable_type (variable) "variable">
<!ATTLIST file source CDATA #IMPLIED> <!ATTLIST file source CDATA #IMPLIED>
@ -80,19 +80,17 @@
<!ATTLIST override templating (True|False) "True"> <!ATTLIST override templating (True|False) "True">
<!ELEMENT variables (family*, separators*)> <!ELEMENT variables (family*, separators*)>
<!ELEMENT family (variable*)> <!ELEMENT family (#PCDATA | variable)*>
<!ATTLIST family name CDATA #REQUIRED> <!ATTLIST family name CDATA #REQUIRED>
<!ATTLIST family description CDATA #IMPLIED> <!ATTLIST family description CDATA #IMPLIED>
<!ATTLIST family help CDATA #IMPLIED>
<!ATTLIST family mode (basic|normal|expert) "basic"> <!ATTLIST family mode (basic|normal|expert) "basic">
<!ATTLIST family hidden (True|False) "False"> <!ATTLIST family hidden (True|False) "False">
<!ATTLIST family dynamic CDATA #IMPLIED> <!ATTLIST family dynamic CDATA #IMPLIED>
<!ELEMENT variable (value*)> <!ELEMENT variable (#PCDATA | value)*>
<!ATTLIST variable name CDATA #REQUIRED> <!ATTLIST variable name CDATA #REQUIRED>
<!ATTLIST variable type CDATA #IMPLIED> <!ATTLIST variable type CDATA #IMPLIED>
<!ATTLIST variable description CDATA #IMPLIED> <!ATTLIST variable description CDATA #IMPLIED>
<!ATTLIST variable help CDATA #IMPLIED>
<!ATTLIST variable hidden (True|False) "False"> <!ATTLIST variable hidden (True|False) "False">
<!ATTLIST variable disabled (True|False) "False"> <!ATTLIST variable disabled (True|False) "False">
<!ATTLIST variable multi (True|False) "False"> <!ATTLIST variable multi (True|False) "False">
@ -147,3 +145,5 @@
<!ATTLIST target optional (True|False) "False"> <!ATTLIST target optional (True|False) "False">
<!ELEMENT follower (#PCDATA)> <!ELEMENT follower (#PCDATA)>
<!ELEMENT help ((variable* | family*)*)>

View File

@ -1,25 +1,20 @@
""" """
Takes a bunch of Creole XML dispatched in differents folders Creole flattener. Takes a bunch of Creole XML dispatched in differents folders
as an input and outputs a Tiramisu's file as an input and outputs a human readable flatened XML
Sample usage:: Sample usage::
eolobj.space_visitor(func)
xml = eolobj.save()
>>> from rougail.objspace import CreoleObjSpace >>> from rougail.objspace import CreoleObjSpace
>>> eolobj = CreoleObjSpace('/usr/share/rougail/rougail.dtd') >>> eolobj = CreoleObjSpace('/usr/share/rougail/rougail.dtd')
>>> eolobj.create_or_populate_from_xml('rougail', ['/usr/share/rougail/dicos']) >>> eolobj.create_or_populate_from_xml('rougail', ['/usr/share/eole/rougail/dicos'])
>>> eolobj.space_visitor('/usr/share/rougail/funcs.py') >>> eolobj.space_visitor()
>>> tiramisu = eolobj.save() >>> eolobj.save('/tmp/rougail_flatened_output.xml')
The CreoleObjSpace The CreoleObjSpace
- loads the XML into an internal CreoleObjSpace representation - loads the XML into an internal CreoleObjSpace representation
- visits/annotates the objects - visits/annotates the objects
- dumps the object space as Tiramisu string - dumps the object space as XML output into a single XML target
The visit/annotation stage is a complex step that corresponds to the Creole The visit/annotation stage is a complex step that corresponds to the Creole
procedures. procedures.
@ -28,9 +23,11 @@ For example: a variable is redefined and shall be moved to another family
means that a variable1 = Variable() object in the object space who lives in the family1 parent means that a variable1 = Variable() object in the object space who lives in the family1 parent
has to be moved in family2. The visit procedure changes the varable1's object space's parent. has to be moved in family2. The visit procedure changes the varable1's object space's parent.
""" """
from lxml.etree import Element, SubElement # pylint: disable=E0611
from .i18n import _ from .i18n import _
from .xmlreflector import XMLReflector from .xmlreflector import XMLReflector
from .annotator import SpaceAnnotator from .annotator import ERASED_ATTRIBUTES, SpaceAnnotator
from .tiramisureflector import TiramisuReflector from .tiramisureflector import TiramisuReflector
from .utils import normalize_family from .utils import normalize_family
from .error import OperationError, SpaceObjShallNotBeUpdated, DictConsistencyError from .error import OperationError, SpaceObjShallNotBeUpdated, DictConsistencyError
@ -44,8 +41,20 @@ FORCE_UNREDEFINABLES = ('value',)
# CreoleObjSpace's elements that shall be set to the UnRedefinable type # CreoleObjSpace's elements that shall be set to the UnRedefinable type
UNREDEFINABLE = ('multi', 'type') UNREDEFINABLE = ('multi', 'type')
CONVERT_PROPERTIES = {'auto_save': ['force_store_value'], 'auto_freeze': ['force_store_value', 'auto_freeze']}
RENAME_ATTIBUTES = {'description': 'doc'}
FORCED_TEXT_ELTS_AS_NAME = ('choice', 'property', 'value', 'target') FORCED_TEXT_ELTS_AS_NAME = ('choice', 'property', 'value', 'target')
CONVERT_EXPORT = {'Leadership': 'leader',
'Variable': 'variable',
'Value': 'value',
'Property': 'property',
'Choice': 'choice',
'Param': 'param',
'Check': 'check',
}
# _____________________________________________________________________________ # _____________________________________________________________________________
# special types definitions for the Object Space's internal representation # special types definitions for the Object Space's internal representation
@ -56,18 +65,6 @@ class RootCreoleObject:
self.xmlfiles = xmlfiles self.xmlfiles = xmlfiles
class Atom(RootCreoleObject):
pass
class Redefinable(RootCreoleObject):
pass
class UnRedefinable(RootCreoleObject):
pass
class CreoleObjSpace: class CreoleObjSpace:
"""DOM XML reflexion free internal representation of a Creole Dictionary """DOM XML reflexion free internal representation of a Creole Dictionary
""" """
@ -80,6 +77,11 @@ class CreoleObjSpace:
an Object Space's atom object is present only once in the an Object Space's atom object is present only once in the
object space's tree object space's tree
""" """
Atom = type('Atom', (RootCreoleObject,), dict())
"A variable that can't be redefined"
Redefinable = type('Redefinable', (RootCreoleObject,), dict())
"A variable can be redefined"
UnRedefinable = type('UnRedefinable', (RootCreoleObject,), dict())
def __init__(self, dtdfilename): # pylint: disable=R0912 def __init__(self, dtdfilename): # pylint: disable=R0912
@ -93,6 +95,7 @@ class CreoleObjSpace:
self.xmlreflector = XMLReflector() self.xmlreflector = XMLReflector()
self.xmlreflector.parse_dtd(dtdfilename) self.xmlreflector.parse_dtd(dtdfilename)
self.redefine_variables = None self.redefine_variables = None
self.fill_removed = None
self.check_removed = None self.check_removed = None
self.condition_removed = None self.condition_removed = None
@ -113,25 +116,25 @@ class CreoleObjSpace:
for dtd_elt in self.xmlreflector.dtd.iterelements(): for dtd_elt in self.xmlreflector.dtd.iterelements():
attrs = {} attrs = {}
if dtd_elt.name in FORCE_REDEFINABLES: if dtd_elt.name in FORCE_REDEFINABLES:
clstype = Redefinable clstype = self.Redefinable
elif not dtd_elt.attributes() and dtd_elt.name not in FORCE_UNREDEFINABLES:
clstype = Atom
else: else:
clstype = UnRedefinable clstype = self.UnRedefinable
atomic = dtd_elt.name not in FORCE_UNREDEFINABLES and dtd_elt.name not in FORCE_REDEFINABLES
forced_text_elt = dtd_elt.type == 'mixed' forced_text_elt = dtd_elt.type == 'mixed'
for dtd_attr in dtd_elt.iterattributes(): for dtd_attr in dtd_elt.iterattributes():
if set(dtd_attr.itervalues()) == {'True', 'False'}: atomic = False
if set(dtd_attr.itervalues()) == set(['True', 'False']):
# it's a boolean # it's a boolean
self.booleans_attributs.append(dtd_attr.name) self.booleans_attributs.append(dtd_attr.name)
if dtd_attr.default_value: if dtd_attr.default_value:
# set default value for this attribute # set default value for this attribute
default_value = dtd_attr.default_value default_value = dtd_attr.default_value
if dtd_attr.name in self.booleans_attributs: if dtd_attr.name in self.booleans_attributs:
default_value = self.convert_boolean(default_value) default_value = self.convert_boolean(dtd_attr.default_value)
attrs[dtd_attr.name] = default_value attrs[dtd_attr.name] = default_value
if dtd_attr.name == 'redefine': if dtd_attr.name == 'redefine':
# has a redefine attribute, so it's a Redefinable object # has a redefine attribute, so it's a Redefinable object
clstype = Redefinable clstype = self.Redefinable
if dtd_attr.name == 'name' and forced_text_elt: if dtd_attr.name == 'name' and forced_text_elt:
# child.text should be transform has a "name" attribute # child.text should be transform has a "name" attribute
self.forced_text_elts.add(dtd_elt.name) self.forced_text_elts.add(dtd_elt.name)
@ -139,19 +142,22 @@ class CreoleObjSpace:
if forced_text_elt is True: if forced_text_elt is True:
self.forced_text_elts_as_name.add(dtd_elt.name) self.forced_text_elts_as_name.add(dtd_elt.name)
if atomic:
# has any attribute so it's an Atomic object
clstype = self.Atom
# create ObjectSpace object # create ObjectSpace object
setattr(self, dtd_elt.name, type(dtd_elt.name.capitalize(), (clstype,), attrs)) setattr(self, dtd_elt.name, type(dtd_elt.name.capitalize(), (clstype,), attrs))
def create_or_populate_from_xml(self, def create_or_populate_from_xml(self,
namespace, namespace,
xmlfolders, xmlfolders):
):
"""Parses a bunch of XML files """Parses a bunch of XML files
populates the CreoleObjSpace populates the CreoleObjSpace
""" """
for xmlfile, document in self.xmlreflector.load_xml_from_folders(xmlfolders): for xmlfile, document in self.xmlreflector.load_xml_from_folders(xmlfolders):
self.redefine_variables = [] self.redefine_variables = []
self.fill_removed = []
self.check_removed = [] self.check_removed = []
self.condition_removed = [] self.condition_removed = []
self.xml_parse_document(xmlfile, self.xml_parse_document(xmlfile,
@ -169,52 +175,51 @@ class CreoleObjSpace:
"""Parses a Creole XML file """Parses a Creole XML file
populates the CreoleObjSpace populates the CreoleObjSpace
""" """
# var to check unique family name in a XML file
family_names = [] family_names = []
for child in document: for child in document:
# this index enables us to reorder objects # this index enables us to reorder objects
self.index += 1
# doesn't proceed the XML commentaries
if not isinstance(child.tag, str): if not isinstance(child.tag, str):
# doesn't proceed the XML commentaries
continue continue
if child.tag == 'family': if child.tag == 'family':
if child.attrib['name'] in family_names: if child.attrib['name'] in family_names:
raise DictConsistencyError(_(f'Family "{child.attrib["name"]}" is set several times in "{xmlfile}"')) raise DictConsistencyError(_(f'Family "{child.attrib["name"]}" is set several times in "{xmlfile}"'))
family_names.append(child.attrib['name']) family_names.append(child.attrib['name'])
if child.tag == 'variables': if child.tag == 'variables':
# variables has no name, so force namespace name
child.attrib['name'] = namespace child.attrib['name'] = namespace
if child.tag == 'value' and child.text is None: if child.tag == 'value' and child.text == None:
# FIXME should not be here
continue continue
# variable objects creation # variable objects creation
try: try:
variableobj = self.get_variableobj(xmlfile, variableobj = self.generate_variableobj(xmlfile,
child, child,
space, space,
namespace, namespace,
) )
except SpaceObjShallNotBeUpdated: except SpaceObjShallNotBeUpdated:
continue continue
self.index += 1 self.set_text_to_obj(child,
self.set_text(child, variableobj,
variableobj, )
) self.set_xml_attributes_to_obj(xmlfile,
self.set_attributes(xmlfile, child,
child, variableobj,
variableobj, )
) self.variableobj_tree_visitor(child,
self.remove(child, variableobj,
variableobj, namespace,
) )
self.set_path(space, self.fill_variableobj_path_attribute(space,
child, child,
namespace, namespace,
document, document,
variableobj, variableobj,
) )
self.add_to_tree_structure(variableobj, self.add_to_tree_structure(variableobj,
space, space,
child, child,
namespace,
) )
if list(child) != []: if list(child) != []:
self.xml_parse_document(xmlfile, self.xml_parse_document(xmlfile,
@ -223,32 +228,34 @@ class CreoleObjSpace:
namespace, namespace,
) )
def get_variableobj(self, def generate_variableobj(self,
xmlfile: str, xmlfile,
child: list, child,
space, space,
namespace, namespace,
): ):
""" """
instanciates or creates Creole Object Subspace objects instanciates or creates Creole Object Subspace objects
""" """
obj = getattr(self, child.tag) variableobj = getattr(self, child.tag)(xmlfile)
if Redefinable in obj.__mro__: if isinstance(variableobj, self.Redefinable):
return self.create_or_update_redefinable_object(xmlfile, variableobj = self.create_or_update_redefinable_object(xmlfile,
child.attrib, child.attrib,
space, space,
child, child,
namespace, namespace,
) )
elif Atom in obj.__mro__: elif isinstance(variableobj, self.Atom) and child.tag in vars(space):
if child.tag in vars(space): # instanciates an object from the CreoleObjSpace's builtins types
# Atom instance has to be a singleton here # example : child.tag = constraints -> a self.Constraints() object is created
# we do not re-create it, we reuse it # this Atom instance has to be a singleton here
return getattr(space, child.tag) # we do not re-create it, we reuse it
return obj(xmlfile) variableobj = getattr(space, child.tag)
if child.tag not in vars(space): self.create_tree_structure(space,
setattr(space, child.tag, []) child,
return obj(xmlfile) variableobj,
)
return variableobj
def create_or_update_redefinable_object(self, def create_or_update_redefinable_object(self,
xmlfile, xmlfile,
@ -257,38 +264,57 @@ class CreoleObjSpace:
child, child,
namespace, namespace,
): ):
"""Creates or retrieves the space object that corresponds
to the `child` XML object
Two attributes of the `child` XML object are important:
- with the `redefine` boolean flag attribute we know whether
the corresponding space object shall be created or updated
- `True` means that the corresponding space object shall be updated
- `False` means that the corresponding space object shall be created
- with the `exists` boolean flag attribute we know whether
the corresponding space object shall be created
(or nothing -- that is the space object isn't modified)
- `True` means that the corresponding space object shall be created
- `False` means that the corresponding space object is not updated
In the special case `redefine` is True and `exists` is False,
we create the corresponding space object if it doesn't exist
and we update it if it exists.
:return: the corresponding space object of the `child` XML object
"""
if child.tag in self.forced_text_elts_as_name: if child.tag in self.forced_text_elts_as_name:
name = child.text name = child.text
else: else:
name = subspace['name'] name = subspace['name']
if child.tag == 'family': existed_var = self.is_already_exists(name,
name = normalize_family(name) space,
existed_var = self.get_existed_obj(name, child,
space, namespace,
child, )
namespace,
)
if existed_var: if existed_var:
# if redefine is set to object, default value is False
# otherwise it's always a redefinable object
default_redefine = child.tag in FORCE_REDEFINABLES default_redefine = child.tag in FORCE_REDEFINABLES
redefine = self.convert_boolean(subspace.get('redefine', default_redefine)) redefine = self.convert_boolean(subspace.get('redefine', default_redefine))
exists = self.convert_boolean(subspace.get('exists', True))
if redefine is True: if redefine is True:
existed_var.xmlfiles.append(xmlfile) existed_var.xmlfiles.append(xmlfile)
return existed_var return self.translate_in_space(name,
exists = self.convert_boolean(subspace.get('exists', True)) space,
if exists is False: child,
namespace,
)
elif exists is False:
raise SpaceObjShallNotBeUpdated() raise SpaceObjShallNotBeUpdated()
xmlfiles = self.display_xmlfiles(existed_var.xmlfiles) xmlfiles = self.display_xmlfiles(existed_var.xmlfiles)
raise DictConsistencyError(_(f'"{child.tag}" named "{name}" cannot be re-created in "{xmlfile}", already defined in {xmlfiles}')) raise DictConsistencyError(_(f'"{child.tag}" named "{name}" cannot be re-created in "{xmlfile}", already defined in {xmlfiles}'))
# if this object must only be modified if object already exists
exists = self.convert_boolean(subspace.get('exists', False))
if exists is True:
raise SpaceObjShallNotBeUpdated()
redefine = self.convert_boolean(subspace.get('redefine', False)) redefine = self.convert_boolean(subspace.get('redefine', False))
if redefine is False: exists = self.convert_boolean(subspace.get('exists', False))
if child.tag not in vars(space): if redefine is False or exists is True:
setattr(space, child.tag, {})
return getattr(self, child.tag)(xmlfile) return getattr(self, child.tag)(xmlfile)
raise DictConsistencyError(_(f'Redefined object in "{xmlfile}": "{name}" does not exist yet')) raise DictConsistencyError(_(f'Redefined object in "{xmlfile}": "{name}" does not exist yet'))
@ -297,29 +323,53 @@ class CreoleObjSpace:
) -> str: ) -> str:
if len(xmlfiles) == 1: if len(xmlfiles) == 1:
return '"' + xmlfiles[0] + '"' return '"' + xmlfiles[0] + '"'
return '"' + '", "'.join(xmlfiles[:-1]) + '"' + ' and ' + '"' + xmlfiles[-1] + '"' else:
return '"' + '", "'.join(xmlfiles[:-1]) + '"' + ' and ' + '"' + xmlfiles[-1] + '"'
def get_existed_obj(self, def create_tree_structure(self,
name: str, space,
space: str, child,
child, variableobj,
namespace: str, ): # pylint: disable=R0201
): """
Builds the tree structure of the object space here
we set services attributes in order to be populated later on
for example::
space = Family()
space.variable = dict()
another example:
space = Variable()
space.value = list()
"""
if child.tag not in vars(space):
if isinstance(variableobj, self.Redefinable):
setattr(space, child.tag, dict())
elif isinstance(variableobj, self.UnRedefinable):
setattr(space, child.tag, [])
elif not isinstance(variableobj, self.Atom): # pragma: no cover
raise OperationError(_("Creole object {} "
"has a wrong type").format(type(variableobj)))
def is_already_exists(self,
name: str,
space: str,
child,
namespace: str,
):
if isinstance(space, self.family): # pylint: disable=E1101 if isinstance(space, self.family): # pylint: disable=E1101
if namespace != Config['variable_namespace']: if namespace != Config['variable_namespace']:
name = space.path + '.' + name name = space.path + '.' + name
if self.paths.path_is_defined(name): if self.paths.path_is_defined(name):
old_family_name = self.paths.get_variable_family_name(name)
if namespace != Config['variable_namespace']:
old_family_name = namespace + '.' + old_family_name
if space.path != old_family_name:
xmlfiles = self.display_xmlfiles(space.xmlfiles)
raise DictConsistencyError(_(f'Variable was previously create in family "{old_family_name}", now it is in "{space.path}" in {xmlfiles}'))
return self.paths.get_variable_obj(name) return self.paths.get_variable_obj(name)
return return
if child.tag == 'family':
norm_name = normalize_family(name)
else:
norm_name = name
children = getattr(space, child.tag, {}) children = getattr(space, child.tag, {})
if name in children: if norm_name in children:
return children[name] return children[norm_name]
def convert_boolean(self, value): # pylint: disable=R0201 def convert_boolean(self, value): # pylint: disable=R0201
"""Boolean coercion. The Creole XML may contain srings like `True` or `False` """Boolean coercion. The Creole XML may contain srings like `True` or `False`
@ -330,59 +380,53 @@ class CreoleObjSpace:
return True return True
elif value == 'False': elif value == 'False':
return False return False
raise TypeError(_('{} is not True or False').format(value)) # pragma: no cover
def set_text(self,
child,
variableobj,
):
if child.text is None:
return
text = child.text.strip()
if not text:
return
if child.tag in self.forced_text_elts_as_name:
variableobj.name = text
else: else:
variableobj.text = text raise TypeError(_('{} is not True or False').format(value)) # pragma: no cover
def set_attributes(self, def translate_in_space(self,
xmlfile, name,
child, family,
variableobj, variable,
): namespace,
redefine = self.convert_boolean(child.attrib.get('redefine', False)) ):
if redefine and child.tag == 'variable': if not isinstance(family, self.family): # pylint: disable=E1101
# delete old values if variable.tag == 'family':
has_value = hasattr(variableobj, 'value') norm_name = normalize_family(name)
if has_value and len(child) != 0: else:
del variableobj.value norm_name = name
for attr, val in child.attrib.items(): return getattr(family, variable.tag)[norm_name]
if redefine and attr in UNREDEFINABLE: if namespace == Config['variable_namespace']:
xmlfiles = self.display_xmlfiles(variableobj.xmlfiles[:-1]) path = name
raise DictConsistencyError(_(f'cannot redefine attribute "{attr}" for variable "{child.attrib["name"]}" in "{xmlfile}", already defined in {xmlfiles}')) else:
if attr in self.booleans_attributs: path = family.path + '.' + name
val = self.convert_boolean(val) old_family_name = self.paths.get_variable_family_name(path)
if attr == 'name' and getattr(variableobj, 'name', None): if normalize_family(family.name) == old_family_name:
# do not redefine name return getattr(family, variable.tag)[name]
continue old_family = self.space.variables[Config['variable_namespace']].family[old_family_name] # pylint: disable=E1101
setattr(variableobj, attr, val) variable_obj = old_family.variable[name]
del old_family.variable[name]
if 'variable' not in vars(family):
family.variable = dict()
family.variable[name] = variable_obj
self.paths.add_variable(namespace,
name,
family.name,
False,
variable_obj,
)
return variable_obj
def remove(self, def remove_fill(self, name): # pylint: disable=C0111
child, if hasattr(self.space, 'constraints') and hasattr(self.space.constraints, 'fill'):
variableobj, remove_fills= []
): for idx, fill in enumerate(self.space.constraints.fill): # pylint: disable=E1101
"""Creole object tree manipulations if hasattr(fill, 'target') and fill.target == name:
""" remove_fills.append(idx)
if child.tag == 'variable':
if child.attrib.get('remove_check', False): remove_fills = list(set(remove_fills))
self.remove_check(variableobj.name) remove_fills.sort(reverse=True)
if child.attrib.get('remove_condition', False): for idx in remove_fills:
self.remove_condition(variableobj.name) self.space.constraints.fill.pop(idx) # pylint: disable=E1101
if child.attrib.get('remove_fill', False):
self.remove_fill(variableobj.name)
if child.tag == 'fill' and child.attrib['target'] in self.redefine_variables:
self.remove_fill(child.attrib['target'])
def remove_check(self, name): # pylint: disable=C0111 def remove_check(self, name): # pylint: disable=C0111
if hasattr(self.space, 'constraints') and hasattr(self.space.constraints, 'check'): if hasattr(self.space, 'constraints') and hasattr(self.space.constraints, 'check'):
@ -397,43 +441,117 @@ class CreoleObjSpace:
self.space.constraints.check.pop(idx) # pylint: disable=E1101 self.space.constraints.check.pop(idx) # pylint: disable=E1101
def remove_condition(self, name): # pylint: disable=C0111 def remove_condition(self, name): # pylint: disable=C0111
remove_conditions = []
for idx, condition in enumerate(self.space.constraints.condition): # pylint: disable=E1101 for idx, condition in enumerate(self.space.constraints.condition): # pylint: disable=E1101
if condition.source == name: remove_targets = []
remove_conditions.append(idx) if hasattr(condition, 'target'):
for idx in remove_conditions: for target_idx, target in enumerate(condition.target):
del self.space.constraints.condition[idx] if target.name == name:
remove_targets.append(target_idx)
remove_targets = list(set(remove_targets))
remove_targets.sort(reverse=True)
for idx in remove_targets:
del condition.target[idx]
def remove_fill(self, name): # pylint: disable=C0111 def add_to_tree_structure(self,
if hasattr(self.space, 'constraints') and hasattr(self.space.constraints, 'fill'): variableobj,
remove_fills= [] space,
for idx, fill in enumerate(self.space.constraints.fill): # pylint: disable=E1101 child,
if hasattr(fill, 'target') and fill.target == name: ): # pylint: disable=R0201
remove_fills.append(idx) if isinstance(variableobj, self.Redefinable):
name = variableobj.name
if child.tag == 'family':
name = normalize_family(name)
getattr(space, child.tag)[name] = variableobj
elif isinstance(variableobj, self.UnRedefinable):
getattr(space, child.tag).append(variableobj)
else:
setattr(space, child.tag, variableobj)
remove_fills = list(set(remove_fills)) def set_text_to_obj(self,
remove_fills.sort(reverse=True) child,
for idx in remove_fills: variableobj,
self.space.constraints.fill.pop(idx) # pylint: disable=E1101 ):
if child.text is None:
text = None
else:
text = child.text.strip()
if text:
if child.tag in self.forced_text_elts_as_name:
variableobj.name = text
else:
variableobj.text = text
def set_path(self, def set_xml_attributes_to_obj(self,
space, xmlfile,
child, child,
namespace, variableobj,
document, ):
variableobj, redefine = self.convert_boolean(child.attrib.get('redefine', False))
): # pylint: disable=R0913 has_value = hasattr(variableobj, 'value')
"""Fill self.paths attributes if redefine is True and child.tag == 'variable' and has_value and len(child) != 0:
del variableobj.value
for attr, val in child.attrib.items():
if redefine and attr in UNREDEFINABLE:
# UNREDEFINABLE concerns only 'variable' node so we can fix name
# to child.attrib['name']
name = child.attrib['name']
xmlfiles = self.display_xmlfiles(variableobj.xmlfiles[:-1])
raise DictConsistencyError(_(f'cannot redefine attribute "{attr}" for variable "{name}" in "{xmlfile}", already defined in {xmlfiles}'))
if attr in self.booleans_attributs:
val = self.convert_boolean(val)
if not (attr == 'name' and getattr(variableobj, 'name', None) != None):
setattr(variableobj, attr, val)
keys = list(vars(variableobj).keys())
def variableobj_tree_visitor(self,
child,
variableobj,
namespace,
):
"""Creole object tree manipulations
""" """
if child.tag == 'variable': if child.tag == 'variable':
family_name = document.attrib['name'] if child.attrib.get('remove_check', False):
family_name = normalize_family(family_name) self.remove_check(variableobj.name)
if child.attrib.get('remove_condition', False):
self.remove_condition(variableobj.name)
if child.attrib.get('remove_fill', False):
self.remove_fill(variableobj.name)
if child.tag == 'fill':
# if variable is a redefine in current dictionary
# XXX not working with variable not in variable and in leader/followers
variableobj.redefine = child.attrib['target'] in self.redefine_variables
if child.attrib['target'] in self.redefine_variables and child.attrib['target'] not in self.fill_removed:
self.remove_fill(child.attrib['target'])
self.fill_removed.append(child.attrib['target'])
if not hasattr(variableobj, 'index'):
variableobj.index = self.index
if child.tag == 'check' and child.attrib['target'] in self.redefine_variables and child.attrib['target'] not in self.check_removed:
self.remove_check(child.attrib['target'])
self.check_removed.append(child.attrib['target'])
if child.tag == 'condition' and child.attrib['source'] in self.redefine_variables and child.attrib['source'] not in self.condition_removed:
self.remove_condition(child.attrib['source'])
self.condition_removed.append(child.attrib['source'])
variableobj.namespace = namespace
def fill_variableobj_path_attribute(self,
space,
child,
namespace,
document,
variableobj,
): # pylint: disable=R0913
"""Fill self.paths attributes
"""
if isinstance(space, self.help): # pylint: disable=E1101
return
if child.tag == 'variable':
family_name = normalize_family(document.attrib['name'])
self.paths.add_variable(namespace, self.paths.add_variable(namespace,
child.attrib['name'], child.attrib['name'],
family_name, family_name,
document.attrib.get('dynamic') != None, document.attrib.get('dynamic') != None,
variableobj, variableobj)
)
if child.attrib.get('redefine', 'False') == 'True': if child.attrib.get('redefine', 'False') == 'True':
if namespace == Config['variable_namespace']: if namespace == Config['variable_namespace']:
self.redefine_variables.append(child.attrib['name']) self.redefine_variables.append(child.attrib['name'])
@ -451,25 +569,6 @@ class CreoleObjSpace:
) )
variableobj.path = self.paths.get_family_path(family_name, namespace) variableobj.path = self.paths.get_family_path(family_name, namespace)
def add_to_tree_structure(self,
variableobj,
space,
child,
namespace,
): # pylint: disable=R0201
if not hasattr(variableobj, 'index'):
variableobj.index = self.index
variableobj.namespace = namespace
if isinstance(variableobj, Redefinable):
name = variableobj.name
if child.tag == 'family':
name = normalize_family(name)
getattr(space, child.tag)[name] = variableobj
elif isinstance(variableobj, UnRedefinable):
getattr(space, child.tag).append(variableobj)
else:
setattr(space, child.tag, variableobj)
def space_visitor(self, eosfunc_file): # pylint: disable=C0111 def space_visitor(self, eosfunc_file): # pylint: disable=C0111
self.funcs_path = eosfunc_file self.funcs_path = eosfunc_file
SpaceAnnotator(self, eosfunc_file) SpaceAnnotator(self, eosfunc_file)

View File

@ -38,7 +38,10 @@ class Path:
name: str, name: str,
current_namespace: str, current_namespace: str,
) -> str: # pylint: disable=C0111 ) -> str: # pylint: disable=C0111
#name = normalize_family(name) name = normalize_family(name,
check_name=False,
allow_dot=True,
)
if '.' not in name and current_namespace == Config['variable_namespace'] and name in self.full_paths_families: if '.' not in name and current_namespace == Config['variable_namespace'] and name in self.full_paths_families:
name = self.full_paths_families[name] name = self.full_paths_families[name]
if current_namespace is None: # pragma: no cover if current_namespace is None: # pragma: no cover

View File

@ -9,4 +9,5 @@ class ConvertDynOptionDescription(DynOptionDescription):
def convert_suffix_to_path(self, suffix): def convert_suffix_to_path(self, suffix):
if not isinstance(suffix, str): if not isinstance(suffix, str):
suffix = str(suffix) suffix = str(suffix)
return normalize_family(suffix) return normalize_family(suffix,
check_name=False)

View File

@ -1,19 +1,23 @@
""" """
utilitaires créole utilitaires créole
""" """
from unicodedata import normalize, combining import unicodedata
from .i18n import _ from .i18n import _
def valid_name(name: str) -> None: def normalize_family(family_name: str,
if '.' in name: check_name: bool=True,
raise ValueError(_(f'"{name}" is a forbidden variable or family name, dot is not allowed')) allow_dot: bool=False) -> str:
def normalize_family(family_name: str) -> str:
"""replace space, accent, uppercase, ... by valid character """replace space, accent, uppercase, ... by valid character
""" """
family_name = family_name.replace('-', '_').replace(' ', '_').replace('.', '_') family_name = family_name.replace('-', '_')
nfkd_form = normalize('NFKD', family_name) if not allow_dot:
family_name = ''.join([c for c in nfkd_form if not combining(c)]) family_name = family_name.replace('.', '_')
return family_name.lower() family_name = family_name.replace(' ', '_')
nfkd_form = unicodedata.normalize('NFKD', family_name)
family_name = ''.join([c for c in nfkd_form if not unicodedata.combining(c)])
family_name = family_name.lower()
if check_name and family_name == 'containers':
raise ValueError(_(f'"{family_name}" is a forbidden family name'))
return family_name

View File

@ -1,5 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True">
@ -9,7 +10,14 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True" mode="expert"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True" mode="expert">
@ -9,7 +12,14 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True" mode="expert"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True" mode="expert">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<!-- this is a comment --> <!-- this is a comment -->
@ -7,7 +10,14 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -9,7 +12,14 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,13 +1,23 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name='général'> <family name='général'>
<variable name='mode_conteneur_actif1' type='oui/non' description="No change" hidden="True"> <variable name='mode_conteneur_actif1' type='oui/non' description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -9,6 +12,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -9,12 +12,16 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<fill name="calc_val" target="mode_conteneur_actif"> <fill name="calc_val" target="mode_conteneur_actif">
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="Redefine description" hidden="True" multi="True"> <variable name="mode_conteneur_actif" type="oui/non" description="Redefine description" hidden="True" multi="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_freeze="True">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -19,6 +23,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" auto_save="True">
@ -9,6 +12,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"/> <variable name="mode_conteneur_actif" type="oui/non" description="No change"/>
@ -7,6 +10,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -14,6 +18,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -9,6 +12,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="basic"> <family name="general" mode="basic">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" mandatory="True" mode="expert"/> <variable name="mode_conteneur_actif" type="oui/non" description="No change" mandatory="True" mode="expert"/>
@ -7,6 +10,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -14,6 +18,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="number" description="No change" hidden="True"/> <variable name="mode_conteneur_actif" type="number" description="No change" hidden="True"/>
@ -7,6 +10,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -14,6 +18,9 @@
<param type="number">3</param> <param type="number">3</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -9,6 +12,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -18,6 +22,9 @@
<param type="variable" optional="True">mode_conteneur_actif3</param> <param type="variable" optional="True">mode_conteneur_actif3</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -10,6 +13,12 @@
<separator name="mode_conteneur_actif">Établissement</separator> <separator name="mode_conteneur_actif">Établissement</separator>
</separators> </separators>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -10,6 +13,12 @@
<separator name="mode_conteneur_actif">Établissement</separator> <separator name="mode_conteneur_actif">Établissement</separator>
</separators> </separators>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -7,13 +10,18 @@
</variable> </variable>
<variable name="autosavevar" type="string" description="autosave variable" hidden="True" auto_save="True"/> <variable name="autosavevar" type="string" description="autosave variable" hidden="True" auto_save="True"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<fill name="calc_val" target="autosavevar"> <fill name="calc_val" target="autosavevar">
<param>oui</param> <param>oui</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -7,6 +10,7 @@
</variable> </variable>
<variable name="autosavevar" type="string" description="autosave variable" auto_save="True"/> <variable name="autosavevar" type="string" description="autosave variable" auto_save="True"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<fill name="calc_val" target="autosavevar"> <fill name="calc_val" target="autosavevar">
@ -16,7 +20,11 @@
<param>oui</param> <param>oui</param>
<target type="variable">autosavevar</target> <target type="variable">autosavevar</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
@ -7,6 +10,7 @@
</variable> </variable>
<variable name="int" type="number" description="No change"/> <variable name="int" type="number" description="No change"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -15,6 +19,9 @@
<param name="maxi">100</param> <param name="maxi">100</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
@ -7,11 +10,15 @@
</variable> </variable>
<variable name="int" type="number" description="No change"/> <variable name="int" type="number" description="No change"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<check name="valid_lower" target="int"/> <check name="valid_lower" target="int"/>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
@ -10,6 +13,7 @@
</variable> </variable>
<variable name="int" type="number" description="No change"/> <variable name="int" type="number" description="No change"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -18,6 +22,9 @@
<param name="maxi" type="variable">int2</param> <param name="maxi" type="variable">int2</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
@ -8,6 +11,7 @@
<variable name="int" type="number" description="No change"/> <variable name="int" type="number" description="No change"/>
<variable name="int2" type="number" description="No change"/> <variable name="int2" type="number" description="No change"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -17,7 +21,11 @@
<check name="valid_differ" target="int"> <check name="valid_differ" target="int">
<param type="variable" optional="True">int3</param> <param type="variable" optional="True">int3</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -9,6 +12,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -15,13 +18,20 @@
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<check name="valid_differ" target="mode_conteneur_actif3"> <check name="valid_differ" target="mode_conteneur_actif3">
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</check> </check>
<check name="valid_differ" target="mode_conteneur_actif3">
<param type="variable">mode_conteneur_actif2</param>
</check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,8 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif3" redefine="True"/> <variable name="mode_conteneur_actif3" redefine="True">
<value>oui</value>
</variable>
</family> </family>
<separators/> <separators/>
</variables> </variables>
@ -15,6 +20,9 @@
<param type="variable">mode_conteneur_actif2</param> <param type="variable">mode_conteneur_actif2</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -11,7 +11,7 @@ from rougail.tiramisu import ConvertDynOptionDescription
option_3 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif', doc='No change', multi=False, default='oui', values=('oui', 'non')) option_3 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif', doc='No change', multi=False, default='oui', values=('oui', 'non'))
option_4 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif1', doc='No change', multi=False, default='non', values=('oui', 'non')) option_4 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif1', doc='No change', multi=False, default='non', values=('oui', 'non'))
option_5 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif2', doc='No change', multi=False, default='non', values=('oui', 'non')) option_5 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif2', doc='No change', multi=False, default='non', values=('oui', 'non'))
option_6 = StrOption(properties=frozenset({'mandatory', 'normal'}), validators=[Calculation(func.valid_not_equal, Params((ParamSelfOption(), ParamOption(option_4, notraisepropertyerror=False, todict=True)), kwargs={}), warnings_only=False), Calculation(func.valid_not_equal, Params((ParamSelfOption(), ParamOption(option_4, notraisepropertyerror=False, todict=True)), kwargs={}), warnings_only=False), Calculation(func.valid_not_equal, Params((ParamSelfOption(), ParamOption(option_5, notraisepropertyerror=False, todict=True)), kwargs={}), warnings_only=False)], name='mode_conteneur_actif3', doc='No change', multi=False, default='oui') option_6 = StrOption(properties=frozenset({'mandatory', 'normal'}), validators=[Calculation(func.valid_not_equal, Params((ParamSelfOption(), ParamOption(option_4, notraisepropertyerror=False, todict=True)), kwargs={}), warnings_only=False), Calculation(func.valid_not_equal, Params((ParamSelfOption(), ParamOption(option_5, notraisepropertyerror=False, todict=True)), kwargs={}), warnings_only=False)], name='mode_conteneur_actif3', doc='No change', multi=False, default='oui')
option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3, option_4, option_5, option_6]) option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3, option_4, option_5, option_6])
option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2]) option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2])
option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1]) option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1])

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -15,13 +18,20 @@
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
<check name="valid_differ" target="mode_conteneur_actif3"> <check name="valid_differ" target="mode_conteneur_actif3">
<param type="variable">mode_conteneur_actif1</param> <param type="variable">mode_conteneur_actif1</param>
</check> </check>
<check name="valid_differ" target="mode_conteneur_actif3">
<param type="variable">mode_conteneur_actif2</param>
</check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,11 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif3" redefine="True" remove_check="True"> <variable name="mode_conteneur_actif3" redefine="True">
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param type="variable">mode_conteneur_actif2</param> <param type="variable">mode_conteneur_actif2</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -9,6 +12,7 @@
<variable name="adresse_netmask_eth0" type="netmask" description="Masque de sous réseau de la carte" mandatory="True" mode="basic"/> <variable name="adresse_netmask_eth0" type="netmask" description="Masque de sous réseau de la carte" mandatory="True" mode="basic"/>
<variable name="adresse_ip" type="local_ip" description="IP" mandatory="True" mode="basic"/> <variable name="adresse_ip" type="local_ip" description="IP" mandatory="True" mode="basic"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -17,6 +21,9 @@
<param type="variable">adresse_netmask_eth0</param> <param type="variable">adresse_netmask_eth0</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -8,6 +11,7 @@
<variable name="adresse_ip_eth0" type="cidr" description="Adresse IP de la carte" mandatory="True" mode="basic"/> <variable name="adresse_ip_eth0" type="cidr" description="Adresse IP de la carte" mandatory="True" mode="basic"/>
<variable name="adresse_ip" type="local_ip" description="IP" mandatory="True" mode="basic"/> <variable name="adresse_ip" type="local_ip" description="IP" mandatory="True" mode="basic"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -15,6 +19,9 @@
<param type="variable">adresse_ip_eth0</param> <param type="variable">adresse_ip_eth0</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -8,6 +11,7 @@
<variable name="adresse_ip_eth0" type="local_ip" description="Adresse IP de la carte" mandatory="True" mode="basic"/> <variable name="adresse_ip_eth0" type="local_ip" description="Adresse IP de la carte" mandatory="True" mode="basic"/>
<variable name="adresse_netmask_eth0" type="netmask" description="Masque de sous réseau de la carte" mandatory="True" mode="basic"/> <variable name="adresse_netmask_eth0" type="netmask" description="Masque de sous réseau de la carte" mandatory="True" mode="basic"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -15,6 +19,9 @@
<param type="variable">adresse_ip_eth0</param> <param type="variable">adresse_ip_eth0</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -25,4 +28,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general1"> <family name="general1">
<variable name="follower3" type="string" description="follower3"/> <variable name="follower3" type="string" description="follower3"/>
@ -7,8 +10,11 @@
</variables> </variables>
<constraints> <constraints>
<group leader="leader"> <group leader="leader">
<follower>follower3</follower> <follower>follower3</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -28,4 +31,7 @@
<follower>follower3</follower> <follower>follower3</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -22,4 +25,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -22,4 +25,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<target type="variable">leader</target> <target type="variable">leader</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -23,4 +26,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<variables> <variables>
<family name="général"> <family name="général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
@ -8,6 +9,7 @@
<variable name="nut_monitor_netmask" type="netmask" description="Masque de l'IP du réseau de l'esclave" multi="True"/> <variable name="nut_monitor_netmask" type="netmask" description="Masque de l'IP du réseau de l'esclave" multi="True"/>
<variable name="nut_monitor_host" type="network" description="Adresse IP du réseau de l'esclave" mandatory="True"/> <variable name="nut_monitor_host" type="network" description="Adresse IP du réseau de l'esclave" mandatory="True"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -15,6 +17,9 @@
<follower>nut_monitor_host</follower> <follower>nut_monitor_host</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -32,4 +35,7 @@
<follower>follower21</follower> <follower>follower21</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -22,6 +26,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="string" description="No change"> <variable name="condition" type="string" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -22,6 +26,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -17,6 +20,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -27,6 +31,9 @@
<target type="family">Général2</target> <target type="family">Général2</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -26,6 +30,9 @@
<target type="variable">mode_conteneur_actif</target> <target type="variable">mode_conteneur_actif</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -26,6 +30,9 @@
<target type="variable">mode_conteneur_actif</target> <target type="variable">mode_conteneur_actif</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -26,6 +30,9 @@
<target type="variable">mode_conteneur_actif</target> <target type="variable">mode_conteneur_actif</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -26,6 +30,9 @@
<target type="variable">mode_conteneur_actif</target> <target type="variable">mode_conteneur_actif</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -22,6 +26,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
@ -9,7 +12,14 @@
<value/> <value/>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -21,6 +25,9 @@
<target type="variable">mode_conteneur_actif2</target> <target type="variable">mode_conteneur_actif2</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -24,6 +28,9 @@
<param>non</param> <param>non</param>
</fill> </fill>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="string" description="No change"> <variable name="condition" type="string" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -27,6 +31,9 @@
<target type="variable">mode_conteneur_actif2</target> <target type="variable">mode_conteneur_actif2</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -17,6 +20,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -27,6 +31,9 @@
<target type="family">Général2</target> <target type="family">Général2</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -25,4 +28,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True"> <variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True">
@ -19,4 +22,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True"> <variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True">
@ -24,4 +27,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True"> <variable name="mode_conteneur_actif" type="oui/non" description="leader" multi="True">
@ -8,7 +11,7 @@
<variable name="leader" type="string" description="leader" multi="True"> <variable name="leader" type="string" description="leader" multi="True">
<value>value</value> <value>value</value>
</variable> </variable>
<variable name="follower1" type="string" description="follower1"/> <variable name="follower1" type="string" description="follower1"/>
<variable name="follower2" type="string" description="follower2"/> <variable name="follower2" type="string" description="follower2"/>
</family> </family>
</variables> </variables>
@ -19,4 +22,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -12,10 +15,14 @@
<variable name="follower2" type="string" description="follower2"/> <variable name="follower2" type="string" description="follower2"/>
</family> </family>
</variables> </variables>
<constraints> <constraints>
<group leader="leader"> <group leader="leader">
<follower>follower1</follower> <follower>follower1</follower>
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,8 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general-1"> <family name="general-1">
<variable name="leader" redefine="True" mandatory="True"/> <variable name="leader" redefine="True" mandatory="True"/>
</family> </family>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -25,4 +28,7 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -12,6 +15,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -21,6 +25,9 @@
<target type="variable">mode_conteneur_actif2</target> <target type="variable">mode_conteneur_actif2</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True" multi="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True" multi="True">
@ -7,7 +10,14 @@
<value>oui</value> <value>oui</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,10 +10,11 @@
</variable> </variable>
</family> </family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="string" description="multi" help="bla bla bla"> <variable name="enumvar" type="string" description="multi">
<value>c</value> <value>c</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -21,6 +25,11 @@
<param>é</param> <param>é</param>
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,7 +10,7 @@
</variable> </variable>
</family> </family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="string" description="multi" help="bla bla bla"> <variable name="enumvar" type="string" description="multi">
<value>c</value> <value>c</value>
</variable> </variable>
</family> </family>
@ -21,6 +24,11 @@
<param>c</param> <param>c</param>
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -10,10 +13,11 @@
<variable name="enumvar2" type="string" description="multi"> <variable name="enumvar2" type="string" description="multi">
<value>c</value> <value>c</value>
</variable> </variable>
<variable name="enumvar" type="string" description="multi" help="bla bla bla"> <variable name="enumvar" type="string" description="multi">
<value>c</value> <value>c</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -28,6 +32,11 @@
<param>c</param> <param>c</param>
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,11 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" redefine="True" remove_check="True"> <variable name="enumvar" redefine="True">
<value>c</value> <value>c</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -14,6 +18,10 @@
<param>c</param> <param>c</param>
</check> </check>
</constraints> </constraints>
<help>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -9,6 +12,7 @@
<variable name="follower1" type="string" description="follower1"/> <variable name="follower1" type="string" description="follower1"/>
<variable name="follower2" type="string" description="follower2"/> <variable name="follower2" type="string" description="follower2"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -22,6 +26,9 @@
<follower>follower2</follower> <follower>follower2</follower>
</group> </group>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,6 +10,7 @@
</variable> </variable>
<variable name="multi" type="string" description="multi" multi="True"/> <variable name="multi" type="string" description="multi" multi="True"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -16,6 +20,9 @@
<param>c</param> <param>c</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,7 +10,7 @@
</variable> </variable>
</family> </family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="string" description="multi" help="bla bla bla"> <variable name="enumvar" type="string" description="multi">
<value>b</value> <value>b</value>
</variable> </variable>
</family> </family>
@ -21,6 +24,11 @@
<param/> <param/>
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,8 +10,9 @@
</variable> </variable>
</family> </family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="number" description="enumvar" help="bla bla bla"/> <variable name="enumvar" type="number" description="enumvar"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -19,6 +23,10 @@
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general" mode="expert"> <family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -7,10 +10,11 @@
</variable> </variable>
</family> </family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="number" description="enumvar" help="bla bla bla"> <variable name="enumvar" type="number" description="enumvar">
<value>3</value> <value>3</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -20,6 +24,11 @@
<param>3</param> <param>3</param>
</check> </check>
</constraints> </constraints>
<help>
<variable name="enumvar">bla bla bla</variable>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,11 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
<value>b</value> <value>b</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -15,6 +19,9 @@
<param>c</param> <param>c</param>
</check> </check>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -17,6 +17,7 @@
</variable> </variable>
<variable name="mode_conteneur_actif2" type="boolean" description="No change"/> <variable name="mode_conteneur_actif2" type="boolean" description="No change"/>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -27,6 +28,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -19,6 +19,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -29,6 +30,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -20,6 +20,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -30,6 +31,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -19,6 +19,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -27,6 +28,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -6,6 +6,8 @@
<file name="/tmp/file" filelist="afilllist"/> <file name="/tmp/file" filelist="afilllist"/>
</service> </service>
</services> </services>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="condition" type="oui/non" description="No change"> <variable name="condition" type="oui/non" description="No change">
@ -18,6 +20,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -26,6 +29,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -19,6 +19,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -31,6 +32,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -16,6 +16,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -28,6 +29,9 @@
<target type="filelist">afilllist</target> <target type="filelist">afilllist</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,12 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,10 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif1" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif1" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>

View File

@ -1,5 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="mode_conteneur_actif" type="oui/non" description="No change"> <variable name="mode_conteneur_actif" type="oui/non" description="No change">
@ -11,6 +14,7 @@
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints> <constraints>
@ -19,6 +23,9 @@
<target type="variable">mode_conteneur_actif</target> <target type="variable">mode_conteneur_actif</target>
</condition> </condition>
</constraints> </constraints>
<help/>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

View File

@ -1,10 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="Général"> <family name="Général">
<variable name="mode_conteneur_actif1" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif1" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>

View File

@ -1,10 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif2" type="oui/non" description="No change" hidden="True"> <variable name="mode_conteneur_actif2" type="oui/non" description="No change" hidden="True">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help/>
</rougail> </rougail>

View File

@ -1,13 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail> <rougail>
<services/>
<variables> <variables>
<family name="general"> <family name="general">
<variable name="mode_conteneur_actif" type="oui/non" description="No change" mode="basic"> <variable name="mode_conteneur_actif" type="oui/non" description="No change" mode="basic">
<value>non</value> <value>non</value>
</variable> </variable>
</family> </family>
<family name="general2" help="family"/> <family name="general2"/>
<separators/>
</variables> </variables>
<constraints>
</constraints>
<help>
<family name="general2">family</family>
</help>
</rougail> </rougail>
<!-- vim: ts=4 sw=4 expandtab <!-- vim: ts=4 sw=4 expandtab
--> -->

Some files were not shown because too many files have changed in this diff Show More