feat: leadership => sequence

This commit is contained in:
egarette@silique.fr 2026-06-11 07:53:47 +02:00
parent 49063e107d
commit ce059ffb01
63 changed files with 112 additions and 76 deletions

View file

@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
from io import BytesIO
from pathlib import Path
from typing import Optional
from copy import deepcopy
from ruamel.yaml import YAML, CommentedMap
from ruamel.yaml.representer import RoundTripRepresenter
@ -37,6 +38,7 @@ from djlint.reformat import formatter
from tiramisu.config import get_common_path
from rougail.convert import RougailConvert
from rougail.convert.collect import Collect
from rougail.convert.object_model import (
Variable,
Family,
@ -240,6 +242,8 @@ class RougailOutputFormatter:
family["exists"] = yaml_data["exists"]
force_keys = list(yaml_data)
type_ = obj.type
if type_ in RENAME_TYPE:
type_ = RENAME_TYPE[type_]
if type_ == "dynamic":
attributes = self.get_attributes(self.rougail.dynamic)
else:
@ -247,17 +251,20 @@ class RougailOutputFormatter:
for attr, default_value in attributes.items():
if attr in ["name", "path", "namespace", "version", "xmlfiles"]:
continue
try:
value = getattr(obj, attr)
except AttributeError:
continue
if attr == "type":
value = type_
else:
try:
value = getattr(obj, attr)
except AttributeError:
continue
if attr != "type" and attr not in force_keys and value == default_value:
continue
if attr in children:
attr = f"_{attr}"
family[attr] = self.object_to_yaml(attr, type_, value, False, path)
if type_ == "dynamic" or (children and type_ == "family"):
tmp_family = family.copy()
tmp_family = deepcopy(family)
if "_type" in tmp_family:
del tmp_family["_type"]
else:
@ -276,10 +283,21 @@ class RougailOutputFormatter:
elif cpath.replace('{{ identifier }}', '{{ suffix }}') in child:
cpath = cpath.replace('{{ identifier }}', '{{ suffix }}')
child = child[cpath]
tmp_family[cpath] = child
family_type = self.rougail.is_family_or_variable("", tmp_family, False, "")
tmp_family[cpath] = child
#family_type = self.rougail.is_family_or_variable("", tmp_family, False, "")
collect = Collect(
self.rougail,
name,
parent,
tmp_family,
None,
None,
test_exists=False,
raises=False,
)
family_type = collect.option_type
if family_type == "family":
family_type = self.rougail.get_family_or_variable_type(tmp_family)
family_type = collect.user_type
if family_type is None:
family_type = 'family'
if family_type == type_:
@ -347,8 +365,14 @@ class RougailOutputFormatter:
xmlfiles=obj.xmlfiles,
)
obj.params.append(param)
if type_ == 'choice':
variable_obj = self.rougail.choices
elif type_ == "regexp":
variable_obj = self.rougail.regexp
else:
variable_obj = self.rougail.variable
for attr, default_value in self.get_attributes(
self.rougail.variable, ["name", "path", "namespace", "version", "xmlfiles"]
variable_obj, ["name", "path", "namespace", "version", "xmlfiles"]
).items():
if attr == "type":
value = type_

View file

@ -3,7 +3,7 @@
version: 1.1
leadership:
type: leadership
type: sequence
hidden: true
var1: # a first variable

View file

@ -18,33 +18,33 @@ var2:
var3:
description: the third variable
mandatory: false
choices:
- a
- b
- c
mandatory: false
var4:
description: the forth variable
mandatory: false
choices:
- null
- b
- c
mandatory: false
var5:
description: the fifth variable
default: a
choices:
- a
- b
- c
default: a
var6:
description: the sixth variable
default: 1
choices:
- 1
- 2
- 3
default: 1
...

View file

@ -4,6 +4,7 @@ version: 1.1
var:
description: a variable
default: 9
choices:
jinja: |-
{% for n in trange(0, 10) %}
@ -11,5 +12,4 @@ var:
{% endfor %}
return_type: integer
description: choices is 0 to 9
default: 9
...

View file

@ -9,7 +9,7 @@ var1: # a second variable
var2:
description: a first variable
default: a
choices:
variable: _.var1
default: a
...

View file

@ -9,9 +9,9 @@ var1: # a second variable
var2:
description: a first variable
default: a
choices:
variable: _.var1
default: a
var3:
description: a third variable

View file

@ -9,9 +9,9 @@ var1: # a second variable
var2:
description: a first variable
default: a
choices:
variable: _.var1
default: a
family:

View file

@ -7,6 +7,6 @@ var:
test:
- '#b1b1b1'
- '#b2b2b2'
regexp: ^#(?:[0-9a-f]{3}){1,2}$
default: '#a1a1a1'
regexp: ^#(?:[0-9a-f]{3}){1,2}$
...

View file

@ -7,8 +7,8 @@ var1:
test:
- '#b1b1b1'
- '#b2b2b2'
regexp: ^#(?:[0-9a-f]{3}){1,2}$
default: '#a1a1a1'
regexp: ^#(?:[0-9a-f]{3}){1,2}$
var2:
description: a second variable

View file

@ -4,9 +4,9 @@ version: 1.1
var:
description: A choice
default: quote'
choices:
- quote'
- quote"
- quote"'
default: quote'
...

View file

@ -4,16 +4,16 @@ version: 1.1
variable1:
description: a first variable
multi: true
choices:
- val1
- val2
multi: true
variable2:
description: a second variable
multi: true
mandatory: false
choices:
- val1
- val2
multi: true
mandatory: false
...

View file

@ -8,8 +8,8 @@ source_variable_2: val2 # the second source variable
my_variable:
description: a variable
default: val1
choices:
- variable: _.source_variable_1
- variable: _.source_variable_2
default: val1
...

View file

@ -4,6 +4,7 @@ version: 1.1
var:
description: a variable
default: 9
choices:
jinja: |-
{% for item in trange(0, 10) %}
@ -11,5 +12,4 @@ var:
{%- endfor %}
return_type: integer
description: choice for 0 to 9
default: 9
...

View file

@ -4,6 +4,7 @@ version: 1.1
var:
description: a variable
default: 9
choices:
jinja: |-
{% for item in trange(0, 10) %}
@ -11,5 +12,4 @@ var:
{%- endfor %}
return_type: integer
description: choice for 0 to 9
default: 9
...

View file

@ -4,6 +4,7 @@ version: 1.1
variable:
description: a variable
default: c
choices:
variable: _.unknown_variable
optional: true
@ -11,5 +12,4 @@ variable:
- a
- b
- c
default: c
...

View file

@ -4,9 +4,9 @@ version: 1.1
var:
description: A choice
default: c
choices:
- a
- b
- c
default: c
...

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: a leadership
type: leadership
type: sequence
leader: [] # a leader

View file

@ -3,5 +3,5 @@
version: 1.1
empty_leader:
type: leadership
type: sequence
...

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # the leader
- leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -10,7 +10,7 @@ general1:
leader:
description: leader
type: leadership
type: sequence
leader: # leader

View file

@ -4,13 +4,16 @@ version: 1.1
leadership:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader
examples:
- val1
- val2
test:
- val1
- val2
default:
- value_1
- value_2

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: [] # the leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: leadership
type: leadership
type: sequence
leader: # a leader
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: A leadership
type: leadership
type: sequence
leader: [] # The leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: A leadership
type: leadership
type: sequence
leader:
description: The leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -3,7 +3,7 @@
version: 1.1
leader:
type: leadership
type: sequence
leader:
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -8,7 +8,7 @@ calculate: # a calculated variable
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership_1:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1
@ -14,7 +14,7 @@ leadership_1:
leadership_2:
description: a second leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leadership_1:
description: a leadership
type: leadership
type: sequence
leader: # a leader
- value1
@ -14,7 +14,7 @@ leadership_1:
leadership_2:
description: a second leadership
type: leadership
type: sequence
leader: # a leader
- value1

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: The leadership
type: leadership
type: sequence
leader:
description: The leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
hidden: true
leader:

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -6,7 +6,7 @@ condition: true # a condition
leader:
description: a leadership
type: leadership
type: sequence
leader: # aleader
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leadership:
description: a leadership
type: leadership
type: sequence
leader: # aleader
- a

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader: [] # a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -6,7 +6,7 @@ condition: no # a condition
leader:
description: a leadership
type: leadership
type: sequence
leader:
description: a leader

View file

@ -6,7 +6,7 @@ condition: yes # a condition
leader:
description: a leadership
type: leadership
type: sequence
leader: [] # a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: leader
type: leadership
type: sequence
leader: # a leader
- a

View file

@ -6,7 +6,10 @@ var1: # A suffix variable
- val1
- val2
var2: val1 # A suffix variable2
var2:
description: A suffix variable2
default: val1
hidden: true
dyn{{ identifier }}:
dynamic:

View file

@ -6,7 +6,10 @@ var1: # A suffix variable
- val1
- val2
var2: val1 # A suffix variable2
var2:
description: A suffix variable2
default: val1
hidden: true
dyn{{ identifier }}:
dynamic:

View file

@ -24,4 +24,5 @@ var2:
default:
variable: _.dynval1.var
propertyerror: false
mandatory: false
...

View file

@ -22,5 +22,7 @@ var2:
description: A variable calculated
default:
variable: _.dynval1.var
propertyerror: false
optional: true
mandatory: false
...

View file

@ -13,7 +13,7 @@ dyn{{ identifier }}:
leadership:
description: a leadership
type: leadership
type: sequence
leader: [] # a leader

View file

@ -17,7 +17,7 @@ dyn{{ identifier }}:
leadership:
description: a leadership
type: leadership
type: sequence
leader: [] # a leader

View file

@ -4,7 +4,7 @@ version: 1.1
leader:
description: A leadership
type: leadership
type: sequence
leader:
description: A leader