Compare commits
No commits in common. "0.1.0a22" and "main" have entirely different histories.
335 changed files with 502 additions and 3083 deletions
171
CHANGELOG.md
171
CHANGELOG.md
|
|
@ -1,171 +0,0 @@
|
||||||
## 0.1.0a22 (2025-11-21)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- ExtentionError => ExtensionError
|
|
||||||
|
|
||||||
## 0.1.0a21 (2025-11-06)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- add some tests
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- always remove choice type + support warnings
|
|
||||||
|
|
||||||
## 0.1.0a20 (2025-11-03)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- allow extra kwargs
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- update tests
|
|
||||||
|
|
||||||
## 0.1.0a19 (2025-10-10)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- update tests
|
|
||||||
- tests
|
|
||||||
|
|
||||||
## 0.1.0a18 (2025-09-30)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- family or dynamic could needs type attribute
|
|
||||||
|
|
||||||
## 0.1.0a17 (2025-09-29)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- param line size
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- support numeric string
|
|
||||||
|
|
||||||
## 0.1.0a16 (2025-09-29)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- variable with an index is an integer variable
|
|
||||||
- default value for a calculated variable with an unknown optional variable
|
|
||||||
- **#26**: convert cidr and network_cidr format
|
|
||||||
- add integer type which will replace number type
|
|
||||||
|
|
||||||
## 0.1.0a15 (2025-09-22)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- dictionary => structure
|
|
||||||
|
|
||||||
## 0.1.0a14 (2025-06-18)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- rougail separation
|
|
||||||
|
|
||||||
## 0.1.0a13 (2025-05-15)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- no multi empty line when a variable finish by a multi line description
|
|
||||||
|
|
||||||
## 0.1.0a12 (2025-05-12)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- black
|
|
||||||
|
|
||||||
## 0.1.0a11 (2025-05-09)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- format with default_dictionary_format_version configuration
|
|
||||||
|
|
||||||
## 0.1.0a10 (2025-05-02)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- do not load use_data with rougail cli
|
|
||||||
- support {{ suffix }} name in 1.1 format version
|
|
||||||
|
|
||||||
## 0.1.0a9 (2025-04-30)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- add yamllint validation
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- update tests
|
|
||||||
- add version
|
|
||||||
|
|
||||||
## 0.1.0a8 (2025-04-01)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- update tests
|
|
||||||
|
|
||||||
## 0.1.0a7 (2025-03-30)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- support multi lines for help
|
|
||||||
|
|
||||||
## 0.1.0a6 (2025-03-28)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- do not add multi \n at ends of export
|
|
||||||
|
|
||||||
## 0.1.0a5 (2025-03-27)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- if and for in 3 lines
|
|
||||||
|
|
||||||
## 0.1.0a4 (2025-03-27)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- format jinja template
|
|
||||||
|
|
||||||
## 0.1.0a3 (2025-03-27)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- add secret_manager support
|
|
||||||
- add Namespace(Param|Calculation) support
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- do not add namespace in param
|
|
||||||
- an empty variable is []
|
|
||||||
|
|
||||||
## 0.1.0a2 (2025-03-26)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- pyproject.toml
|
|
||||||
|
|
||||||
## 0.1.0a1 (2025-03-26)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- add pyproject.toml
|
|
||||||
|
|
||||||
## 0.1.0a0 (2025-02-10)
|
|
||||||
|
|
||||||
### Feat
|
|
||||||
|
|
||||||
- output return status too
|
|
||||||
|
|
||||||
## 0.0.1a0 (2025-01-04)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- remove prefix_path
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR ORGANIZATION
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: \n"
|
|
||||||
"POT-Creation-Date: 2025-09-29 11:38+0200\n"
|
|
||||||
"PO-Revision-Date: 2025-09-29 11:46+0200\n"
|
|
||||||
"Last-Translator: \n"
|
|
||||||
"Language-Team: \n"
|
|
||||||
"Language: fr\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
|
||||||
"X-Generator: Poedit 3.7\n"
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:105
|
|
||||||
msgid "the \"step.output\" is not set to \"{0}\""
|
|
||||||
msgstr "\"step.output\" n'est pas défini pour \"{0}\""
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:155
|
|
||||||
msgid "only one file is allowed"
|
|
||||||
msgstr "seulement un fichier est autorisé"
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:158
|
|
||||||
msgid "only a file is allowed"
|
|
||||||
msgstr "seulement un fichier est autorisé"
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/config.py:59
|
|
||||||
msgid "Configuration for rougail-ouput-formatter"
|
|
||||||
msgstr "Configuration pour rougail-ouput-formatter"
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/config.py:61
|
|
||||||
msgid "Line size"
|
|
||||||
msgstr "Taille des lignes"
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR ORGANIZATION
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"POT-Creation-Date: 2025-09-29 11:47+0200\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
|
||||||
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:105
|
|
||||||
msgid "the \"step.output\" is not set to \"{0}\""
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:155
|
|
||||||
msgid "only one file is allowed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/__init__.py:158
|
|
||||||
msgid "only a file is allowed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/config.py:59
|
|
||||||
msgid "Configuration for rougail-ouput-formatter"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/rougail/output_formatter/config.py:61
|
|
||||||
msgid "Line size"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
[build-system]
|
|
||||||
build-backend = "flit_core.buildapi"
|
|
||||||
requires = ["flit_core >=3.8.0,<4"]
|
|
||||||
|
|
||||||
[project]
|
|
||||||
name = "rougail.output_formatter"
|
|
||||||
version = "0.1.0a22"
|
|
||||||
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
|
|
||||||
readme = "README.md"
|
|
||||||
description = "Rougail output formatter"
|
|
||||||
requires-python = ">=3.8"
|
|
||||||
license = {file = "LICENSE"}
|
|
||||||
classifiers = [
|
|
||||||
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
|
|
||||||
"Programming Language :: Python",
|
|
||||||
"Programming Language :: Python :: 3.11",
|
|
||||||
"Programming Language :: Python :: 3.12",
|
|
||||||
"Programming Language :: Python :: 3.13",
|
|
||||||
"Programming Language :: Python :: 3.14",
|
|
||||||
"Programming Language :: Python :: 3",
|
|
||||||
"Operating System :: OS Independent",
|
|
||||||
"Natural Language :: English",
|
|
||||||
"Natural Language :: French",
|
|
||||||
|
|
||||||
]
|
|
||||||
dependencies = [
|
|
||||||
"rougail >= 1.1,<2",
|
|
||||||
"djlint == 1.36.4",
|
|
||||||
]
|
|
||||||
|
|
||||||
[project.urls]
|
|
||||||
Home = "https://forge.cloud.silique.fr/stove/rougail-output-formatter"
|
|
||||||
|
|
||||||
[tool.commitizen]
|
|
||||||
name = "cz_conventional_commits"
|
|
||||||
tag_format = "$version"
|
|
||||||
version_scheme = "pep440"
|
|
||||||
version_provider = "pep621"
|
|
||||||
version_files = [
|
|
||||||
"src/rougail/output_formatter/__version__.py",
|
|
||||||
"pyproject.toml:version"
|
|
||||||
]
|
|
||||||
update_changelog_on_bump = true
|
|
||||||
changelog_merge_prerelease = true
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"""
|
"""
|
||||||
Silique (https://www.silique.fr)
|
Silique (https://www.silique.fr)
|
||||||
Copyright (C) 2024-2025
|
Copyright (C) 2024
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Lesser General Public License as published by the
|
under the terms of the GNU Lesser General Public License as published by the
|
||||||
Free Software Foundation, either version 3 of the License, or (at your
|
Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
|
@ -16,82 +16,33 @@ You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from ruamel.yaml import YAML, CommentedMap
|
from ruamel.yaml import YAML, CommentedMap
|
||||||
from ruamel.yaml.representer import RoundTripRepresenter
|
|
||||||
from ruamel.yaml.tokens import CommentToken
|
from ruamel.yaml.tokens import CommentToken
|
||||||
from ruamel.yaml.error import CommentMark
|
from ruamel.yaml.error import CommentMark
|
||||||
from ruamel.yaml.comments import CommentedSeq
|
from ruamel.yaml.comments import CommentedSeq
|
||||||
from ruamel.yaml.scalarstring import (
|
from ruamel.yaml.scalarstring import LiteralScalarString, FoldedScalarString
|
||||||
LiteralScalarString,
|
|
||||||
FoldedScalarString,
|
|
||||||
ScalarString,
|
|
||||||
)
|
|
||||||
|
|
||||||
from djlint.settings import Config
|
|
||||||
from djlint.reformat import formatter
|
|
||||||
|
|
||||||
|
from tiramisu import undefined
|
||||||
from tiramisu.config import get_common_path
|
from tiramisu.config import get_common_path
|
||||||
|
|
||||||
from rougail.convert import RougailConvert
|
from rougail.convert import RougailConvert
|
||||||
from rougail.convert.object_model import (
|
from rougail.object_model import Variable, Family, Calculation, JinjaCalculation, IdentifierCalculation, IdentifierPropertyCalculation, IdentifierParam, IndexCalculation, IndexParam, Param
|
||||||
Variable,
|
from rougail.utils import normalize_family
|
||||||
Family,
|
|
||||||
Calculation,
|
|
||||||
JinjaCalculation,
|
|
||||||
IdentifierCalculation,
|
|
||||||
IdentifierPropertyCalculation,
|
|
||||||
NamespaceCalculation,
|
|
||||||
IdentifierParam,
|
|
||||||
IndexCalculation,
|
|
||||||
VariableCalculation,
|
|
||||||
IndexParam,
|
|
||||||
NamespaceParam,
|
|
||||||
Param,
|
|
||||||
AnyParam,
|
|
||||||
)
|
|
||||||
from rougail.tiramisu import normalize_family, RENAME_TYPE
|
|
||||||
from rougail.utils import undefined
|
|
||||||
from rougail.error import ExtensionError
|
|
||||||
|
|
||||||
from .upgrade import RougailUpgrade
|
from .upgrade import RougailUpgrade
|
||||||
from .i18n import _
|
|
||||||
from .__version__ import __version__
|
|
||||||
|
|
||||||
|
|
||||||
# XXX explicit null
|
def _(text):
|
||||||
def represent_none(self, data):
|
return text
|
||||||
return self.represent_scalar("tag:yaml.org,2002:null", "null")
|
|
||||||
|
|
||||||
|
|
||||||
def represent_str(self, data):
|
|
||||||
if data == "":
|
|
||||||
return self.represent_scalar("tag:yaml.org,2002:null", "")
|
|
||||||
return self.represent_scalar("tag:yaml.org,2002:str", data)
|
|
||||||
|
|
||||||
|
|
||||||
RoundTripRepresenter.add_representer(type(None), represent_none)
|
|
||||||
RoundTripRepresenter.add_representer(str, represent_str)
|
|
||||||
# XXX
|
|
||||||
|
|
||||||
|
|
||||||
class RougailConvertFormatter(RougailConvert):
|
|
||||||
def parse_root_file(
|
|
||||||
self,
|
|
||||||
filename: str,
|
|
||||||
path: str,
|
|
||||||
version: str,
|
|
||||||
objects: dict,
|
|
||||||
) -> None:
|
|
||||||
self.objects = objects
|
|
||||||
super().parse_root_file(filename, path, version, objects)
|
|
||||||
|
|
||||||
|
|
||||||
class RougailOutputFormatter:
|
class RougailOutputFormatter:
|
||||||
output_name = "formatter"
|
output_name = 'formatter'
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
@ -100,80 +51,30 @@ class RougailOutputFormatter:
|
||||||
rougailconfig: "RougailConfig" = None,
|
rougailconfig: "RougailConfig" = None,
|
||||||
user_data_errors: Optional[list] = None,
|
user_data_errors: Optional[list] = None,
|
||||||
user_data_warnings: Optional[list] = None,
|
user_data_warnings: Optional[list] = None,
|
||||||
**kwargs,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
self.basic_types = {
|
self.basic_types = {
|
||||||
str: "string",
|
str: "string",
|
||||||
int: "integer",
|
int: "number",
|
||||||
bool: "boolean",
|
bool: "boolean",
|
||||||
float: "float",
|
float: "float",
|
||||||
}
|
}
|
||||||
if rougailconfig is None:
|
if rougailconfig is None:
|
||||||
from rougail import RougailConfig
|
from rougail import RougailConfig
|
||||||
|
|
||||||
rougailconfig = RougailConfig
|
rougailconfig = RougailConfig
|
||||||
rougailconfig["step.output"] = self.output_name
|
rougailconfig["step.output"] = self.output_name
|
||||||
self.rougailconfig = rougailconfig
|
if rougailconfig["step.output"] != self.output_name:
|
||||||
if self.rougailconfig["step.output"] != self.output_name:
|
raise ExtentionError(_('the "step.output" is not set to "{0}"').format(self.output_name))
|
||||||
raise ExtensionError(
|
|
||||||
_('the "step.output" is not set to "{0}"').format(self.output_name)
|
|
||||||
)
|
|
||||||
# yaml.top_level_colon_align = True
|
# yaml.top_level_colon_align = True
|
||||||
self.main_namespace = normalize_family(self.rougailconfig["main_namespace"])
|
self.main_namespace = rougailconfig["main_namespace"]
|
||||||
self.has_default_structural_format_version = (
|
filenames = rougailconfig["main_dictionaries"]
|
||||||
self.rougailconfig["default_structural_format_version"] is not None
|
if len(rougailconfig["main_dictionaries"]) > 1:
|
||||||
)
|
raise Exception(_('only one file is allowed'))
|
||||||
self.config = Config()
|
|
||||||
self.config.profile = "jinja"
|
|
||||||
self.config.line_break_after_multiline_tag = True
|
|
||||||
self.config.indent = " "
|
|
||||||
self.attributes = {}
|
|
||||||
|
|
||||||
self.yaml = YAML()
|
|
||||||
self.yaml.width = self.rougailconfig["formatter.line_width"]
|
|
||||||
self.conv_yaml = YAML()
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.upgrade()
|
|
||||||
self.families = {self.main_namespace: CommentedMap()}
|
|
||||||
self.parse()
|
|
||||||
self.yaml.indent(mapping=2, sequence=4, offset=2)
|
|
||||||
self.yaml.version = "1.2"
|
|
||||||
self.yaml.explicit_start = True
|
|
||||||
self.yaml.explicit_end = True
|
|
||||||
self.default_flow_style = False
|
|
||||||
with BytesIO() as ymlfh:
|
|
||||||
families = self.families[self.main_namespace]
|
|
||||||
if not families:
|
|
||||||
self.yaml.dump("", ymlfh)
|
|
||||||
else:
|
|
||||||
self.yaml.dump(families, ymlfh)
|
|
||||||
ret = ymlfh.getvalue().decode("utf-8").strip()
|
|
||||||
return True, ret
|
|
||||||
|
|
||||||
def get_attributes(self, obj, excludes=[]) -> dict:
|
|
||||||
type_name = obj.__name__
|
|
||||||
if type_name not in self.attributes:
|
|
||||||
self.attributes[type_name] = {
|
|
||||||
str(attr): o.default
|
|
||||||
for attr, o in obj.model_fields.items()
|
|
||||||
if str(attr) not in excludes
|
|
||||||
}
|
|
||||||
return self.attributes[type_name]
|
|
||||||
|
|
||||||
def upgrade(self) -> None:
|
|
||||||
filenames = self.rougailconfig["main_structural_directories"]
|
|
||||||
if len(filenames) > 1:
|
|
||||||
raise ExtensionError(_('only one filename is allowed, not "{0}"').format(filenames))
|
|
||||||
filename = Path(filenames[0])
|
filename = Path(filenames[0])
|
||||||
if not filename.is_file():
|
if not filename.is_file():
|
||||||
raise ExtensionError(_('"{0}" is not a valid file, but only a file is allowed').format(filename))
|
raise Exception(_('only a file is allowed'))
|
||||||
|
self.original_yaml = RougailUpgrade(rougailconfig).run(filename)
|
||||||
self.version_name, self.original_yaml = RougailUpgrade(self.rougailconfig).run(
|
datas = RougailUpgrade(rougailconfig).run(filename)
|
||||||
filename
|
self.rougail = RougailConvert(rougailconfig)
|
||||||
)
|
|
||||||
self.version_name, datas = RougailUpgrade(self.rougailconfig).run(filename)
|
|
||||||
self.rougail = RougailConvertFormatter(self.rougailconfig)
|
|
||||||
self.rougail.load_config()
|
self.rougail.load_config()
|
||||||
self.rougail.init()
|
self.rougail.init()
|
||||||
self.filename_str = str(filename)
|
self.filename_str = str(filename)
|
||||||
|
|
@ -192,36 +93,54 @@ class RougailOutputFormatter:
|
||||||
"1.1",
|
"1.1",
|
||||||
datas,
|
datas,
|
||||||
)
|
)
|
||||||
|
self.yaml = YAML()
|
||||||
|
|
||||||
def print(self):
|
def run(self):
|
||||||
ret, data = self.run()
|
self.families_attributes = {attr: obj.get("default") for attr, obj in self.rougail.family.model_json_schema()["properties"].items()}
|
||||||
print(data)
|
self.dynamics_attributes = {attr: obj.get("default") for attr, obj in self.rougail.dynamic.model_json_schema()["properties"].items()}
|
||||||
|
self.variables_attributes = {attr: obj.get("default") for attr, obj in self.rougail.variable.model_json_schema()["properties"].items()}
|
||||||
|
self.families = {None: CommentedMap()}
|
||||||
|
self.parse()
|
||||||
|
self.yaml.indent(mapping=2, sequence=4, offset=2)
|
||||||
|
self.yaml.explicit_start=True
|
||||||
|
self.default_flow_style = False
|
||||||
|
with BytesIO() as ymlfh:
|
||||||
|
self.yaml.dump(self.families[None], ymlfh)
|
||||||
|
ret = ymlfh.getvalue().decode("utf-8").strip() + '\n'
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def print(self):
|
||||||
|
print(self.run())
|
||||||
|
|
||||||
def parse(self):
|
def parse(self):
|
||||||
self.families[self.main_namespace][self.version_name] = float(
|
# FIXME path to relative !
|
||||||
self.rougail.version
|
if self.rougail.namespace:
|
||||||
)
|
version_path = f'{self.rougail.namespace}.version'
|
||||||
self.remaining = len(self.rougail.paths._data)
|
else:
|
||||||
|
version_path = 'version'
|
||||||
|
if version_path in self.rougail.paths._data:
|
||||||
|
version_name = '_version'
|
||||||
|
else:
|
||||||
|
version_name = 'version'
|
||||||
|
self.families[None][version_name] = None
|
||||||
|
self.families[None].yaml_value_comment_extend(version_name, [CommentToken('\n\n', CommentMark(0)), None])
|
||||||
|
version = None
|
||||||
for path, obj in self.rougail.paths._data.items():
|
for path, obj in self.rougail.paths._data.items():
|
||||||
self.remaining -= 1
|
if version is None or version == '':
|
||||||
|
version = obj.version
|
||||||
if path == self.rougail.namespace:
|
if path == self.rougail.namespace:
|
||||||
# self.families[path] = self.families[None]
|
self.families[path] = self.families[None]
|
||||||
continue
|
continue
|
||||||
if isinstance(obj, Family):
|
if isinstance(obj, Family):
|
||||||
self.parse_family(path, obj)
|
self.parse_family(path, obj)
|
||||||
elif isinstance(obj, Variable):
|
if isinstance(obj, Variable):
|
||||||
self.parse_variable(path, obj)
|
self.parse_variable(path, obj)
|
||||||
if list(self.families[self.main_namespace]) != [self.version_name]:
|
if not version:
|
||||||
# just to add an empty line space after "version"
|
raise Exception(_(f'no variables in file {self.filename_str}'))
|
||||||
self.families[self.main_namespace].yaml_value_comment_extend(
|
self.families[None][version_name] = float(version)
|
||||||
self.version_name, [CommentToken("\n\n", CommentMark(0)), None]
|
|
||||||
)
|
|
||||||
if self.has_default_structural_format_version:
|
|
||||||
del self.families[self.main_namespace][self.version_name]
|
|
||||||
|
|
||||||
def parse_family(self, path, obj):
|
def parse_family(self, path, obj):
|
||||||
children = [p.rsplit(".", 1)[-1] for p in self.rougail.parents[path]]
|
children = [p.rsplit('.', 1)[-1] for p in self.rougail.parents[path]]
|
||||||
parent, name = self.get_parent_name(path)
|
parent, name = self.get_parent_name(path)
|
||||||
ret = self.families[parent]
|
ret = self.families[parent]
|
||||||
family = CommentedMap()
|
family = CommentedMap()
|
||||||
|
|
@ -236,11 +155,11 @@ class RougailOutputFormatter:
|
||||||
force_keys = list(yaml_data)
|
force_keys = list(yaml_data)
|
||||||
type_ = obj.type
|
type_ = obj.type
|
||||||
if type_ == "dynamic":
|
if type_ == "dynamic":
|
||||||
attributes = self.get_attributes(self.rougail.dynamic)
|
attributes = self.dynamics_attributes
|
||||||
else:
|
else:
|
||||||
attributes = self.get_attributes(self.rougail.family)
|
attributes = self.families_attributes
|
||||||
for attr, default_value in attributes.items():
|
for attr, default_value in attributes.items():
|
||||||
if attr in ["name", "path", "namespace", "version", "xmlfiles"]:
|
if attr in ["name", "path", "namespace", "version", "path_prefix", "xmlfiles"]:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
value = getattr(obj, attr)
|
value = getattr(obj, attr)
|
||||||
|
|
@ -249,58 +168,21 @@ class RougailOutputFormatter:
|
||||||
if attr != "type" and attr not in force_keys and value == default_value:
|
if attr != "type" and attr not in force_keys and value == default_value:
|
||||||
continue
|
continue
|
||||||
if attr in children:
|
if attr in children:
|
||||||
attr = f"_{attr}"
|
attr = f'_{attr}'
|
||||||
family[attr] = self.object_to_yaml(attr, type_, value, False, path)
|
value = self.object_to_yaml(attr, type_, value, False, path)
|
||||||
if type_ == "dynamic" or (children and type_ == "family"):
|
family[attr] = value
|
||||||
tmp_family = family.copy()
|
if type_ == "dynamic" or (children and type_ == 'family'):
|
||||||
if "_type" in tmp_family:
|
if "_type" in family:
|
||||||
del tmp_family["_type"]
|
del family["_type"]
|
||||||
else:
|
else:
|
||||||
del tmp_family["type"]
|
del family["type"]
|
||||||
for child_path in self.rougail.parents[path]:
|
|
||||||
child = self.rougail.objects
|
|
||||||
if self.rougail.has_namespace:
|
|
||||||
split_path = child_path.split('.')[1:]
|
|
||||||
else:
|
|
||||||
split_path = child_path.split('.')
|
|
||||||
for cpath in split_path:
|
|
||||||
if cpath not in child and '{{ identifier }}' in cpath:
|
|
||||||
# support format 1.0
|
|
||||||
if cpath.replace('{{ identifier }}', '') in child:
|
|
||||||
cpath = cpath.replace('{{ identifier }}', '')
|
|
||||||
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, "")
|
|
||||||
if family_type == "family":
|
|
||||||
family_type = self.rougail.get_family_or_variable_type(tmp_family)
|
|
||||||
if family_type is None:
|
|
||||||
family_type = 'family'
|
|
||||||
if family_type == type_:
|
|
||||||
if "_type" in family:
|
|
||||||
del family["_type"]
|
|
||||||
else:
|
|
||||||
del family["type"]
|
|
||||||
if not set(family):
|
if not set(family):
|
||||||
ret[name] = CommentedMap()
|
ret[name] = CommentedMap()
|
||||||
# just add an empty line after a family
|
ret.yaml_value_comment_extend(name, [CommentToken('\n\n', CommentMark(0)), None])
|
||||||
ret.yaml_value_comment_extend(
|
elif not set(family) - {'description'}:
|
||||||
name, [CommentToken("\n\n", CommentMark(0)), None]
|
#
|
||||||
)
|
|
||||||
elif not set(family) - {"description"}:
|
|
||||||
#
|
|
||||||
ret[name] = CommentedMap()
|
ret[name] = CommentedMap()
|
||||||
add_column = 3
|
ret.yaml_add_eol_comment(family["description"] + '\n\n', name)
|
||||||
path_len = path.count(".")
|
|
||||||
if self.rougail.namespace:
|
|
||||||
path_len -= 1
|
|
||||||
column = path_len * 2 + len(name) + add_column
|
|
||||||
if self.remaining:
|
|
||||||
description = family["description"].strip() + "\n\n"
|
|
||||||
else:
|
|
||||||
description = family["description"].strip()
|
|
||||||
ret.yaml_add_eol_comment(description, name, column=column)
|
|
||||||
else:
|
else:
|
||||||
self.add_space(family)
|
self.add_space(family)
|
||||||
ret[name] = family
|
ret[name] = family
|
||||||
|
|
@ -321,140 +203,61 @@ class RougailOutputFormatter:
|
||||||
force_keys = list(yaml_data)
|
force_keys = list(yaml_data)
|
||||||
multi = obj.multi or isinstance(obj.default, list)
|
multi = obj.multi or isinstance(obj.default, list)
|
||||||
type_ = obj.type
|
type_ = obj.type
|
||||||
if type_ in RENAME_TYPE:
|
for attr, default_value in self.variables_attributes.items():
|
||||||
type_ = RENAME_TYPE[type_]
|
if attr in ["name", "path", "namespace", "version", "path_prefix", "xmlfiles"]:
|
||||||
if type_ == 'cidr' or type_ == 'network_cidr':
|
continue
|
||||||
if type_ == 'cidr':
|
try:
|
||||||
type_ = 'ip'
|
value = getattr(obj, attr)
|
||||||
else:
|
except AttributeError:
|
||||||
type_ = 'network'
|
continue
|
||||||
if not obj.params:
|
|
||||||
obj.params = []
|
|
||||||
key = 'cidr'
|
|
||||||
param = AnyParam(
|
|
||||||
key='cidr',
|
|
||||||
value=True,
|
|
||||||
type="any",
|
|
||||||
path=None,
|
|
||||||
attribute=None,
|
|
||||||
family_is_dynamic=None,
|
|
||||||
namespace=self.rougail.namespace,
|
|
||||||
xmlfiles=obj.xmlfiles,
|
|
||||||
)
|
|
||||||
obj.params.append(param)
|
|
||||||
for attr, default_value in self.get_attributes(
|
|
||||||
self.rougail.variable, ["name", "path", "namespace", "version", "xmlfiles"]
|
|
||||||
).items():
|
|
||||||
if attr == "type":
|
|
||||||
value = type_
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
value = getattr(obj, attr)
|
|
||||||
except AttributeError:
|
|
||||||
continue
|
|
||||||
if attr not in force_keys and value == default_value:
|
if attr not in force_keys and value == default_value:
|
||||||
continue
|
continue
|
||||||
value = self.object_to_yaml(attr, type_, value, multi, path)
|
value = self.object_to_yaml(attr, type_, value, multi, path)
|
||||||
variable[attr] = value
|
variable[attr] = value
|
||||||
if variable.get("mandatory") is True and None not in variable.get(
|
if variable.get("mandatory") is True and None not in variable.get("choices", []):
|
||||||
"choices", []
|
|
||||||
):
|
|
||||||
del variable["mandatory"]
|
del variable["mandatory"]
|
||||||
if "default" in variable:
|
if "default" in variable:
|
||||||
if isinstance(obj.default, VariableCalculation):
|
if "type" in variable and variable["type"] in ["string", "boolean", "number", "float"]:
|
||||||
is_multi = "multi" in variable and variable["multi"] is True
|
|
||||||
if "type" in variable or is_multi:
|
|
||||||
other_path = self.rougail.paths.get_full_path(obj.default.variable, path)
|
|
||||||
if other_path in self.rougail.paths:
|
|
||||||
other_obj = self.rougail.paths[other_path]
|
|
||||||
if "type" in variable and variable["type"] == other_obj.type:
|
|
||||||
del variable["type"]
|
|
||||||
if is_multi and obj.multi:
|
|
||||||
del variable["multi"]
|
|
||||||
if "type" in variable and isinstance(obj.default, IndexCalculation) and variable["type"] == "integer":
|
|
||||||
del variable["type"]
|
|
||||||
if "type" in variable and variable["type"] in [
|
|
||||||
"string",
|
|
||||||
"boolean",
|
|
||||||
"integer",
|
|
||||||
"float",
|
|
||||||
]:
|
|
||||||
if variable["default"] and isinstance(variable["default"], list):
|
if variable["default"] and isinstance(variable["default"], list):
|
||||||
tested_value = variable["default"][0]
|
tested_value = variable["default"][0]
|
||||||
else:
|
else:
|
||||||
tested_value = variable["default"]
|
tested_value = variable["default"]
|
||||||
if variable["type"] == self.basic_types.get(type(tested_value), None):
|
if variable["type"] == self.basic_types.get(type(tested_value), None):
|
||||||
del variable["type"]
|
del variable["type"]
|
||||||
if (
|
if "multi" in variable and variable["multi"] is True and isinstance(variable["default"], list):
|
||||||
"multi" in variable
|
|
||||||
and variable["multi"] is True
|
|
||||||
and isinstance(variable["default"], list)
|
|
||||||
):
|
|
||||||
del variable["multi"]
|
del variable["multi"]
|
||||||
|
elif variable.get("type") == "choice" and "choices" in variable:
|
||||||
|
del variable["type"]
|
||||||
elif variable.get("type") == "string":
|
elif variable.get("type") == "string":
|
||||||
# default type is string
|
# default type is string
|
||||||
del variable["type"]
|
del variable["type"]
|
||||||
if set(variable) in [{"multi"}, {"multi", "description"}]:
|
if set(variable) in [{"multi"}, {'multi', 'description'}]:
|
||||||
variable["default"] = []
|
variable["default"] = []
|
||||||
variable.pop("multi")
|
variable.pop("multi")
|
||||||
elif variable.get("type") == "boolean" and not multi:
|
elif variable.get("type") == "boolean" and not multi:
|
||||||
# if boolean, the default value is True
|
# if boolean, the default value is True
|
||||||
del variable["type"]
|
del variable["type"]
|
||||||
variable["default"] = True
|
variable["default"] = True
|
||||||
if variable.get("type") == "choice" and "choices" in variable:
|
if not isinstance(variable.get("default"), dict) and not set(variable) - {'default', 'description'}:
|
||||||
del variable["type"]
|
|
||||||
if (
|
|
||||||
"default" not in variable
|
|
||||||
and variable.get("multi") is True
|
|
||||||
and not set(variable) - {"default", "description", "multi"}
|
|
||||||
):
|
|
||||||
variable["default"] = []
|
|
||||||
del variable["multi"]
|
|
||||||
if not isinstance(variable.get("default"), dict) and not set(variable) - {
|
|
||||||
"default",
|
|
||||||
"description",
|
|
||||||
}:
|
|
||||||
# shorthand notation
|
# shorthand notation
|
||||||
default = variable.get("default")
|
default = variable.get('default')
|
||||||
ret[name] = default
|
ret[name] = default
|
||||||
add_column = 3
|
|
||||||
if isinstance(default, list):
|
if isinstance(default, list):
|
||||||
ret[name] = CommentedSeq()
|
ret[name] = CommentedSeq()
|
||||||
if not default:
|
|
||||||
add_column += 3
|
|
||||||
for d in default:
|
for d in default:
|
||||||
ret[name].append(d)
|
ret[name].append(d)
|
||||||
else:
|
else:
|
||||||
if default is None:
|
ret[name] = default
|
||||||
ret[name] = ""
|
|
||||||
else:
|
|
||||||
ret[name] = default
|
|
||||||
add_column += len(str(default)) + 1
|
|
||||||
if isinstance(default, str):
|
|
||||||
# some entries have ' (like '8080') those characters are not count, so add it
|
|
||||||
with BytesIO() as ymlfh:
|
|
||||||
self.conv_yaml.dump(default, ymlfh)
|
|
||||||
ret2 = ymlfh.getvalue().decode("utf-8").strip()
|
|
||||||
if ret2.endswith("..."):
|
|
||||||
ret2 = ret2[:-3].strip()
|
|
||||||
if default != ret2:
|
|
||||||
add_column += len(ret2) - len(default)
|
|
||||||
if "description" in variable:
|
if "description" in variable:
|
||||||
description = variable["description"].strip()
|
description = variable["description"]
|
||||||
if self.remaining and (not multi or not default):
|
if not multi or not default:
|
||||||
description += "\n\n"
|
description += "\n\n"
|
||||||
path_len = path.count(".")
|
ret.yaml_add_eol_comment(description, name)
|
||||||
if self.rougail.namespace:
|
|
||||||
path_len -= 1
|
|
||||||
column = path_len * 2 + len(name) + add_column
|
|
||||||
ret.yaml_add_eol_comment(description, name, column=column)
|
|
||||||
if multi and default:
|
if multi and default:
|
||||||
self.add_space(ret)
|
self.add_space(ret)
|
||||||
else:
|
else:
|
||||||
self.add_space(ret)
|
self.add_space(ret)
|
||||||
else:
|
else:
|
||||||
if "default" in variable and variable["default"] is None:
|
|
||||||
variable["default"] = ""
|
|
||||||
ret[name] = variable
|
ret[name] = variable
|
||||||
self.add_space(variable)
|
self.add_space(variable)
|
||||||
|
|
||||||
|
|
@ -462,144 +265,85 @@ class RougailOutputFormatter:
|
||||||
def _get_last_obj(o, parent, param, typ):
|
def _get_last_obj(o, parent, param, typ):
|
||||||
if isinstance(o, CommentedMap):
|
if isinstance(o, CommentedMap):
|
||||||
param = list(o)[-1]
|
param = list(o)[-1]
|
||||||
return _get_last_obj(o[param], o, param, "map")
|
return _get_last_obj(o[param], o, param, 'map')
|
||||||
if isinstance(o, CommentedSeq):
|
if isinstance(o, CommentedSeq):
|
||||||
param = len(o) - 1
|
param = len(o) - 1
|
||||||
return _get_last_obj(o[param], o, param, "seq")
|
return _get_last_obj(o[param], o, param, 'seq')
|
||||||
return typ, parent, param
|
return typ, parent, param
|
||||||
|
|
||||||
param = list(obj)[-1]
|
param = list(obj)[-1]
|
||||||
typ, parent, param = _get_last_obj(obj[param], obj, param, "map")
|
typ, parent, param = _get_last_obj(obj[param], obj, param, 'map')
|
||||||
if isinstance(parent[param], ScalarString):
|
if typ == 'seq':
|
||||||
enter = "\n"
|
|
||||||
else:
|
|
||||||
enter = "\n\n"
|
|
||||||
if typ == "seq":
|
|
||||||
func = parent.yaml_key_comment_extend
|
func = parent.yaml_key_comment_extend
|
||||||
else:
|
else:
|
||||||
func = parent.yaml_value_comment_extend
|
func = parent.yaml_value_comment_extend
|
||||||
if self.remaining:
|
func(param, [CommentToken('\n\n', CommentMark(0)), None])
|
||||||
# just to add empty line
|
|
||||||
func(param, [CommentToken(enter, CommentMark(0)), None])
|
|
||||||
|
|
||||||
def object_to_yaml(self, key, type_, value, multi, object_path):
|
def object_to_yaml(self, key, type_, value, multi, object_path):
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
if key == "params":
|
if key == 'params':
|
||||||
new_values = CommentedMap()
|
new_values = CommentedMap()
|
||||||
else:
|
else:
|
||||||
new_values = CommentedSeq()
|
new_values = CommentedSeq()
|
||||||
for v in value:
|
for v in value:
|
||||||
new_value = self.object_to_yaml(key, type_, v, multi, object_path)
|
new_value = self.object_to_yaml(key, type_, v, multi, object_path)
|
||||||
if key == "params":
|
if key == 'params':
|
||||||
if "min_number" in new_value:
|
|
||||||
new_value["min_integer"] = new_value.pop("min_number")
|
|
||||||
if "max_number" in new_value:
|
|
||||||
new_value["max_integer"] = new_value.pop("max_number")
|
|
||||||
new_values.update(new_value)
|
new_values.update(new_value)
|
||||||
else:
|
else:
|
||||||
new_values.append(new_value)
|
new_values.append(new_value)
|
||||||
return new_values
|
return new_values
|
||||||
if isinstance(value, JinjaCalculation):
|
if isinstance(value, JinjaCalculation):
|
||||||
jinja = CommentedMap()
|
jinja = CommentedMap()
|
||||||
jinja_values = formatter(self.config, value.jinja.strip())[:-1]
|
# replace \n to space a add index of \n (now a space) to fold_pos
|
||||||
if key == "default" and not multi:
|
jinja_values = value.jinja.strip()
|
||||||
jinja["jinja"] = FoldedScalarString(jinja_values)
|
if key == 'default' and not multi:
|
||||||
fold_pos = []
|
jinja["jinja"] = FoldedScalarString(jinja_values.replace('\n', ' '))
|
||||||
old_i = 0
|
jinja["jinja"].fold_pos = [i for i, ltr in enumerate(jinja_values) if ltr == '\n']
|
||||||
for i, ltr in enumerate(jinja_values):
|
|
||||||
if ltr == "\n":
|
|
||||||
fold_pos.append(i - old_i)
|
|
||||||
old_i = 1
|
|
||||||
jinja["jinja"].fold_pos = fold_pos
|
|
||||||
elif key == "secret_manager":
|
|
||||||
return self.object_to_yaml(
|
|
||||||
"params", type_, value.params, multi, object_path
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
jinja["jinja"] = LiteralScalarString(jinja_values)
|
jinja["jinja"] = LiteralScalarString(jinja_values)
|
||||||
if value.return_type:
|
if value.return_type:
|
||||||
return_type = value.return_type
|
jinja["return_type"] = value.return_type
|
||||||
if return_type in RENAME_TYPE:
|
|
||||||
return_type = RENAME_TYPE[return_type]
|
|
||||||
jinja["return_type"] = return_type
|
|
||||||
if value.description:
|
if value.description:
|
||||||
if "\n" in value.description:
|
jinja["description"] = value.description
|
||||||
jinja["description"] = LiteralScalarString(value.description.strip())
|
|
||||||
else:
|
|
||||||
jinja["description"] = value.description.strip()
|
|
||||||
if value.warnings:
|
|
||||||
jinja["warnings"] = True
|
|
||||||
if value.params:
|
if value.params:
|
||||||
jinja["params"] = self.object_to_yaml(
|
jinja["params"] = self.object_to_yaml("params", type_, value.params, multi, object_path)
|
||||||
"params", type_, value.params, multi, object_path
|
|
||||||
)
|
|
||||||
return jinja
|
return jinja
|
||||||
elif isinstance(value, Calculation):
|
elif isinstance(value, Calculation):
|
||||||
variable_attributes = self.get_attributes(
|
variable_attributes = self.get_object_informations(value, ['path', 'inside_list', 'version', 'xmlfiles', 'attribute_name', 'namespace'])
|
||||||
value.__class__,
|
|
||||||
[
|
|
||||||
"path",
|
|
||||||
"inside_list",
|
|
||||||
"version",
|
|
||||||
"xmlfiles",
|
|
||||||
"attribute_name",
|
|
||||||
"namespace",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
variable = CommentedMap()
|
variable = CommentedMap()
|
||||||
if isinstance(
|
if isinstance(value, (IdentifierCalculation, IdentifierPropertyCalculation)):
|
||||||
value, (IdentifierCalculation, IdentifierPropertyCalculation)
|
|
||||||
):
|
|
||||||
variable["type"] = "identifier"
|
variable["type"] = "identifier"
|
||||||
elif isinstance(value, IndexCalculation):
|
if isinstance(value, IndexCalculation):
|
||||||
variable["type"] = "index"
|
variable["type"] = "index"
|
||||||
elif isinstance(value, NamespaceCalculation):
|
|
||||||
variable["type"] = "namespace"
|
|
||||||
for key, default in variable_attributes.items():
|
for key, default in variable_attributes.items():
|
||||||
val = getattr(value, key)
|
val = getattr(value, key)
|
||||||
if val != default and val is not undefined:
|
if val != default and val is not undefined:
|
||||||
variable[key] = val
|
variable[key] = val
|
||||||
if "variable" in variable:
|
if "variable" in variable:
|
||||||
variable["variable"] = self.calc_variable_path(
|
variable["variable"] = self.calc_variable_path(object_path, variable["variable"])
|
||||||
object_path, variable["variable"]
|
if variable.get('type') == 'identifier' and 'identifier' in variable:
|
||||||
)
|
|
||||||
if variable.get("type") == "identifier" and "identifier" in variable:
|
|
||||||
del variable["type"]
|
del variable["type"]
|
||||||
if value.description:
|
|
||||||
if "\n" in value.description:
|
|
||||||
variable["description"] = LiteralScalarString(value.description.strip())
|
|
||||||
else:
|
|
||||||
variable["description"] = value.description.strip()
|
|
||||||
return variable
|
return variable
|
||||||
elif isinstance(value, Param):
|
elif isinstance(value, Param):
|
||||||
param_attributes = self.get_attributes(
|
param_attributes = self.get_object_informations(value, ["type", "key"])
|
||||||
value.__class__, ["type", "key", "namespace"]
|
if list(param_attributes) == ['value']:
|
||||||
)
|
|
||||||
if list(param_attributes) == ["value"]:
|
|
||||||
variable = value.value
|
variable = value.value
|
||||||
else:
|
else:
|
||||||
variable = CommentedMap()
|
variable = CommentedMap()
|
||||||
if isinstance(value, IdentifierParam):
|
if isinstance(value, IdentifierParam):
|
||||||
variable["type"] = "identifier"
|
variable["type"] = "identifier"
|
||||||
elif isinstance(value, IndexParam):
|
if isinstance(value, IndexParam):
|
||||||
variable["type"] = "index"
|
variable["type"] = "index"
|
||||||
elif isinstance(value, NamespaceParam):
|
|
||||||
variable["type"] = "namespace"
|
|
||||||
for key, default in param_attributes.items():
|
for key, default in param_attributes.items():
|
||||||
val = getattr(value, key)
|
val = getattr(value, key)
|
||||||
if val != default and val is not undefined:
|
if val != default and val is not undefined:
|
||||||
variable[key] = val
|
variable[key] = val
|
||||||
if variable.get("type") == "identifier" and "identifier" in variable:
|
if variable.get('type') == 'identifier' and 'identifier' in variable:
|
||||||
del variable["type"]
|
del variable["type"]
|
||||||
if "variable" in variable:
|
if "variable" in variable:
|
||||||
variable["variable"] = self.calc_variable_path(
|
variable["variable"] = self.calc_variable_path(object_path, variable["variable"])
|
||||||
object_path, variable["variable"]
|
|
||||||
)
|
|
||||||
return {value.key: variable}
|
return {value.key: variable}
|
||||||
elif type_ == "port" and isinstance(value, str) and value.isnumeric():
|
elif type_ == 'port' and isinstance(value, str) and value.isnumeric():
|
||||||
return int(value)
|
return int(value)
|
||||||
elif key == "help" and "\n" in value:
|
|
||||||
return LiteralScalarString(value.strip())
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def calc_variable_path(self, object_path, variable_path):
|
def calc_variable_path(self, object_path, variable_path):
|
||||||
|
|
@ -611,14 +355,13 @@ class RougailOutputFormatter:
|
||||||
else:
|
else:
|
||||||
len_common_path = len(common_path) + 1
|
len_common_path = len(common_path) + 1
|
||||||
relative_object_path = object_path[len_common_path:]
|
relative_object_path = object_path[len_common_path:]
|
||||||
final_path = "_" * (relative_object_path.count(".") + 1) + "."
|
final_path = "_" * (relative_object_path.count(".") + 1) + '.'
|
||||||
return (
|
return "_" * (relative_object_path.count(".") + 1) + '.' + variable_path[len_common_path:]
|
||||||
"_" * (relative_object_path.count(".") + 1)
|
|
||||||
+ "."
|
|
||||||
+ variable_path[len_common_path:]
|
|
||||||
)
|
|
||||||
return variable_path
|
return variable_path
|
||||||
|
|
||||||
|
def get_object_informations(self, value, excludes=[]):
|
||||||
|
return {attr: obj.get("default") for attr, obj in value.__class__.model_json_schema()["properties"].items() if attr not in excludes}
|
||||||
|
|
||||||
def get_parent_name(self, path):
|
def get_parent_name(self, path):
|
||||||
if "." in path:
|
if "." in path:
|
||||||
return path.rsplit(".", 1)
|
return path.rsplit(".", 1)
|
||||||
|
|
@ -629,17 +372,13 @@ class RougailOutputFormatter:
|
||||||
if not subpath:
|
if not subpath:
|
||||||
return y
|
return y
|
||||||
name = subpath.pop(0)
|
name = subpath.pop(0)
|
||||||
if name not in y and name.endswith("{{ identifier }}"):
|
if name not in y and name.endswith('{{ identifier }}'):
|
||||||
search_name = name[:-16]
|
name = name[:-16]
|
||||||
if search_name not in y:
|
|
||||||
search_name = name.replace("{{ identifier }}", "{{ suffix }}")
|
|
||||||
name = search_name
|
|
||||||
return _yaml(y[name])
|
return _yaml(y[name])
|
||||||
|
|
||||||
if self.main_namespace:
|
if self.main_namespace:
|
||||||
subpath = path.split(".")[1:]
|
subpath = path.split('.')[1:]
|
||||||
else:
|
else:
|
||||||
subpath = path.split(".")
|
subpath = path.split('.')
|
||||||
return _yaml(self.original_yaml)
|
return _yaml(self.original_yaml)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
__version__ = "0.1.0a22"
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"""
|
"""
|
||||||
Silique (https://www.silique.fr)
|
Silique (https://www.silique.fr)
|
||||||
Copyright (C) 2024-2025
|
Copyright (C) 2024
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Lesser General Public License as published by the
|
under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
|
@ -17,54 +17,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from .i18n import _
|
|
||||||
|
|
||||||
|
|
||||||
def get_rougail_config(
|
def get_rougail_config(
|
||||||
*,
|
*,
|
||||||
backward_compatibility=True,
|
backward_compatibility=True,
|
||||||
) -> dict:
|
) -> dict:
|
||||||
options = f"""
|
options = """
|
||||||
load_unexist_redefine:
|
load_unexist_redefine:
|
||||||
redefine: true
|
redefine: true
|
||||||
type: boolean
|
type: boolean
|
||||||
default:
|
default:
|
||||||
jinja: >-
|
jinja: >-
|
||||||
{{% if step.output is not propertyerror and step.output == 'formatter' %}}
|
{% if step.output == 'formatter' %}
|
||||||
true
|
true
|
||||||
{{% else %}}
|
{% else %}
|
||||||
false
|
false
|
||||||
{{% endif %}}
|
{% endif %}
|
||||||
hidden:
|
hidden:
|
||||||
jinja: >-
|
jinja: >-
|
||||||
{{% if step.output is not propertyerror and step.output == 'formatter' %}}
|
{% if step.output == 'formatter' %}
|
||||||
load_unexist_redefine is always true with 'formatter' output
|
load_unexist_redefine is always true with 'formatter' output
|
||||||
{{% endif %}}
|
{% endif %}
|
||||||
|
|
||||||
cli:
|
|
||||||
|
|
||||||
load_config:
|
|
||||||
exists: true
|
|
||||||
redefine: true
|
|
||||||
type: boolean
|
|
||||||
default:
|
|
||||||
jinja: >-
|
|
||||||
{{% if step.output is not propertyerror and step.output == 'formatter' %}}
|
|
||||||
false
|
|
||||||
{{% else %}}
|
|
||||||
true
|
|
||||||
{{% endif %}}
|
|
||||||
|
|
||||||
formatter:
|
|
||||||
description: {_('Configuration for rougail-ouput-formatter')}
|
|
||||||
|
|
||||||
line_width: 120 # {_('Line size')}
|
|
||||||
"""
|
"""
|
||||||
return {
|
return {
|
||||||
"name": "formatter",
|
"name": "formatter",
|
||||||
"process": "output",
|
"process": "output",
|
||||||
"options": options,
|
"options": options,
|
||||||
"allow_user_data": False,
|
|
||||||
"level": 90,
|
"level": 90,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
"""Internationalisation utilities
|
|
||||||
Silique (https://www.silique.fr)
|
|
||||||
Copyright (C) 2025
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU Lesser General Public License as published by the
|
|
||||||
Free Software Foundation, either version 3 of the License, or (at your
|
|
||||||
option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
|
|
||||||
details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from gettext import translation
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
t = translation(
|
|
||||||
"rougail_output_formatter", str(Path(__file__).parent / "locale"), fallback=True
|
|
||||||
)
|
|
||||||
|
|
||||||
_ = t.gettext
|
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -4,7 +4,7 @@ Cadoles (http://www.cadoles.com)
|
||||||
Copyright (C) 2021
|
Copyright (C) 2021
|
||||||
|
|
||||||
Silique (https://www.silique.fr)
|
Silique (https://www.silique.fr)
|
||||||
Copyright (C) 2022-2025
|
Copyright (C) 2022-2024
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
This program is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Lesser General Public License as published by the
|
under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
|
@ -45,33 +45,22 @@ class RougailUpgrade:
|
||||||
|
|
||||||
def run(
|
def run(
|
||||||
self,
|
self,
|
||||||
file: str,
|
file,
|
||||||
) -> dict:
|
):
|
||||||
with file.open() as file_fh:
|
with file.open() as file_fh:
|
||||||
root = YAML().load(file_fh)
|
root = YAML().load(file_fh)
|
||||||
if not root:
|
search_function_name = get_function_name(str(root["version"]))
|
||||||
root = {}
|
|
||||||
if "_version" in root:
|
|
||||||
version_name = "_version"
|
|
||||||
format_version = str(root.pop("_version"))
|
|
||||||
elif "version" in root:
|
|
||||||
version_name = "version"
|
|
||||||
format_version = str(root.pop("version"))
|
|
||||||
else:
|
|
||||||
version_name = None
|
|
||||||
format_version = self.rougailconfig["default_structural_format_version"]
|
|
||||||
if format_version not in VERSIONS:
|
|
||||||
raise Exception(f'version "{format_version}" is not a valid version')
|
|
||||||
search_function_name = get_function_name(format_version)
|
|
||||||
function_found = False
|
function_found = False
|
||||||
for version, function_version in FUNCTION_VERSIONS:
|
for version, function_version in FUNCTION_VERSIONS:
|
||||||
if function_found and hasattr(self, function_version):
|
if function_found and hasattr(self, function_version):
|
||||||
root = getattr(self, function_version)(root)
|
root = getattr(self, function_version)(root)
|
||||||
if function_version == search_function_name:
|
if function_version == search_function_name:
|
||||||
function_found = True
|
function_found = True
|
||||||
if version_name:
|
if '_version' in root:
|
||||||
root[version_name] = float(version)
|
root["_version"] = float(version)
|
||||||
return version_name, root
|
elif 'version' in root:
|
||||||
|
root["version"] = float(version)
|
||||||
|
return root
|
||||||
|
|
||||||
def update_1_1(
|
def update_1_1(
|
||||||
self,
|
self,
|
||||||
|
|
@ -80,7 +69,7 @@ class RougailUpgrade:
|
||||||
new_root = CommentedMap()
|
new_root = CommentedMap()
|
||||||
for key, value in root.items():
|
for key, value in root.items():
|
||||||
if not isinstance(value, dict):
|
if not isinstance(value, dict):
|
||||||
if key == "variable" and "{{ suffix }}" in value:
|
if key == 'variable' and "{{ suffix }}" in value:
|
||||||
value = value.replace("{{ suffix }}", "{{ identifier }}")
|
value = value.replace("{{ suffix }}", "{{ identifier }}")
|
||||||
new_root[key] = value
|
new_root[key] = value
|
||||||
continue
|
continue
|
||||||
|
|
@ -105,7 +94,7 @@ class RougailUpgrade:
|
||||||
new_root[key] = value
|
new_root[key] = value
|
||||||
for typ, obj in {
|
for typ, obj in {
|
||||||
"boolean": bool,
|
"boolean": bool,
|
||||||
"integer": int,
|
"number": int,
|
||||||
"string": str,
|
"string": str,
|
||||||
"float": float,
|
"float": float,
|
||||||
}.items():
|
}.items():
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
...
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
...
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
...
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
_version: 1.1
|
_version: 1.1
|
||||||
|
|
||||||
version: # a variable
|
version: # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
empty:
|
empty:
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: no # a first variable
|
var1: no # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
|
|
@ -11,4 +10,3 @@ var2:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{{ _.var1 }}
|
{{ _.var1 }}
|
||||||
description: the value of var1
|
description: the value of var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a first variable
|
var1: # a first variable
|
||||||
- no
|
- no
|
||||||
- yes
|
- yes
|
||||||
- maybe
|
- maybe
|
||||||
|
|
@ -13,7 +12,6 @@ var2:
|
||||||
default:
|
default:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% for val in _.var1 %}
|
{% for val in _.var1 %}
|
||||||
{{ val }}
|
{{ val }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
description: the value of _.var1
|
description: the value of _.var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
leadership:
|
|
||||||
type: leadership
|
|
||||||
hidden: true
|
|
||||||
|
|
||||||
var1: # a first variable
|
|
||||||
- a_value
|
|
||||||
|
|
||||||
var2: a_value # a first variable
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a second variable
|
|
||||||
default:
|
|
||||||
jinja: >-
|
|
||||||
{{ var1[0] }}
|
|
||||||
params:
|
|
||||||
var1:
|
|
||||||
variable: _.leadership.var1
|
|
||||||
...
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: a first variable
|
|
||||||
type: domainname
|
|
||||||
params:
|
|
||||||
allow_ip: true
|
|
||||||
multi: true
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a second variable
|
|
||||||
default:
|
|
||||||
variable: _.var1
|
|
||||||
...
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: # a first variable
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a second variable
|
|
||||||
default:
|
|
||||||
variable: _.var1
|
|
||||||
description: value of a variable!
|
|
||||||
...
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: # a first variable
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a second variable
|
|
||||||
default:
|
|
||||||
variable: _.var1
|
|
||||||
description: |-
|
|
||||||
value
|
|
||||||
of
|
|
||||||
a
|
|
||||||
variable!
|
|
||||||
|
|
||||||
var3: # a new variable
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -13,4 +12,3 @@ var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
default:
|
default:
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a variable
|
var1: # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var2: # a variable
|
var2: # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
without_type: non # a variable
|
without_type: non # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,14 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: true # the first variable
|
var1: true # the first variable
|
||||||
|
|
||||||
var2: true # the second variable
|
var2: true # the second variable
|
||||||
|
|
||||||
var3: true # the third variable
|
var3: true # the third variable
|
||||||
|
|
||||||
var4: false # the forth variable
|
var4: false # the forth variable
|
||||||
|
|
||||||
var5: false # the fifth variable
|
var5: false # the fifth variable
|
||||||
|
|
||||||
var6: false # the sixth variable
|
var6: false # the sixth variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,4 +5,3 @@ variable:
|
||||||
description: a variable
|
description: a variable
|
||||||
mandatory: false
|
mandatory: false
|
||||||
default: true
|
default: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -27,7 +26,7 @@ var3:
|
||||||
var4:
|
var4:
|
||||||
description: the forth variable
|
description: the forth variable
|
||||||
choices:
|
choices:
|
||||||
- null
|
-
|
||||||
- b
|
- b
|
||||||
- c
|
- c
|
||||||
mandatory: false
|
mandatory: false
|
||||||
|
|
@ -47,4 +46,3 @@ var6:
|
||||||
- 2
|
- 2
|
||||||
- 3
|
- 3
|
||||||
default: 1
|
default: 1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -7,9 +6,8 @@ var:
|
||||||
choices:
|
choices:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% for n in trange(0, 10) %}
|
{% for n in trange(0, 10) %}
|
||||||
{{ n }}
|
{{ n }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
return_type: integer
|
return_type: number
|
||||||
description: choices is 0 to 9
|
description: choices is 0 to 9
|
||||||
default: 9
|
default: 9
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: the first variable
|
|
||||||
choices:
|
|
||||||
- a
|
|
||||||
- b
|
|
||||||
- c
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: the second variable
|
|
||||||
default:
|
|
||||||
variable: _.var1
|
|
||||||
...
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a second variable
|
var1: # a second variable
|
||||||
- a
|
- a
|
||||||
- b
|
- b
|
||||||
- c
|
- c
|
||||||
|
|
@ -12,4 +11,3 @@ var2:
|
||||||
choices:
|
choices:
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
default: a
|
default: a
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: # a second variable
|
|
||||||
- a
|
|
||||||
- b
|
|
||||||
- c
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a first variable
|
|
||||||
choices:
|
|
||||||
variable: _.var1
|
|
||||||
default: a
|
|
||||||
|
|
||||||
var3:
|
|
||||||
description: a third variable
|
|
||||||
default:
|
|
||||||
variable: _.var2
|
|
||||||
...
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: # a second variable
|
|
||||||
- a
|
|
||||||
- b
|
|
||||||
- c
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a first variable
|
|
||||||
choices:
|
|
||||||
variable: _.var1
|
|
||||||
default: a
|
|
||||||
|
|
||||||
family:
|
|
||||||
|
|
||||||
var3:
|
|
||||||
description: a third variable
|
|
||||||
default:
|
|
||||||
variable: __.var2
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -10,4 +9,3 @@ custom2:
|
||||||
description: the seconf variable
|
description: the seconf variable
|
||||||
type: custom
|
type: custom
|
||||||
default: value
|
default: value
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,4 +5,3 @@ variable:
|
||||||
description: a domain name variable
|
description: a domain name variable
|
||||||
type: domainname
|
type: domainname
|
||||||
default: my.domain.name
|
default: my.domain.name
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -8,4 +7,3 @@ variable:
|
||||||
params:
|
params:
|
||||||
allow_ip: true
|
allow_ip: true
|
||||||
default: my.domain.name
|
default: my.domain.name
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,14 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: 0.0 # the first variable
|
var1: 0.0 # the first variable
|
||||||
|
|
||||||
var2: 0.0 # the second variable
|
var2: 0.0 # the second variable
|
||||||
|
|
||||||
var3: 0.0 # the third variable
|
var3: 0.0 # the third variable
|
||||||
|
|
||||||
var4: 10.1 # the forth variable
|
var4: 10.1 # the forth variable
|
||||||
|
|
||||||
var5: 10.1 # the fifth variable
|
var5: 10.1 # the fifth variable
|
||||||
|
|
||||||
var6: 10.1 # the sixth variable
|
var6: 10.1 # the sixth variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: 0 # the first variable
|
|
||||||
|
|
||||||
var2: 0 # the second variable
|
|
||||||
|
|
||||||
var3: 0 # the third variable
|
|
||||||
|
|
||||||
var4: 10 # this forth variable
|
|
||||||
|
|
||||||
var5: 10 # the fifth variable
|
|
||||||
|
|
||||||
var6: 10 # the sixth variable
|
|
||||||
...
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: an IP
|
|
||||||
type: ip
|
|
||||||
default: 1.1.1.1
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: an IP in CIDR format
|
|
||||||
examples:
|
|
||||||
- 192.168.0.128/25
|
|
||||||
type: ip
|
|
||||||
params:
|
|
||||||
cidr: true
|
|
||||||
default: 1.1.1.1/24
|
|
||||||
|
|
||||||
var3:
|
|
||||||
description: an IP in CIDR format with obsolete CIDR type
|
|
||||||
type: ip
|
|
||||||
params:
|
|
||||||
cidr: true
|
|
||||||
default: 1.1.1.1/24
|
|
||||||
...
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: an network
|
|
||||||
type: network
|
|
||||||
default: 1.1.1.0
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: an network in CIDR format
|
|
||||||
type: network
|
|
||||||
params:
|
|
||||||
cidr: true
|
|
||||||
default: 1.1.1.0/24
|
|
||||||
|
|
||||||
var3:
|
|
||||||
description: an network in CIDR format with obsolete CIDR type
|
|
||||||
type: network
|
|
||||||
params:
|
|
||||||
cidr: true
|
|
||||||
default: 1.1.1.0/24
|
|
||||||
...
|
|
||||||
|
|
@ -1,16 +1,14 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: 0 # the first variable
|
var1: 0 # the first variable
|
||||||
|
|
||||||
var2: 0 # the second variable
|
var2: 0 # the second variable
|
||||||
|
|
||||||
var3: 0 # the third variable
|
var3: 0 # the third variable
|
||||||
|
|
||||||
var4: 10 # this forth variable
|
var4: 10 # this forth variable
|
||||||
|
|
||||||
var5: 10 # the fifth variable
|
var5: 10 # the fifth variable
|
||||||
|
|
||||||
var6: 10 # the sixth variable
|
var6: 10 # the sixth variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -15,4 +14,3 @@ variable3:
|
||||||
description: a port variable with integer default value
|
description: a port variable with integer default value
|
||||||
type: port
|
type: port
|
||||||
default: 8080
|
default: 8080
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -9,4 +8,3 @@ var:
|
||||||
- '#b2b2b2'
|
- '#b2b2b2'
|
||||||
regexp: ^#(?:[0-9a-f]{3}){1,2}$
|
regexp: ^#(?:[0-9a-f]{3}){1,2}$
|
||||||
default: '#a1a1a1'
|
default: '#a1a1a1'
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: a first variable
|
|
||||||
test:
|
|
||||||
- '#b1b1b1'
|
|
||||||
- '#b2b2b2'
|
|
||||||
regexp: ^#(?:[0-9a-f]{3}){1,2}$
|
|
||||||
default: '#a1a1a1'
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: a second variable
|
|
||||||
test:
|
|
||||||
- '#b2b1b1'
|
|
||||||
- '#b3b2b2'
|
|
||||||
default:
|
|
||||||
variable: _.var1
|
|
||||||
...
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
secret1:
|
|
||||||
description: the first variable
|
|
||||||
type: secret
|
|
||||||
|
|
||||||
secret2:
|
|
||||||
description: the second variable
|
|
||||||
type: secret
|
|
||||||
default: value
|
|
||||||
...
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
secret1:
|
|
||||||
description: the first variable
|
|
||||||
type: secret
|
|
||||||
params:
|
|
||||||
min_len: 10
|
|
||||||
|
|
||||||
secret2:
|
|
||||||
description: the second variable
|
|
||||||
type: secret
|
|
||||||
params:
|
|
||||||
max_len: 10
|
|
||||||
forbidden_char:
|
|
||||||
- $
|
|
||||||
- ^
|
|
||||||
default: value
|
|
||||||
|
|
||||||
secret3:
|
|
||||||
description: the third variable
|
|
||||||
type: secret
|
|
||||||
params:
|
|
||||||
max_len: 10
|
|
||||||
forbidden_char:
|
|
||||||
- $
|
|
||||||
default: value
|
|
||||||
...
|
|
||||||
|
|
@ -1,20 +1,14 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # the first variable
|
var1: # the first variable
|
||||||
|
|
||||||
var2: # the second variable
|
var2: # the second variable
|
||||||
|
|
||||||
var3: # the third variable
|
var3: # the third variable
|
||||||
|
|
||||||
var4: value # the forth variable
|
var4: value # the forth variable
|
||||||
|
|
||||||
var5: value # the fifth variable
|
var5: value # the fifth variable
|
||||||
|
|
||||||
var6: value # the sixth variable
|
var6: value # the sixth variable
|
||||||
|
|
||||||
var7: '8080' # the seventh variable
|
|
||||||
|
|
||||||
var8: 'true' # the height variable
|
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var:
|
var:
|
||||||
description: A choice
|
description: A choice
|
||||||
|
type: choice
|
||||||
choices:
|
choices:
|
||||||
- quote'
|
- quote'
|
||||||
- quote"
|
- quote"
|
||||||
- quote"'
|
- quote"'
|
||||||
default: quote'
|
default: quote'
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: the first variable
|
|
||||||
help: |-
|
|
||||||
Multi line
|
|
||||||
|
|
||||||
Help
|
|
||||||
|
|
||||||
With useful information
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: the second variable
|
|
||||||
help: |-
|
|
||||||
Multi line
|
|
||||||
Help
|
|
||||||
With useful information
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -9,4 +8,3 @@ var1:
|
||||||
var2:
|
var2:
|
||||||
description: the second variable
|
description: the second variable
|
||||||
help: message with "
|
help: message with "
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: the first <variable>
|
|
||||||
help: |-
|
|
||||||
Multi line
|
|
||||||
|
|
||||||
<Help>
|
|
||||||
|
|
||||||
With useful information
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: the second <variable>
|
|
||||||
help: |-
|
|
||||||
Multi line
|
|
||||||
<Help>
|
|
||||||
With useful information
|
|
||||||
...
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: quote" # a variable
|
variable: quote" # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: quote'" # a variable
|
variable: quote'" # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: quote\"\' # a variable
|
variable: quote\"\' # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: quote' # a variable
|
variable: quote' # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,9 +5,8 @@ variable:
|
||||||
description: a variable
|
description: a variable
|
||||||
default:
|
default:
|
||||||
jinja: >-
|
jinja: >-
|
||||||
{{ test_information }}
|
{{test_information }}
|
||||||
description: get information test_information
|
description: get information test_information
|
||||||
params:
|
params:
|
||||||
test_information:
|
test_information:
|
||||||
information: test_information
|
information: test_information
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
variable:
|
|
||||||
description: a variable
|
|
||||||
default:
|
|
||||||
type: namespace
|
|
||||||
mandatory: false
|
|
||||||
...
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
variable:
|
|
||||||
description: a variable
|
|
||||||
default:
|
|
||||||
jinja: >-
|
|
||||||
{{ namespace }}
|
|
||||||
params:
|
|
||||||
namespace:
|
|
||||||
type: namespace
|
|
||||||
mandatory: false
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -22,7 +21,7 @@ var3:
|
||||||
var4:
|
var4:
|
||||||
description: the forth variable
|
description: the forth variable
|
||||||
test:
|
test:
|
||||||
- null
|
-
|
||||||
- test1
|
- test1
|
||||||
- test2
|
- test2
|
||||||
mandatory: false
|
mandatory: false
|
||||||
|
|
@ -39,4 +38,3 @@ var6:
|
||||||
- test1
|
- test1
|
||||||
- test2
|
- test2
|
||||||
multi: true
|
multi: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -16,4 +15,3 @@ variable2:
|
||||||
- val2
|
- val2
|
||||||
multi: true
|
multi: true
|
||||||
mandatory: false
|
mandatory: false
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,14 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
source_variable_1: val1 # the first source variable
|
source_variable_1: val1 # the first source variable
|
||||||
|
|
||||||
source_variable_2: val2 # the second source variable
|
source_variable_2: val2 # the second source variable
|
||||||
|
|
||||||
my_variable:
|
my_variable:
|
||||||
description: a variable
|
description: a variable
|
||||||
|
type: choice
|
||||||
choices:
|
choices:
|
||||||
- variable: _.source_variable_1
|
- variable: _.source_variable_1
|
||||||
- variable: _.source_variable_2
|
- variable: _.source_variable_2
|
||||||
default: val1
|
default: val1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -12,5 +11,4 @@ variable:
|
||||||
param1: string
|
param1: string
|
||||||
param2: 1
|
param2: 1
|
||||||
param3: true
|
param3: true
|
||||||
param4: null
|
param4:
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -12,4 +11,3 @@ var:
|
||||||
information:
|
information:
|
||||||
information: test_information
|
information: test_information
|
||||||
variable: _.var
|
variable: _.var
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a first variable
|
var1: # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
|
|
@ -13,4 +12,3 @@ var2:
|
||||||
information:
|
information:
|
||||||
information: test_information
|
information: test_information
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -9,4 +8,3 @@ my_calculated_variable:
|
||||||
optional: true
|
optional: true
|
||||||
- variable: _.my_variable_unexists
|
- variable: _.my_variable_unexists
|
||||||
optional: true
|
optional: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -9,4 +8,3 @@ my_calculated_variable:
|
||||||
optional: true
|
optional: true
|
||||||
- variable: _.my_variable
|
- variable: _.my_variable
|
||||||
optional: true
|
optional: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
my_variable: val1
|
|
||||||
|
|
||||||
my_calculated_variable:
|
|
||||||
- variable: _.my_variable
|
|
||||||
optional: true
|
|
||||||
- variable: _.my_variable_unexists
|
|
||||||
optional: true
|
|
||||||
default: value
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -7,4 +6,3 @@ my_calculated_variable:
|
||||||
default:
|
default:
|
||||||
variable: _.my_variable
|
variable: _.my_variable
|
||||||
optional: true
|
optional: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -7,7 +6,7 @@ my_variable:
|
||||||
- val2
|
- val2
|
||||||
|
|
||||||
my_calculated_variable:
|
my_calculated_variable:
|
||||||
|
multi: true
|
||||||
default:
|
default:
|
||||||
variable: _.my_variable
|
variable: _.my_variable
|
||||||
optional: true
|
optional: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,15 +5,8 @@ var1:
|
||||||
description: a first variable
|
description: a first variable
|
||||||
default:
|
default:
|
||||||
jinja: >-
|
jinja: >-
|
||||||
{% if var2 is defined %}
|
{% if var2 is defined %} {{ var2 }} {% elif var3 is defined %} {{ var3 }} {%
|
||||||
{{ var2 }}
|
elif var4 is defined %} {{ var4 }} {% else %} {{ _.var2 }} {% endif %}
|
||||||
{% elif var3 is defined %}
|
|
||||||
{{ var3 }}
|
|
||||||
{% elif var4 is defined %}
|
|
||||||
{{ var4 }}
|
|
||||||
{% else %}
|
|
||||||
{{ _.var2 }}
|
|
||||||
{% endif %}
|
|
||||||
description: returns a value
|
description: returns a value
|
||||||
params:
|
params:
|
||||||
var2:
|
var2:
|
||||||
|
|
@ -29,4 +21,3 @@ var1:
|
||||||
mandatory: false
|
mandatory: false
|
||||||
|
|
||||||
var2: no # a second variable
|
var2: no # a second variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a first variable
|
var1: # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
default:
|
default:
|
||||||
information: test_information
|
information: test_information
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # a first variable
|
var1: # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
default:
|
default:
|
||||||
information: test_information
|
information: test_information
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -7,9 +6,8 @@ var:
|
||||||
choices:
|
choices:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% for item in trange(0, 10) %}
|
{% for item in trange(0, 10) %}
|
||||||
{{ item }}
|
{{ item }}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
return_type: integer
|
return_type: number
|
||||||
description: choice for 0 to 9
|
description: choice for 0 to 9
|
||||||
default: 9
|
default: 9
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var:
|
|
||||||
description: a variable
|
|
||||||
choices:
|
|
||||||
jinja: |-
|
|
||||||
{% for item in trange(0, 10) %}
|
|
||||||
{{ item }}
|
|
||||||
{%- endfor %}
|
|
||||||
return_type: integer
|
|
||||||
description: choice for 0 to 9
|
|
||||||
default: 9
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -8,4 +7,3 @@ variable:
|
||||||
jinja: >-
|
jinja: >-
|
||||||
no
|
no
|
||||||
description: return no
|
description: return no
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: rougail # a variable
|
variable: rougail # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -23,4 +22,3 @@ variable3:
|
||||||
params:
|
params:
|
||||||
variable:
|
variable:
|
||||||
variable: rougail.variable
|
variable: rougail.variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: value # a variable
|
variable: value # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: value in extra # a variable
|
variable: value in extra # a variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,4 +5,3 @@ variable:
|
||||||
description: a variable
|
description: a variable
|
||||||
default:
|
default:
|
||||||
variable: extra.variable
|
variable: extra.variable
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,26 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # the first variable
|
var1: # the first variable
|
||||||
- true
|
- true
|
||||||
|
|
||||||
var2: # the second variable
|
var2: # the second variable
|
||||||
- true
|
- true
|
||||||
|
|
||||||
var3: # the third variable
|
var3: # the third variable
|
||||||
- true
|
- true
|
||||||
|
|
||||||
var4: # the forth variable
|
var4: # the forth variable
|
||||||
- false
|
- false
|
||||||
|
|
||||||
var5: # the fifth variable
|
var5: # the fifth variable
|
||||||
- false
|
- false
|
||||||
|
|
||||||
var6: # the sixth variable
|
var6: # the sixth variable
|
||||||
- false
|
- false
|
||||||
|
|
||||||
var7: # the seventh variable
|
var7: # the seventh variable
|
||||||
- true
|
- true
|
||||||
|
|
||||||
var8: # the eighth variable
|
var8: # the eighth variable
|
||||||
- true
|
- true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -12,4 +11,3 @@ custom2:
|
||||||
type: custom
|
type: custom
|
||||||
default:
|
default:
|
||||||
- value
|
- value
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,26 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: # the first variable
|
var1: # the first variable
|
||||||
- 0.0
|
- 0.0
|
||||||
|
|
||||||
var2: # the second variable
|
var2: # the second variable
|
||||||
- 0.0
|
- 0.0
|
||||||
|
|
||||||
var3: # the third variable
|
var3: # the third variable
|
||||||
- 0.0
|
- 0.0
|
||||||
|
|
||||||
var4: # the forth variable
|
var4: # the forth variable
|
||||||
- 10.1
|
- 10.1
|
||||||
|
|
||||||
var5: # the fifth variable
|
var5: # the fifth variable
|
||||||
- 10.1
|
- 10.1
|
||||||
|
|
||||||
var6: # the sixth variable
|
var6: # the sixth variable
|
||||||
- 10.1
|
- 10.1
|
||||||
|
|
||||||
var7: # the seventh variable
|
var7: # the seventh variable
|
||||||
- 0.0
|
- 0.0
|
||||||
|
|
||||||
var8: # the eighth variable
|
var8: # the eighth variable
|
||||||
- 0.0
|
- 0.0
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1: # the first variable
|
|
||||||
- 0
|
|
||||||
|
|
||||||
var2: # the second variable
|
|
||||||
- 0
|
|
||||||
|
|
||||||
var3: # the third variable
|
|
||||||
- 0
|
|
||||||
|
|
||||||
var4: # the forth variable
|
|
||||||
- 10
|
|
||||||
|
|
||||||
var5: # the fifth variable
|
|
||||||
- 10
|
|
||||||
|
|
||||||
var6: # the sixth variable
|
|
||||||
- 10
|
|
||||||
|
|
||||||
var7: # the seventh variable
|
|
||||||
- 0
|
|
||||||
|
|
||||||
var8: # the eighth variable
|
|
||||||
- 0
|
|
||||||
...
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var:
|
|
||||||
description: the first variable
|
|
||||||
type: integer
|
|
||||||
multi: true
|
|
||||||
...
|
|
||||||
26
tests/results/01_6number_multi/rougail/00-base.yml
Normal file
26
tests/results/01_6number_multi/rougail/00-base.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
version: 1.1
|
||||||
|
|
||||||
|
var1: # the first variable
|
||||||
|
- 0
|
||||||
|
|
||||||
|
var2: # the second variable
|
||||||
|
- 0
|
||||||
|
|
||||||
|
var3: # the third variable
|
||||||
|
- 0
|
||||||
|
|
||||||
|
var4: # the forth variable
|
||||||
|
- 10
|
||||||
|
|
||||||
|
var5: # the fifth variable
|
||||||
|
- 10
|
||||||
|
|
||||||
|
var6: # the sixth variable
|
||||||
|
- 10
|
||||||
|
|
||||||
|
var7: # the seventh variable
|
||||||
|
- 0
|
||||||
|
|
||||||
|
var8: # the eighth variable
|
||||||
|
- 0
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,6 +5,5 @@ var1:
|
||||||
description: the second variable
|
description: the second variable
|
||||||
default:
|
default:
|
||||||
- value
|
- value
|
||||||
- null
|
-
|
||||||
empty: false
|
empty: false
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,23 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: [] # the first variable
|
var1: [] # the first variable
|
||||||
|
|
||||||
var2: [] # the second variable
|
var2: [] # the second variable
|
||||||
|
|
||||||
var3: [] # the third variable
|
var3: [] # the third variable
|
||||||
|
|
||||||
var4: # the forth variable
|
var4: # the forth variable
|
||||||
- value
|
- value
|
||||||
|
|
||||||
var5: # the fifth variable
|
var5: # the fifth variable
|
||||||
- value
|
- value
|
||||||
|
|
||||||
var6: # the sixth variable
|
var6: # the sixth variable
|
||||||
- value
|
- value
|
||||||
|
|
||||||
var7: # the seventh variable
|
var7: # the seventh variable
|
||||||
- value
|
- value
|
||||||
|
|
||||||
var8: # the eighth variable
|
var8: # the eighth variable
|
||||||
- value
|
- value
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: # a variable
|
variable: # a variable
|
||||||
- quote"
|
- quote"
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: # a variable
|
variable: # a variable
|
||||||
- quote'"
|
- quote'"
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable: # a variable
|
variable: # a variable
|
||||||
- quote'
|
- quote'
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -8,10 +7,9 @@ variable:
|
||||||
default:
|
default:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% for info in test_information %}
|
{% for info in test_information %}
|
||||||
{{ info }}
|
{{ info }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
description: get information test_information
|
description: get information test_information
|
||||||
params:
|
params:
|
||||||
test_information:
|
test_information:
|
||||||
information: test_information_list
|
information: test_information_list
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
variable1: # a first variable
|
variable1: # a first variable
|
||||||
- a
|
- a
|
||||||
- b
|
- b
|
||||||
- c
|
- c
|
||||||
|
|
@ -11,4 +10,3 @@ variable2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
choices:
|
choices:
|
||||||
variable: _.variable1
|
variable: _.variable1
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
variable:
|
|
||||||
description: a variable
|
|
||||||
choices:
|
|
||||||
variable: _.unknown_variable
|
|
||||||
optional: true
|
|
||||||
default:
|
|
||||||
- a
|
|
||||||
- b
|
|
||||||
- c
|
|
||||||
default: c
|
|
||||||
...
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
var1:
|
|
||||||
description: the first variable
|
|
||||||
tags:
|
|
||||||
- one_tag
|
|
||||||
|
|
||||||
var2:
|
|
||||||
description: the second variable
|
|
||||||
tags:
|
|
||||||
- one_tag
|
|
||||||
- second_tag
|
|
||||||
...
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
int:
|
int:
|
||||||
description: A limited number
|
description: A limited number
|
||||||
params:
|
params:
|
||||||
min_integer: 0
|
min_number: 0
|
||||||
max_integer: 100
|
max_number: 100
|
||||||
default: 10
|
default: 10
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
version: 1.1
|
|
||||||
|
|
||||||
int:
|
|
||||||
description: A limited integer
|
|
||||||
params:
|
|
||||||
min_integer: 0
|
|
||||||
max_integer: 100
|
|
||||||
default: 10
|
|
||||||
...
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
|
|
@ -6,4 +5,3 @@ variable:
|
||||||
description: an auto save variable
|
description: an auto save variable
|
||||||
default: no
|
default: no
|
||||||
auto_save: true
|
auto_save: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: no # a first variable
|
var1: no # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
default:
|
default:
|
||||||
variable: _.var1
|
variable: _.var1
|
||||||
auto_save: true
|
auto_save: true
|
||||||
...
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
%YAML 1.2
|
|
||||||
---
|
---
|
||||||
version: 1.1
|
version: 1.1
|
||||||
|
|
||||||
var1: no # a first variable
|
var1: no # a first variable
|
||||||
|
|
||||||
var2:
|
var2:
|
||||||
description: a second variable
|
description: a second variable
|
||||||
|
|
@ -14,7 +13,6 @@ var2:
|
||||||
hidden:
|
hidden:
|
||||||
jinja: |-
|
jinja: |-
|
||||||
{% if _.var1 == "yes" %}
|
{% if _.var1 == "yes" %}
|
||||||
_.var1 is yes
|
_.var1 is yes
|
||||||
{% endif %}
|
{% endif %}
|
||||||
description: only if the variable var1 has value "yes"
|
description: only if the variable var1 has value "yes"
|
||||||
...
|
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue