Compare commits

..

3 commits

33 changed files with 723 additions and 549 deletions

View file

@ -1,3 +1,10 @@
## 1.2.0a59 (2026-01-21)
### Fix
- better support for secret manager
- leadership and frozen
## 1.2.0a58 (2026-01-16)
### Fix

View file

@ -4,21 +4,22 @@ include_toc: true
---
[🇬🇧 (EN)](README.md) - [🇫🇷 (FR)](README.fr.md)
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="default_structural_format_version" name="default_structural_format_version">default_structural_format_version</a>**<br/>**Ligne de commande** : -v, --default_structural_format_version<br/>**Variable d'environnement** : DEFAULT_STRUCTURAL_FORMAT_VERSION | Version par défaut du format des fichiers de structure.<br/>Cette valeur n&#x27;est utilisée que si la version n&#x27;est pas définie dans le fichier de structure. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;1.0<br/>&nbsp;1.1<br/>&nbsp;null |
| **<a id="functions_files" name="functions_files">functions_files</a>**<br/>**Ligne de commande** : -c, --functions_files<br/>**Variable d'environnement** : FUNCTIONS_FILES | Fichier avec les fonctions.<br/>Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires utilisables dans les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;le fichier doit exister<br/>&nbsp;type de fichier autorisé: "file". |
| **<a id="modes_level" name="modes_level">modes_level</a>**<br/>**Ligne de commande** : --modes_level<br/>**Variable d'environnement** : MODES_LEVEL | Tous les niveaux de modes valides. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` |
| **<a id="default_family_mode" name="default_family_mode">default_family_mode</a>**<br/>**Variable d'environnement** : DEFAULT_FAMILY_MODE | Mode par défaut pour une famille. | le premier défini dans "[Tous les niveaux de modes valides](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". |
| **<a id="default_variable_mode" name="default_variable_mode">default_variable_mode</a>**<br/>**Variable d'environnement** : DEFAULT_VARIABLE_MODE | Mode par défaut pour une variable. | si la variable "[Tous les niveaux de modes valides](#modes_level)" est définit, la valeur par défaut est le second élément disponible, sinon, le premier | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". |
| **<a id="base_option_name" name="base_option_name">base_option_name</a>**<br/>**Variable d'environnement** : BASE_OPTION_NAME | Nom de l&#x27;option pour l&#x27;option de base. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="export_with_import" name="export_with_import">export_with_import</a>**<br/>**Variable d'environnement** : EXPORT_WITH_IMPORT | Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="tiramisu_cache" name="tiramisu_cache">tiramisu_cache</a>**<br/>**Ligne de commande** : -t, --tiramisu_cache<br/>**Variable d'environnement** : TIRAMISU_CACHE | Enregistrer le cache Tiramisu dans le fichier.<br/>Ce fichier contient les instructions Tiramisu utilisé en interne pour charger les variables.<br/>Ce fichier peut être utilisé pour le débogage. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | •&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;type de fichier autorisé: "file". |
| **<a id="internal_functions" name="internal_functions">internal_functions</a>**<br/>**Variable d'environnement** : INTERNAL_FUNCTIONS | Nom des fonctions internes qu&#x27;il est possible d&#x27;utiliser comme fonction. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="extra_annotators" name="extra_annotators">extra_annotators</a>**<br/>**Variable d'environnement** : EXTRA_ANNOTATORS | Nom des annotators supplémentaires. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="suffix" name="suffix">suffix</a>**<br/>**Variable d'environnement** : SUFFIX | Suffix ajouté pour généré le nom des options. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="force_optional" name="force_optional">force_optional</a>**<br/>**Ligne de commande** : <br/>&nbsp;--force_optional<br/>&nbsp;--no-force_optional<br/>**Variable d'environnement** : FORCE_OPTIONAL | Toutes les variables dans un calcul sont optionnelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | |
| **<a id="load_unexist_redefine" name="load_unexist_redefine">load_unexist_redefine</a>**<br/>**Variable d'environnement** : LOAD_UNEXIST_REDEFINE | Charger les variables redéfinis même si elles n&#x27;existe pas. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="default_structural_format_version" name="default_structural_format_version">default_structural_format_version</a>**<br/>**Ligne de commande** : <br/>-v, --default_structural_format_version<br/>**Variable d'environnement** : DEFAULT_STRUCTURAL_FORMAT_VERSION | Version par défaut du format des fichiers de structure.<br/>Cette valeur n&#x27;est utilisée que si la version n&#x27;est pas définie dans le fichier de structure. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;1.0<br/>&nbsp;1.1<br/>&nbsp;null |
| **<a id="types" name="types">types</a>**<br/>**Ligne de commande** : <br/>--types<br/>**Variable d'environnement** : TYPES | Fichier avec types personnalisés.<br/>Ce fichier contient des types personnalisés au format Rougail pour les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;le fichier doit exister<br/>&nbsp;type de fichier autorisé: "fichier" et "répertoire". |
| **<a id="functions_files" name="functions_files">functions_files</a>**<br/>**Ligne de commande** : <br/>--functions_files<br/>**Variable d'environnement** : FUNCTIONS_FILES | Fichier avec les fonctions.<br/>Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires utilisables dans les fichiers de structure. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;le fichier doit exister<br/>&nbsp;type de fichier autorisé: "file". |
| **<a id="modes_level" name="modes_level">modes_level</a>**<br/>**Ligne de commande** : <br/>--modes_level<br/>**Variable d'environnement** : MODES_LEVEL | Tous les niveaux de modes valides. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` |
| **<a id="default_family_mode" name="default_family_mode">default_family_mode</a>**<br/>**Variable d'environnement** : DEFAULT_FAMILY_MODE | Mode par défaut pour une famille. | le premier défini dans "[Tous les niveaux de modes valides](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". |
| **<a id="default_variable_mode" name="default_variable_mode">default_variable_mode</a>**<br/>**Variable d'environnement** : DEFAULT_VARIABLE_MODE | Mode par défaut pour une variable. | si la variable "[Tous les niveaux de modes valides](#modes_level)" est définit, la valeur par défaut est le second élément disponible, sinon, le premier | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | Ce mode doit être disponible dans "[Tous les niveaux de modes valides](#modes_level)". |
| **<a id="base_option_name" name="base_option_name">base_option_name</a>**<br/>**Variable d'environnement** : BASE_OPTION_NAME | Nom de l&#x27;option pour l&#x27;option de base. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="export_with_import" name="export_with_import">export_with_import</a>**<br/>**Variable d'environnement** : EXPORT_WITH_IMPORT | Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="tiramisu_cache" name="tiramisu_cache">tiramisu_cache</a>**<br/>**Ligne de commande** : <br/>-t, --tiramisu_cache<br/>**Variable d'environnement** : TIRAMISU_CACHE | Enregistrer le cache Tiramisu dans le fichier.<br/>Ce fichier contient les instructions Tiramisu utilisé en interne pour charger les variables.<br/>Ce fichier peut être utilisé pour le débogage. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | •&nbsp;le nom de fichier peut être une chemin relatif<br/>&nbsp;type de fichier autorisé: "file". |
| **<a id="internal_functions" name="internal_functions">internal_functions</a>**<br/>**Variable d'environnement** : INTERNAL_FUNCTIONS | Nom des fonctions internes qu&#x27;il est possible d&#x27;utiliser comme fonction. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="extra_annotators" name="extra_annotators">extra_annotators</a>**<br/>**Variable d'environnement** : EXTRA_ANNOTATORS | Nom des annotators supplémentaires. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="suffix" name="suffix">suffix</a>**<br/>**Variable d'environnement** : SUFFIX | Suffix ajouté pour généré le nom des options. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="force_optional" name="force_optional">force_optional</a>**<br/>**Ligne de commande** : <br/>&nbsp;--force_optional<br/>&nbsp;--no-force_optional<br/>**Variable d'environnement** : FORCE_OPTIONAL | Toutes les variables dans un calcul sont optionnelles. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | |
| **<a id="load_unexist_redefine" name="load_unexist_redefine">load_unexist_redefine</a>**<br/>**Variable d'environnement** : LOAD_UNEXIST_REDEFINE | Charger les variables redéfinis même si elles n&#x27;existe pas. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
## Le gestionnaire de secret
@ -27,9 +28,9 @@ include_toc: true
> **Chemin** : secret_manager\
> `standard`
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------|
| **<a id="secret_manager.pattern" name="secret_manager.pattern">secret_manager.pattern</a>**<br/>**Ligne de commande** : --secret_manager.pattern<br/>**Variable d'environnement** : SECRET_MANAGER.PATTERN | Le modèle de secret permettant de construire le nom de l&#x27;élément recherché dans le gestionnaire de secrets.<br/>Le modèle est au format Jinja2. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` |
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------|
| **<a id="secret_manager.pattern" name="secret_manager.pattern">secret_manager.pattern</a>**<br/>**Ligne de commande** : <br/>--secret_manager.pattern<br/>**Variable d'environnement** : SECRET_MANAGER.PATTERN | Le modèle de secret permettant de construire le nom de l&#x27;élément recherché dans le gestionnaire de secrets.<br/>Le modèle est au format Jinja2. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` |
## Load and exporter steps
@ -38,11 +39,11 @@ include_toc: true
> **Chemin** : step\
> `standard`
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="step.structural" name="step.structural">step.structural</a>**<br/>**Variable d'environnement** : STEP.STRUCTURAL | Sélection pour structure. | •&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choix** : <br/>&nbsp;directory<br/>&nbsp;string<br/>&nbsp;commandline<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.user_data" name="step.user_data">step.user_data</a>**<br/>**Ligne de commande** : -u, --step.user_data<br/>**Variable d'environnement** : STEP.USER_DATA | Sélection pour données utilisateur. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`désactivé`*<br/>**Désactivé** : les sorties "doc" n'autorisent pas des données utilisateur | `unique`<br/>**Choix** : <br/>&nbsp;yaml<br/>&nbsp;environment<br/>&nbsp;commandline<br/>&nbsp;ansible<br/>&nbsp;questionary<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.output" name="step.output">step.output</a>**<br/>**Ligne de commande** : -o, --step.output<br/>**Variable d'environnement** : STEP.OUTPUT | Sélection pour sortie. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | **Choix** : <br/>&nbsp;display<br/>&nbsp;json<br/>&nbsp;doc<br/>&nbsp;table<br/>&nbsp;ansible |
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="step.structural" name="step.structural">step.structural</a>**<br/>**Variable d'environnement** : STEP.STRUCTURAL | Sélection pour structure. | •&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choix** : <br/>&nbsp;directory<br/>&nbsp;string<br/>&nbsp;commandline<br/>&nbsp;risotto |
| **<a id="step.user_data" name="step.user_data">step.user_data</a>**<br/>**Ligne de commande** : <br/>-u, --step.user_data<br/>**Variable d'environnement** : STEP.USER_DATA | Sélection pour données utilisateur. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`désactivé`*<br/>**Désactivé** : les sorties "doc" n'autorisent pas des données utilisateur | `unique`<br/>**Choix** : <br/>&nbsp;yaml<br/>&nbsp;environment<br/>&nbsp;commandline<br/>&nbsp;ansible<br/>&nbsp;questionary<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.output" name="step.output">step.output</a>**<br/>**Ligne de commande** : <br/>-o, --step.output<br/>**Variable d'environnement** : STEP.OUTPUT | Sélection pour sortie. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` | **Choix** : <br/>&nbsp;display<br/>&nbsp;json<br/>&nbsp;doc<br/>&nbsp;table<br/>&nbsp;ansible |
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|----------------------|
@ -67,7 +68,7 @@ include_toc: true
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------|
| **<a id="default_params.unix_filename.allow_relative" name="default_params.unix_filename.allow_relative">default_params.unix_filename.allow_relative</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.unix_filename.allow_relative<br/>&nbsp;--default_params.unix_filename.no-allow_relative<br/>**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.ALLOW_RELATIVE | Le nom de fichier peut être une chemin relatif. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.unix_filename.test_existence" name="default_params.unix_filename.test_existence">default_params.unix_filename.test_existence</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.unix_filename.test_existence<br/>&nbsp;--default_params.unix_filename.no-test_existence<br/>**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TEST_EXISTENCE | Le fichier doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.unix_filename.types" name="default_params.unix_filename.types">default_params.unix_filename.types</a>**<br/>**Ligne de commande** : --default_params.unix_filename.types<br/>**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TYPES | Type de fichier autorisé. | •&nbsp;file<br/>&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choix** : <br/>&nbsp;file<br/>&nbsp;directory |
| **<a id="default_params.unix_filename.types" name="default_params.unix_filename.types">default_params.unix_filename.types</a>**<br/>**Ligne de commande** : <br/>--default_params.unix_filename.types<br/>**Variable d'environnement** : DEFAULT_PARAMS.UNIX_FILENAME.TYPES | Type de fichier autorisé. | •&nbsp;file<br/>&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choix** : <br/>&nbsp;file<br/>&nbsp;directory |
### IP
@ -130,7 +131,7 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------|
| **<a id="default_params.netbios.type" name="default_params.netbios.type">default_params.netbios.type</a>**<br/>**Ligne de commande** : --default_params.netbios.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TYPE | Type de nom de domaine. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.netbios.type" name="default_params.netbios.type">default_params.netbios.type</a>**<br/>**Ligne de commande** : <br/>--default_params.netbios.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TYPE | Type de nom de domaine. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.netbios.allow_without_dot" name="default_params.netbios.allow_without_dot">default_params.netbios.allow_without_dot</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.netbios.allow_without_dot<br/>&nbsp;--default_params.netbios.no-allow_without_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_WITHOUT_DOT | Le nom de domaine peut être un nom d&#x27;hôte. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.netbios.test_existence" name="default_params.netbios.test_existence">default_params.netbios.test_existence</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.netbios.test_existence<br/>&nbsp;--default_params.netbios.no-test_existence<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.netbios.allow_ip" name="default_params.netbios.allow_ip">default_params.netbios.allow_ip</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.netbios.allow_ip<br/>&nbsp;--default_params.netbios.no-allow_ip<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -146,7 +147,7 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------|
| **<a id="default_params.domainname.type" name="default_params.domainname.type">default_params.domainname.type</a>**<br/>**Ligne de commande** : --default_params.domainname.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.domainname.type" name="default_params.domainname.type">default_params.domainname.type</a>**<br/>**Ligne de commande** : <br/>--default_params.domainname.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.domainname.allow_without_dot" name="default_params.domainname.allow_without_dot">default_params.domainname.allow_without_dot</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.domainname.allow_without_dot<br/>&nbsp;--default_params.domainname.no-allow_without_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_WITHOUT_DOT | Le nom de domaine peut être un nom d&#x27;hôte. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.domainname.test_existence" name="default_params.domainname.test_existence">default_params.domainname.test_existence</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.domainname.test_existence<br/>&nbsp;--default_params.domainname.no-test_existence<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.domainname.allow_ip" name="default_params.domainname.allow_ip">default_params.domainname.allow_ip</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.domainname.allow_ip<br/>&nbsp;--default_params.domainname.no-allow_ip<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -162,7 +163,7 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------|
| **<a id="default_params.hostname.type" name="default_params.hostname.type">default_params.hostname.type</a>**<br/>**Ligne de commande** : --default_params.hostname.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TYPE | Type de nom de domaine. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.hostname.type" name="default_params.hostname.type">default_params.hostname.type</a>**<br/>**Ligne de commande** : <br/>--default_params.hostname.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TYPE | Type de nom de domaine. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.hostname.allow_without_dot" name="default_params.hostname.allow_without_dot">default_params.hostname.allow_without_dot</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.hostname.allow_without_dot<br/>&nbsp;--default_params.hostname.no-allow_without_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_WITHOUT_DOT | Le nom de domaine peut être un nom d&#x27;hôte. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.hostname.test_existence" name="default_params.hostname.test_existence">default_params.hostname.test_existence</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.hostname.test_existence<br/>&nbsp;--default_params.hostname.no-test_existence<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.hostname.allow_ip" name="default_params.hostname.allow_ip">default_params.hostname.allow_ip</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.hostname.allow_ip<br/>&nbsp;--default_params.hostname.no-allow_ip<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -178,7 +179,7 @@ include_toc: true
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|-------------------------------------------------------------------------------------------|
| **<a id="default_params.web_address.type" name="default_params.web_address.type">default_params.web_address.type</a>**<br/>**Ligne de commande** : --default_params.web_address.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.web_address.type" name="default_params.web_address.type">default_params.web_address.type</a>**<br/>**Ligne de commande** : <br/>--default_params.web_address.type<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type de nom de domaine. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.web_address.allow_without_dot" name="default_params.web_address.allow_without_dot">default_params.web_address.allow_without_dot</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.web_address.allow_without_dot<br/>&nbsp;--default_params.web_address.no-allow_without_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WITHOUT_DOT | Le nom de domaine peut être un nom d&#x27;hôte. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.web_address.test_existence" name="default_params.web_address.test_existence">default_params.web_address.test_existence</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.web_address.test_existence<br/>&nbsp;--default_params.web_address.no-test_existence<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.TEST_EXISTENCE | Le nom de domaine doit exister. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.web_address.allow_ip" name="default_params.web_address.allow_ip">default_params.web_address.allow_ip</a>**<br/>**Ligne de commande** : <br/>&nbsp;--default_params.web_address.allow_ip<br/>&nbsp;--default_params.web_address.no-allow_ip<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_IP | Le nom de domaine peut être une IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |

View file

@ -4,21 +4,22 @@ include_toc: true
---
[🇬🇧 (EN)](README.md) - [🇫🇷 (FR)](README.fr.md)
| Variable | Description | Default value | Type | Access control | Validator |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|------------------|----------------------------------------------------------------------------------------------------------------------------------|
| **<a id="default_structural_format_version" name="default_structural_format_version">default_structural_format_version</a>**<br/>**Command line**: -v, --default_structural_format_version<br/>**Environment variable**: DEFAULT_STRUCTURAL_FORMAT_VERSION | Default version of the structural file format.<br/>This value is only used if the version is not set in the structural file. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;1.0<br/>&nbsp;1.1<br/>&nbsp;null |
| **<a id="functions_files" name="functions_files">functions_files</a>**<br/>**Command line**: -c, --functions_files<br/>**Environment variable**: FUNCTIONS_FILES | File with functions.<br/>This file contains filters and additional Jinja2 functions usable in structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;this filename could be a relative path<br/>&nbsp;this file must exist<br/>&nbsp;file type allowed: "file". |
| **<a id="modes_level" name="modes_level">modes_level</a>**<br/>**Command line**: --modes_level<br/>**Environment variable**: MODES_LEVEL | All modes level available. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` |
| **<a id="default_family_mode" name="default_family_mode">default_family_mode</a>**<br/>**Environment variable**: DEFAULT_FAMILY_MODE | Default mode for a family. | the first one defined in "[All modes level available](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". |
| **<a id="default_variable_mode" name="default_variable_mode">default_variable_mode</a>**<br/>**Environment variable**: DEFAULT_VARIABLE_MODE | Default mode for a variable. | if the variable "[All modes level available](#modes_level)" is defined, the default value is the second available element, otherwise, the first | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". |
| **<a id="base_option_name" name="base_option_name">base_option_name</a>**<br/>**Environment variable**: BASE_OPTION_NAME | Option name for the base option. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="export_with_import" name="export_with_import">export_with_import</a>**<br/>**Environment variable**: EXPORT_WITH_IMPORT | In cache file, do not importation of Tiramisu and other dependencies. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="tiramisu_cache" name="tiramisu_cache">tiramisu_cache</a>**<br/>**Command line**: -t, --tiramisu_cache<br/>**Environment variable**: TIRAMISU_CACHE | Store Tiramisu cache filename.<br/>This file contains the Tiramisu instructions used internally to load the variables.<br/>This file can be used for debugging. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | •&nbsp;this filename could be a relative path<br/>&nbsp;file type allowed: "file". |
| **<a id="internal_functions" name="internal_functions">internal_functions</a>**<br/>**Environment variable**: INTERNAL_FUNCTIONS | Name of internal functions that we can use as a function. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="extra_annotators" name="extra_annotators">extra_annotators</a>**<br/>**Environment variable**: EXTRA_ANNOTATORS | Name of extra annotators. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="suffix" name="suffix">suffix</a>**<br/>**Environment variable**: SUFFIX | Suffix add to generated options name. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="force_optional" name="force_optional">force_optional</a>**<br/>**Command line**: <br/>&nbsp;--force_optional<br/>&nbsp;--no-force_optional<br/>**Environment variable**: FORCE_OPTIONAL | Every variables in calculation are optionals. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | |
| **<a id="load_unexist_redefine" name="load_unexist_redefine">load_unexist_redefine</a>**<br/>**Environment variable**: LOAD_UNEXIST_REDEFINE | Loads redefine variables even if there don&#x27;t already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| Variable | Description | Default value | Type | Access control | Validator |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="default_structural_format_version" name="default_structural_format_version">default_structural_format_version</a>**<br/>**Command line**: <br/>-v, --default_structural_format_version<br/>**Environment variable**: DEFAULT_STRUCTURAL_FORMAT_VERSION | Default version of the structural file format.<br/>This value is only used if the version is not set in the structural file. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;1.0<br/>&nbsp;1.1<br/>&nbsp;null |
| **<a id="types" name="types">types</a>**<br/>**Command line**: <br/>--types<br/>**Environment variable**: TYPES | File with personalize types.<br/>This file contains personalize types in Rougail format for structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;this filename could be a relative path<br/>&nbsp;this file must exist<br/>&nbsp;file type allowed: "directory" and "file". |
| **<a id="functions_files" name="functions_files">functions_files</a>**<br/>**Command line**: <br/>--functions_files<br/>**Environment variable**: FUNCTIONS_FILES | File with functions.<br/>This file contains filters and additional Jinja2 functions usable in structure files. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>&nbsp;this filename could be a relative path<br/>&nbsp;this file must exist<br/>&nbsp;file type allowed: "file". |
| **<a id="modes_level" name="modes_level">modes_level</a>**<br/>**Command line**: <br/>--modes_level<br/>**Environment variable**: MODES_LEVEL | All modes level available. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique` |
| **<a id="default_family_mode" name="default_family_mode">default_family_mode</a>**<br/>**Environment variable**: DEFAULT_FAMILY_MODE | Default mode for a family. | the first one defined in "[All modes level available](#modes_level)" | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". |
| **<a id="default_variable_mode" name="default_variable_mode">default_variable_mode</a>**<br/>**Environment variable**: DEFAULT_VARIABLE_MODE | Default mode for a variable. | if the variable "[All modes level available](#modes_level)" is defined, the default value is the second available element, otherwise, the first | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | This mode must be available in "[All modes level available](#modes_level)". |
| **<a id="base_option_name" name="base_option_name">base_option_name</a>**<br/>**Environment variable**: BASE_OPTION_NAME | Option name for the base option. | baseoption | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="export_with_import" name="export_with_import">export_with_import</a>**<br/>**Environment variable**: EXPORT_WITH_IMPORT | In cache file, do not importation of Tiramisu and other dependencies. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="tiramisu_cache" name="tiramisu_cache">tiramisu_cache</a>**<br/>**Command line**: <br/>-t, --tiramisu_cache<br/>**Environment variable**: TIRAMISU_CACHE | Store Tiramisu cache filename.<br/>This file contains the Tiramisu instructions used internally to load the variables.<br/>This file can be used for debugging. | | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | •&nbsp;this filename could be a relative path<br/>&nbsp;file type allowed: "file". |
| **<a id="internal_functions" name="internal_functions">internal_functions</a>**<br/>**Environment variable**: INTERNAL_FUNCTIONS | Name of internal functions that we can use as a function. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="extra_annotators" name="extra_annotators">extra_annotators</a>**<br/>**Environment variable**: EXTRA_ANNOTATORS | Name of extra annotators. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | |
| **<a id="suffix" name="suffix">suffix</a>**<br/>**Environment variable**: SUFFIX | Suffix add to generated options name. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="force_optional" name="force_optional">force_optional</a>**<br/>**Command line**: <br/>&nbsp;--force_optional<br/>&nbsp;--no-force_optional<br/>**Environment variable**: FORCE_OPTIONAL | Every variables in calculation are optionals. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | |
| **<a id="load_unexist_redefine" name="load_unexist_redefine">load_unexist_redefine</a>**<br/>**Environment variable**: LOAD_UNEXIST_REDEFINE | Loads redefine variables even if there don&#x27;t already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
## The secret manager
@ -27,9 +28,9 @@ include_toc: true
> **Path**: secret_manager\
> `standard`
| Variable | Description | Default value | Type | Access control |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------|------------------|
| **<a id="secret_manager.pattern" name="secret_manager.pattern">secret_manager.pattern</a>**<br/>**Command line**: --secret_manager.pattern<br/>**Environment variable**: SECRET_MANAGER.PATTERN | The secret pattern to constructing the name of the item searched for in the secret manager.<br/>The pattern is in Jinja2 format. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` |
| Variable | Description | Default value | Type | Access control |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------|------------------|
| **<a id="secret_manager.pattern" name="secret_manager.pattern">secret_manager.pattern</a>**<br/>**Command line**: <br/>--secret_manager.pattern<br/>**Environment variable**: SECRET_MANAGER.PATTERN | The secret pattern to constructing the name of the item searched for in the secret manager.<br/>The pattern is in Jinja2 format. | {{ project }} - {{ environment }} - {{ service }} - {{ user }} | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` |
## Load and exporter steps
@ -38,11 +39,11 @@ include_toc: true
> **Path**: step\
> `standard`
| Variable | Description | Default value | Type | Access control | Validator |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="step.structural" name="step.structural">step.structural</a>**<br/>**Environment variable**: STEP.STRUCTURAL | Select for structural. | •&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choices**: <br/>&nbsp;directory<br/>&nbsp;string<br/>&nbsp;commandline<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.user_data" name="step.user_data">step.user_data</a>**<br/>**Command line**: -u, --step.user_data<br/>**Environment variable**: STEP.USER_DATA | Select for user datas. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`disabled`*<br/>**Disabled**: outputs "doc" did not allow user data | `unique`<br/>**Choices**: <br/>&nbsp;yaml<br/>&nbsp;environment<br/>&nbsp;commandline<br/>&nbsp;ansible<br/>&nbsp;questionary<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.output" name="step.output">step.output</a>**<br/>**Command line**: -o, --step.output<br/>**Environment variable**: STEP.OUTPUT | Select for output. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | **Choices**: <br/>&nbsp;display<br/>&nbsp;json<br/>&nbsp;doc<br/>&nbsp;table<br/>&nbsp;ansible |
| Variable | Description | Default value | Type | Access control | Validator |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------|------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="step.structural" name="step.structural">step.structural</a>**<br/>**Environment variable**: STEP.STRUCTURAL | Select for structural. | •&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choices**: <br/>&nbsp;directory<br/>&nbsp;string<br/>&nbsp;commandline<br/>&nbsp;risotto |
| **<a id="step.user_data" name="step.user_data">step.user_data</a>**<br/>**Command line**: <br/>-u, --step.user_data<br/>**Environment variable**: STEP.USER_DATA | Select for user datas. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` *`disabled`*<br/>**Disabled**: outputs "doc" did not allow user data | `unique`<br/>**Choices**: <br/>&nbsp;yaml<br/>&nbsp;environment<br/>&nbsp;commandline<br/>&nbsp;ansible<br/>&nbsp;questionary<br/>&nbsp;risotto<br/>&nbsp;bitwarden |
| **<a id="step.output" name="step.output">step.output</a>**<br/>**Command line**: <br/>-o, --step.output<br/>**Environment variable**: STEP.OUTPUT | Select for output. | display | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` | **Choices**: <br/>&nbsp;display<br/>&nbsp;json<br/>&nbsp;doc<br/>&nbsp;table<br/>&nbsp;ansible |
| Variable | Description | Default value | Type | Access control |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|------------------|
@ -67,7 +68,7 @@ include_toc: true
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------|
| **<a id="default_params.unix_filename.allow_relative" name="default_params.unix_filename.allow_relative">default_params.unix_filename.allow_relative</a>**<br/>**Command line**: <br/>&nbsp;--default_params.unix_filename.allow_relative<br/>&nbsp;--default_params.unix_filename.no-allow_relative<br/>**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.ALLOW_RELATIVE | This filename could be a relative path. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.unix_filename.test_existence" name="default_params.unix_filename.test_existence">default_params.unix_filename.test_existence</a>**<br/>**Command line**: <br/>&nbsp;--default_params.unix_filename.test_existence<br/>&nbsp;--default_params.unix_filename.no-test_existence<br/>**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TEST_EXISTENCE | This file must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.unix_filename.types" name="default_params.unix_filename.types">default_params.unix_filename.types</a>**<br/>**Command line**: --default_params.unix_filename.types<br/>**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TYPES | File type allowed. | •&nbsp;file<br/>&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choices**: <br/>&nbsp;file<br/>&nbsp;directory |
| **<a id="default_params.unix_filename.types" name="default_params.unix_filename.types">default_params.unix_filename.types</a>**<br/>**Command line**: <br/>--default_params.unix_filename.types<br/>**Environment variable**: DEFAULT_PARAMS.UNIX_FILENAME.TYPES | File type allowed. | •&nbsp;file<br/>&nbsp;directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choices**: <br/>&nbsp;file<br/>&nbsp;directory |
### IP
@ -130,7 +131,7 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | Validator |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------|
| **<a id="default_params.netbios.type" name="default_params.netbios.type">default_params.netbios.type</a>**<br/>**Command line**: --default_params.netbios.type<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.TYPE | Type of domainname. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.netbios.type" name="default_params.netbios.type">default_params.netbios.type</a>**<br/>**Command line**: <br/>--default_params.netbios.type<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.TYPE | Type of domainname. | netbios | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.netbios.allow_without_dot" name="default_params.netbios.allow_without_dot">default_params.netbios.allow_without_dot</a>**<br/>**Command line**: <br/>&nbsp;--default_params.netbios.allow_without_dot<br/>&nbsp;--default_params.netbios.no-allow_without_dot<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.netbios.test_existence" name="default_params.netbios.test_existence">default_params.netbios.test_existence</a>**<br/>**Command line**: <br/>&nbsp;--default_params.netbios.test_existence<br/>&nbsp;--default_params.netbios.no-test_existence<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.netbios.allow_ip" name="default_params.netbios.allow_ip">default_params.netbios.allow_ip</a>**<br/>**Command line**: <br/>&nbsp;--default_params.netbios.allow_ip<br/>&nbsp;--default_params.netbios.no-allow_ip<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -146,7 +147,7 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | Validator |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------|
| **<a id="default_params.domainname.type" name="default_params.domainname.type">default_params.domainname.type</a>**<br/>**Command line**: --default_params.domainname.type<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.domainname.type" name="default_params.domainname.type">default_params.domainname.type</a>**<br/>**Command line**: <br/>--default_params.domainname.type<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.domainname.allow_without_dot" name="default_params.domainname.allow_without_dot">default_params.domainname.allow_without_dot</a>**<br/>**Command line**: <br/>&nbsp;--default_params.domainname.allow_without_dot<br/>&nbsp;--default_params.domainname.no-allow_without_dot<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.domainname.test_existence" name="default_params.domainname.test_existence">default_params.domainname.test_existence</a>**<br/>**Command line**: <br/>&nbsp;--default_params.domainname.test_existence<br/>&nbsp;--default_params.domainname.no-test_existence<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.domainname.allow_ip" name="default_params.domainname.allow_ip">default_params.domainname.allow_ip</a>**<br/>**Command line**: <br/>&nbsp;--default_params.domainname.allow_ip<br/>&nbsp;--default_params.domainname.no-allow_ip<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -162,7 +163,7 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | Validator |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------|
| **<a id="default_params.hostname.type" name="default_params.hostname.type">default_params.hostname.type</a>**<br/>**Command line**: --default_params.hostname.type<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TYPE | Type of domainname. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.hostname.type" name="default_params.hostname.type">default_params.hostname.type</a>**<br/>**Command line**: <br/>--default_params.hostname.type<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TYPE | Type of domainname. | hostname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.hostname.allow_without_dot" name="default_params.hostname.allow_without_dot">default_params.hostname.allow_without_dot</a>**<br/>**Command line**: <br/>&nbsp;--default_params.hostname.allow_without_dot<br/>&nbsp;--default_params.hostname.no-allow_without_dot<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.hostname.test_existence" name="default_params.hostname.test_existence">default_params.hostname.test_existence</a>**<br/>**Command line**: <br/>&nbsp;--default_params.hostname.test_existence<br/>&nbsp;--default_params.hostname.no-test_existence<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.hostname.allow_ip" name="default_params.hostname.allow_ip">default_params.hostname.allow_ip</a>**<br/>**Command line**: <br/>&nbsp;--default_params.hostname.allow_ip<br/>&nbsp;--default_params.hostname.no-allow_ip<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
@ -178,7 +179,7 @@ include_toc: true
| Variable | Description | Default value | Type | Access control | Validator |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|--------------------------------------------------------------------------------------------|
| **<a id="default_params.web_address.type" name="default_params.web_address.type">default_params.web_address.type</a>**<br/>**Command line**: --default_params.web_address.type<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.web_address.type" name="default_params.web_address.type">default_params.web_address.type</a>**<br/>**Command line**: <br/>--default_params.web_address.type<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TYPE | Type of domainname. | domainname | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choices**: <br/>&nbsp;domainname<br/>&nbsp;netbios<br/>&nbsp;hostname<br/>&nbsp;null |
| **<a id="default_params.web_address.allow_without_dot" name="default_params.web_address.allow_without_dot">default_params.web_address.allow_without_dot</a>**<br/>**Command line**: <br/>&nbsp;--default_params.web_address.allow_without_dot<br/>&nbsp;--default_params.web_address.no-allow_without_dot<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WITHOUT_DOT | The domain name can be a hostname. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.web_address.test_existence" name="default_params.web_address.test_existence">default_params.web_address.test_existence</a>**<br/>**Command line**: <br/>&nbsp;--default_params.web_address.test_existence<br/>&nbsp;--default_params.web_address.no-test_existence<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.TEST_EXISTENCE | The domain name must exist. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
| **<a id="default_params.web_address.allow_ip" name="default_params.web_address.allow_ip">default_params.web_address.allow_ip</a>**<br/>**Command line**: <br/>&nbsp;--default_params.web_address.allow_ip<br/>&nbsp;--default_params.web_address.no-allow_ip<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_IP | The domain name can be an IP. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-12-23 21:10+0100\n"
"POT-Creation-Date: 2026-01-21 08:42+0100\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"
@ -15,47 +15,47 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
#: src/rougail/annotator/family.py:151
#: src/rougail/annotator/family.py:152
msgid "default variable mode \"{0}\" is not a valid mode, valid modes are {1}"
msgstr ""
#: src/rougail/annotator/family.py:157
#: src/rougail/annotator/family.py:158
msgid "default family mode \"{0}\" is not a valid mode, valid modes are {1}"
msgstr ""
#: src/rougail/annotator/family.py:189
#: src/rougail/annotator/family.py:190
msgid "mode \"{0}\" for \"{1}\" is not a valid mode, valid modes are {2}"
msgstr ""
#: src/rougail/annotator/family.py:193
#: src/rougail/annotator/family.py:194
msgid "mode \"{0}\" for \"{1}\" is not a valid mode, no modes are available"
msgstr ""
#: src/rougail/annotator/family.py:257
#: src/rougail/annotator/family.py:258
msgid "the variable \"{0}\" is mandatory so in \"{1}\" mode but family has the higher family mode \"{2}\""
msgstr ""
#: src/rougail/annotator/family.py:295
#: src/rougail/annotator/family.py:296
msgid "the follower \"{0}\" is in \"{1}\" mode but leader have the higher mode \"{2}\""
msgstr ""
#: src/rougail/annotator/family.py:328
#: src/rougail/annotator/family.py:329
msgid "the family \"{0}\" is in \"{1}\" mode but variables and families inside have the higher modes \"{2}\""
msgstr ""
#: src/rougail/annotator/family.py:346
#: src/rougail/annotator/family.py:347
msgid "the variable \"{0}\" is in \"{1}\" mode but family has the higher family mode \"{2}\""
msgstr ""
#: src/rougail/annotator/property.py:161
#: src/rougail/annotator/property.py:181
msgid "invalid tag name \"{0}\" should only contains lowercase ascii character, number or _"
msgstr ""
#: src/rougail/annotator/property.py:166
#: src/rougail/annotator/property.py:186
msgid "invalid tag name \"{0}\" should not be a name of an existing mode"
msgstr ""
#: src/rougail/annotator/property.py:171
#: src/rougail/annotator/property.py:191
msgid "invalid tag name \"{0}\" should not be the name of an available properties"
msgstr ""
@ -75,55 +75,55 @@ msgstr ""
msgid "the variable \"{0}\" is a \"regexp\" variable but don't have any regexp"
msgstr ""
#: src/rougail/annotator/variable.py:95
#: src/rougail/annotator/variable.py:93
msgid "only \"unix_user\" or \"secret\" variable type can have \"secret_manager\" attribute, but \"{0}\" has type \"{1}\""
msgstr ""
#: src/rougail/annotator/variable.py:102
#: src/rougail/annotator/variable.py:100
msgid "the variable \"{0}\" has attribute \"secret_manager\" but is a multi variable"
msgstr ""
#: src/rougail/annotator/variable.py:107
#: src/rougail/annotator/variable.py:105
msgid "the variable \"{0}\" has attribute \"secret_manager\" so must not have default value"
msgstr ""
#: src/rougail/annotator/variable.py:161
#: src/rougail/annotator/variable.py:159
msgid "{0} values needed, but there are {{{{ var | length }}}}"
msgstr ""
#: src/rougail/annotator/variable.py:162
#: src/rougail/annotator/variable.py:160
msgid "needs exactly {0} values"
msgstr ""
#: src/rougail/annotator/variable.py:164
#: src/rougail/annotator/variable.py:162
msgid "a maximum of {0} values are needed, but there are {{{{ var | length }}}}"
msgstr ""
#: src/rougail/annotator/variable.py:165
#: src/rougail/annotator/variable.py:163
msgid "needs a maximum of {0} values"
msgstr ""
#: src/rougail/annotator/variable.py:169
#: src/rougail/annotator/variable.py:167
msgid "a minimum of {0} values are needed, but there are {{{{ var | length }}}}"
msgstr ""
#: src/rougail/annotator/variable.py:170
#: src/rougail/annotator/variable.py:168
msgid "needs a minimum of {0} values"
msgstr ""
#: src/rougail/annotator/variable.py:247
#: src/rougail/annotator/variable.py:246
msgid "the \"{0}\" default value is a calculation with itself"
msgstr ""
#: src/rougail/annotator/variable.py:308
#: src/rougail/annotator/variable.py:306
msgid "the variable \"{0}\" has regexp attribut but has not the \"regexp\" type"
msgstr ""
#: src/rougail/annotator/variable.py:351
#: src/rougail/annotator/variable.py:349
msgid "the variable \"{0}\" has choices attribut but has not the \"choice\" type"
msgstr ""
#: src/rougail/annotator/variable.py:379
#: src/rougail/annotator/variable.py:377
msgid "the variable \"{0}\" has an unvalid default value \"{1}\" should be in {2}"
msgstr ""
@ -136,117 +136,125 @@ msgid "This value is only used if the version is not set in the structural file"
msgstr ""
#: src/rougail/config/__init__.py:281
msgid "File with functions"
msgid "File with personalize types"
msgstr ""
#: src/rougail/config/__init__.py:282
msgid "This file contains personalize types in Rougail format for structure files"
msgstr ""
#: src/rougail/config/__init__.py:291
msgid "File with functions"
msgstr ""
#: src/rougail/config/__init__.py:292
msgid "This file contains filters and additional Jinja2 functions usable in structure files"
msgstr ""
#: src/rougail/config/__init__.py:294
#: src/rougail/config/__init__.py:303
msgid "All modes level available"
msgstr ""
#: src/rougail/config/__init__.py:306
#: src/rougail/config/__init__.py:315
msgid "Default mode for a family"
msgstr ""
#: src/rougail/config/__init__.py:312
#: src/rougail/config/__init__.py:321
msgid "the first one defined in \"modes_level\""
msgstr ""
#: src/rougail/config/__init__.py:318 src/rougail/config/__init__.py:345
#: src/rougail/config/__init__.py:327 src/rougail/config/__init__.py:354
msgid "when no mode is defined in \"modes_level\""
msgstr ""
#: src/rougail/config/__init__.py:325 src/rougail/config/__init__.py:352
#: src/rougail/config/__init__.py:334 src/rougail/config/__init__.py:361
msgid "this mode must be available in \"modes_level\""
msgstr ""
#: src/rougail/config/__init__.py:329
#: src/rougail/config/__init__.py:338
msgid "Default mode for a variable"
msgstr ""
#: src/rougail/config/__init__.py:339
#: src/rougail/config/__init__.py:348
msgid "if the variable \"modes_level\" is defined, the default value is the second available element, otherwise, the first"
msgstr ""
#: src/rougail/config/__init__.py:356
#: src/rougail/config/__init__.py:365
msgid "Option name for the base option"
msgstr ""
#: src/rougail/config/__init__.py:361
#: src/rougail/config/__init__.py:370
msgid "In cache file, do not importation of Tiramisu and other dependencies"
msgstr ""
#: src/rougail/config/__init__.py:366
#: src/rougail/config/__init__.py:375
msgid "Store Tiramisu cache filename"
msgstr ""
#: src/rougail/config/__init__.py:367
#: src/rougail/config/__init__.py:376
msgid ""
"This file contains the Tiramisu instructions used internally to load the variables.\n"
"\n"
"This file can be used for debugging"
msgstr ""
#: src/rougail/config/__init__.py:377
#: src/rougail/config/__init__.py:386
msgid "Name of internal functions that we can use as a function"
msgstr ""
#: src/rougail/config/__init__.py:383
#: src/rougail/config/__init__.py:392
msgid "Name of extra annotators"
msgstr ""
#: src/rougail/config/__init__.py:389
#: src/rougail/config/__init__.py:398
msgid "Suffix add to generated options name"
msgstr ""
#: src/rougail/config/__init__.py:395
#: src/rougail/config/__init__.py:404
msgid "Every variables in calculation are optionals"
msgstr ""
#: src/rougail/config/__init__.py:399
#: src/rougail/config/__init__.py:408
msgid "Loads redefine variables even if there don't already exists"
msgstr ""
#: src/rougail/config/__init__.py:403
#: src/rougail/config/__init__.py:412
msgid "The secret manager"
msgstr ""
#: src/rougail/config/__init__.py:406
#: src/rougail/config/__init__.py:415
msgid "The secret pattern to constructing the name of the item searched for in the secret manager"
msgstr ""
#: src/rougail/config/__init__.py:407
#: src/rougail/config/__init__.py:416
msgid "The pattern is in Jinja2 format"
msgstr ""
#: src/rougail/config/__init__.py:416
#: src/rougail/config/__init__.py:425
msgid "structural"
msgstr ""
#: src/rougail/config/__init__.py:417
#: src/rougail/config/__init__.py:426
msgid "user datas"
msgstr ""
#: src/rougail/config/__init__.py:418
#: src/rougail/config/__init__.py:427
msgid "output"
msgstr ""
#: src/rougail/config/__init__.py:439
#: src/rougail/config/__init__.py:448
msgid "Select for {0}"
msgstr ""
#: src/rougail/config/__init__.py:477
#: src/rougail/config/__init__.py:486
msgid "outputs {0} did not allow user data"
msgstr ""
#: src/rougail/config/__init__.py:503
#: src/rougail/config/__init__.py:512
msgid "Override default parameters for option type"
msgstr ""
#: src/rougail/config/__init__.py:506
#: src/rougail/config/__init__.py:515
msgid "Default parameters for option type"
msgstr ""
@ -254,31 +262,31 @@ msgstr ""
msgid "unknown type {0} for {1}"
msgstr ""
#: src/rougail/convert/convert.py:419
#: src/rougail/convert/convert.py:444
msgid "family \"{0}\" define multiple time"
msgstr ""
#: src/rougail/convert/convert.py:673
#: src/rougail/convert/convert.py:715
msgid "variable \"{0}\" define multiple time"
msgstr ""
#: src/rougail/convert/convert.py:771
#: src/rougail/convert/convert.py:808 src/rougail/convert/convert.py:815
msgid "params must be a dict for {0}"
msgstr ""
#: src/rougail/convert/convert.py:792
#: src/rougail/convert/convert.py:836
msgid "\"{0}\" has an invalid \"params\" for {1}: {2}"
msgstr ""
#: src/rougail/convert/convert.py:806
#: src/rougail/convert/convert.py:850
msgid "secret_manager must be a dict for {0}"
msgstr ""
#: src/rougail/convert/convert.py:1135
#: src/rougail/convert/convert.py:1190
msgid "Cannot execute annotate multiple time"
msgstr ""
#: src/rougail/convert/convert.py:1142
#: src/rougail/convert/convert.py:1197
msgid "invalid \"structural\" definition ({0}), we cannot load any structural file!"
msgstr ""
@ -291,7 +299,7 @@ msgid "the variable \"{0}\" is in fact a family in attribute \"{1}\" for \"{2}\"
msgstr ""
#: src/rougail/convert/object_model.py:143
#: src/rougail/convert/object_model.py:527
#: src/rougail/convert/object_model.py:528
msgid "unknown object \"{0}\" in attribute \"{1}\" for \"{2}\""
msgstr ""
@ -312,112 +320,112 @@ msgid "the variable \"{0}\" is not a follower, so cannot have index type for par
msgstr ""
#: src/rougail/convert/object_model.py:263
msgid "\"warnings\" are only available with attribute \"{self.attribute_name}\" for variable \"{self.ori_path}\""
msgid "\"warnings\" are only available with attribute \"{self.attribute_name}\" for variable \"{self.path}\""
msgstr ""
#: src/rougail/convert/object_model.py:325
msgid "the variable \"{0}\" has a depreciated return_type \"{1}\", please use \"{2}\" instead in {3}"
msgstr ""
#: src/rougail/convert/object_model.py:415
#: src/rougail/convert/object_model.py:446
#: src/rougail/convert/object_model.py:413
#: src/rougail/convert/object_model.py:447
msgid "variable \"{0}\" has a calculating \"{1}\" with an invalid return_type, should be boolean or string, not \"{2}\""
msgstr ""
#: src/rougail/convert/object_model.py:422
#: src/rougail/convert/object_model.py:424
msgid "the variable \"{0}\" has a return_type \"{1}\", for attribute \"{2}\" but has not description in {3}"
msgstr ""
#: src/rougail/convert/object_model.py:427
#: src/rougail/convert/object_model.py:429
msgid "value is invalid"
msgstr ""
#: src/rougail/convert/object_model.py:522
#: src/rougail/convert/object_model.py:523
msgid "a variable \"{0}\" is needs in attribute \"{1}\" for \"{2}\" but it's a family"
msgstr ""
#: src/rougail/convert/object_model.py:547
#: src/rougail/convert/object_model.py:545
msgid "variable \"{0}\" has an attribute \"{1}\" calculated with the unknown variable \"{2}\""
msgstr ""
#: src/rougail/convert/object_model.py:599
#: src/rougail/convert/object_model.py:593
msgid "the variable \"{0}\" has an invalid \"{1}\" the variable \"{2}\" is in a sub dynamic option"
msgstr ""
#: src/rougail/convert/object_model.py:608
#: src/rougail/convert/object_model.py:602
msgid "the leader \"{0}\" has an invalid \"{1}\" the follower \"{2}\" is a multi"
msgstr ""
#: src/rougail/convert/object_model.py:650
#: src/rougail/convert/object_model.py:644
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" must not be multi"
msgstr ""
#: src/rougail/convert/object_model.py:664
#: src/rougail/convert/object_model.py:658
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must not be a multi or the variable \"{2}\" must be multi"
msgstr ""
#: src/rougail/convert/object_model.py:678
#: src/rougail/convert/object_model.py:672
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable must be a multi or the variable \"{2}\" must not be multi"
msgstr ""
#: src/rougail/convert/object_model.py:692
#: src/rougail/convert/object_model.py:686
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" is multi but is inside a list"
msgstr ""
#: src/rougail/convert/object_model.py:714
#: src/rougail/convert/object_model.py:708
msgid "the variable \"{0}\" is waiting for a list as \"{1}\" but the attribute \"default\" is not a list (\"{2}\")"
msgstr ""
#: src/rougail/convert/object_model.py:718
#: src/rougail/convert/object_model.py:712
msgid "the variable \"{0}\" is not waiting for a list as \"{1}\" but the attribute \"default\" is a list (\"{2}\")"
msgstr ""
#: src/rougail/convert/object_model.py:740
#: src/rougail/convert/object_model.py:737
msgid "\"{0}\" attribut shall not have an \"optional\" attribute without the \"default\" attribute for variable \"{1}\""
msgstr ""
#: src/rougail/convert/object_model.py:762
#: src/rougail/convert/object_model.py:759
msgid "variable \"{0}\" has a default value calculated with \"{1}\" which has incompatible type"
msgstr ""
#: src/rougail/convert/object_model.py:804
#: src/rougail/convert/object_model.py:805
msgid "the variable \"{0}\" is waiting for a boolean as \"{1}\" but the attribute \"default\" is not a boolean (\"{2}\")"
msgstr ""
#: src/rougail/convert/object_model.py:826
#: src/rougail/convert/object_model.py:828
msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\""
msgstr ""
#: src/rougail/convert/object_model.py:831
#: src/rougail/convert/object_model.py:833
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", \"when\" and \"when_not\" cannot set together"
msgstr ""
#: src/rougail/convert/object_model.py:839
#: src/rougail/convert/object_model.py:841
msgid "\"when_not\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\""
msgstr ""
#: src/rougail/convert/object_model.py:850
#: src/rougail/convert/object_model.py:852
msgid "\"when\" or \"when_not\" is mandatory for the not boolean variable \"{0}\" in attribute \"{1}\""
msgstr ""
#: src/rougail/convert/object_model.py:898
#: src/rougail/convert/object_model.py:899
msgid "cannot find variable \"{0}\" for the information \"{1}\" when calculating \"{2}\""
msgstr ""
#: src/rougail/convert/object_model.py:903
#: src/rougail/convert/object_model.py:904
msgid "identifier not allowed for the information \"{0}\" when calculating \"{1}\""
msgstr ""
#: src/rougail/convert/object_model.py:955
#: src/rougail/convert/object_model.py:958
msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\""
msgstr ""
#: src/rougail/convert/object_model.py:961
#: src/rougail/convert/object_model.py:971
#: src/rougail/convert/object_model.py:964
#: src/rougail/convert/object_model.py:974
msgid "the identifier has an invalid attribute \"{0}\", \"when\" and \"when_not\" cannot set together"
msgstr ""
#: src/rougail/convert/object_model.py:997
#: src/rougail/convert/object_model.py:1001
msgid "the variable \"{0}\" is not a follower, so cannot have index type for \"{1}\""
msgstr ""
@ -437,8 +445,7 @@ msgstr ""
msgid "internal error, {0} is not a dynamic variable"
msgstr ""
#: src/rougail/error.py:61 src/rougail/tiramisu.py:235
#: src/rougail/user_data.py:463 src/rougail/user_data.py:466
#: src/rougail/error.py:61 src/rougail/tiramisu.py:237
msgid "{0} in {1}"
msgstr ""
@ -515,262 +522,278 @@ msgstr ""
msgid "string is not in \"__.step.structural\""
msgstr ""
#: src/rougail/tiramisu.py:83
#: src/rougail/tiramisu.py:85
msgid "unknown boolean value \"{0}\""
msgstr ""
#: src/rougail/tiramisu.py:86
#: src/rougail/tiramisu.py:88
msgid "IP must be in CIDR format"
msgstr ""
#: src/rougail/tiramisu.py:87
#: src/rougail/tiramisu.py:89
msgid "private IP are allowed"
msgstr ""
#: src/rougail/tiramisu.py:88
#: src/rougail/tiramisu.py:90
msgid "reserved IP are allowed"
msgstr ""
#: src/rougail/tiramisu.py:91
#: src/rougail/tiramisu.py:93
msgid "network must be in CIDR format"
msgstr ""
#: src/rougail/tiramisu.py:92
#: src/rougail/tiramisu.py:94
msgid "private network are allowed"
msgstr ""
#: src/rougail/tiramisu.py:93
#: src/rougail/tiramisu.py:95
msgid "reserved network are allowed"
msgstr ""
#: src/rougail/tiramisu.py:96
#: src/rougail/tiramisu.py:98
msgid "can be range of port"
msgstr ""
#: src/rougail/tiramisu.py:97
#: src/rougail/tiramisu.py:99
msgid "can have the protocol"
msgstr ""
#: src/rougail/tiramisu.py:98
#: src/rougail/tiramisu.py:100
msgid "port 0 is allowed"
msgstr ""
#: src/rougail/tiramisu.py:99
#: src/rougail/tiramisu.py:101
msgid "well-known ports (1 to 1023) are allowed"
msgstr ""
#: src/rougail/tiramisu.py:100
#: src/rougail/tiramisu.py:102
msgid "registred ports (1024 to 49151) are allowed"
msgstr ""
#: src/rougail/tiramisu.py:101
#: src/rougail/tiramisu.py:103
msgid "private ports (greater than 49152) are allowed"
msgstr ""
#: src/rougail/tiramisu.py:104
#: src/rougail/tiramisu.py:106
msgid "type of domainname"
msgstr ""
#: src/rougail/tiramisu.py:104
#: src/rougail/tiramisu.py:106
msgid "type {0}"
msgstr ""
#: src/rougail/tiramisu.py:105
#: src/rougail/tiramisu.py:107
msgid "the domain name can starts by a dot"
msgstr ""
#: src/rougail/tiramisu.py:106
#: src/rougail/tiramisu.py:108
msgid "the domain name can be a hostname"
msgstr ""
#: src/rougail/tiramisu.py:107
#: src/rougail/tiramisu.py:109
msgid "the domain name can be an IP"
msgstr ""
#: src/rougail/tiramisu.py:108
#: src/rougail/tiramisu.py:110
msgid "the domain name can be network in CIDR format"
msgstr ""
#: src/rougail/tiramisu.py:109
#: src/rougail/tiramisu.py:111
msgid "the domain name must exist"
msgstr ""
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127
msgid "the minimum value"
msgstr ""
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
#: src/rougail/tiramisu.py:121 src/rougail/tiramisu.py:127
msgid "the minimum value is {0}"
msgstr ""
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128
msgid "the maximum value"
msgstr ""
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
#: src/rougail/tiramisu.py:122 src/rougail/tiramisu.py:128
msgid "the maximum value is {0}"
msgstr ""
#: src/rougail/tiramisu.py:135
#: src/rougail/tiramisu.py:137
msgid "minimum characters length for the secret"
msgstr ""
#: src/rougail/tiramisu.py:135
#: src/rougail/tiramisu.py:137
msgid "minimum length for the secret is {0} characters"
msgstr ""
#: src/rougail/tiramisu.py:136
#: src/rougail/tiramisu.py:138
msgid "maximum characters length for the secret"
msgstr ""
#: src/rougail/tiramisu.py:136
#: src/rougail/tiramisu.py:138
msgid "maximum length for the secret is {0} characters"
msgstr ""
#: src/rougail/tiramisu.py:137
#: src/rougail/tiramisu.py:139
msgid "forbidden characters"
msgstr ""
#: src/rougail/tiramisu.py:137
#: src/rougail/tiramisu.py:139
msgid "forbidden characters: {0}"
msgstr ""
#: src/rougail/tiramisu.py:144
#: src/rougail/tiramisu.py:146
msgid "this filename could be a relative path"
msgstr ""
#: src/rougail/tiramisu.py:145
#: src/rougail/tiramisu.py:147
msgid "this file must exist"
msgstr ""
#: src/rougail/tiramisu.py:146
#: src/rougail/tiramisu.py:148
msgid "file type allowed"
msgstr ""
#: src/rougail/tiramisu.py:146
#: src/rougail/tiramisu.py:148
msgid "file type allowed: {0}"
msgstr ""
#: src/rougail/tiramisu.py:436
#: src/rougail/tiramisu.py:438
msgid "cannot calculate the variable \"{0}\""
msgstr ""
#: src/rougail/tiramisu.py:437
#: src/rougail/tiramisu.py:439
msgid "the attribute \"{0}\" in {1} with the parameters \"{2}\" causes the error: {3}"
msgstr ""
#: src/rougail/tiramisu.py:455
#: src/rougail/tiramisu.py:457
msgid "cannot converting the variable \"{0}\""
msgstr ""
#: src/rougail/tiramisu.py:456
#: src/rougail/tiramisu.py:458
msgid "\"{0}\" is an invalid {1}"
msgstr ""
#: src/rougail/tiramisu.py:458
#: src/rougail/tiramisu.py:460
msgid "the attribute \"{0}\" in {1} causes the error: {2}"
msgstr ""
#: src/rougail/user_data.py:103
#: src/rougail/types.py:66
msgid "type is not compatible with leadership family"
msgstr ""
#: src/rougail/types.py:68
msgid "type is not compatible with dynamic family"
msgstr ""
#: src/rougail/user_data.py:104
msgid "{0}, it will be ignored"
msgstr ""
#: src/rougail/user_data.py:154
#: src/rougail/user_data.py:155
msgid "cannot load variable path \"{0}\", the identifier \"{1}\" is not valid in {2}"
msgstr ""
#: src/rougail/user_data.py:238
#: src/rougail/user_data.py:239
msgid "the variable contains secrets and should not be defined in {0}"
msgstr ""
#: src/rougail/user_data.py:277
msgid "loaded from {0}"
#: src/rougail/user_data.py:318
msgid "it's a family so we cannot set the value {0}, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:317
msgid "is a family so we cannot set the value \"{0}\", it has been loading from {1}"
#: src/rougail/user_data.py:322
msgid "it's a family so we cannot set the value {0}, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:321
msgid "is a family so we cannot set the value \"{0}\", it will be ignored when loading from {1}"
#: src/rougail/user_data.py:332
msgid "it's a symlink option so we cannot set the value {0}"
msgstr ""
#: src/rougail/user_data.py:332 src/rougail/user_data.py:337
msgid "{0}, it has been loaded from {1}"
msgstr ""
#: src/rougail/user_data.py:343
msgid "variable or family \"{0}\" does not exist, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:347
msgid "variable or family \"{0}\" does not exist, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:353
msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:357
msgid "\"{0}\" is the name of a dynamic family, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:365
msgid "{0} loaded from {1}"
msgstr ""
#: src/rougail/user_data.py:396
msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}"
msgstr ""
#: src/rougail/user_data.py:400
msgid "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from {3}"
msgstr ""
#: src/rougail/user_data.py:413
msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}"
msgstr ""
#: src/rougail/user_data.py:417
msgid "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading from {4}"
msgstr ""
#: src/rougail/user_data.py:432
msgid "variable has propery {0}, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:436
msgid "variable has property {0}, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:446
msgid "family {0} has property {1}, so cannot access to {2}, it has been loading from {3}"
msgstr ""
#: src/rougail/user_data.py:450
msgid "family {0} has property {1}, so cannot access to {2}, it will be ignored when loading from {3}"
msgstr ""
#: src/rougail/user_data.py:470
#: src/rougail/user_data.py:334 src/rougail/user_data.py:364
#: src/rougail/user_data.py:493 src/rougail/user_data.py:505
#: src/rougail/user_data.py:518
msgid "{0}, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:472
#: src/rougail/user_data.py:336 src/rougail/user_data.py:368
#: src/rougail/user_data.py:497 src/rougail/user_data.py:509
#: src/rougail/user_data.py:520
msgid "{0}, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:477
msgid "the value \"{0}\" is an invalid {1}, {2}"
#: src/rougail/user_data.py:341 src/rougail/user_data.py:346
msgid "{0}, it has been loaded from {1}"
msgstr ""
#: src/rougail/user_data.py:483
#: src/rougail/user_data.py:360
msgid "variable or family \"{0}\" does not exist so cannot load \"{1}\""
msgstr ""
#: src/rougail/user_data.py:377
msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:381
msgid "\"{0}\" is the name of a dynamic family, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:387
msgid "{0} loaded from {1}"
msgstr ""
#: src/rougail/user_data.py:426
msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}"
msgstr ""
#: src/rougail/user_data.py:430
msgid "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from {3}"
msgstr ""
#: src/rougail/user_data.py:443
msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}"
msgstr ""
#: src/rougail/user_data.py:447
msgid "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading from {4}"
msgstr ""
#: src/rougail/user_data.py:462
msgid "variable has propery {0}, it has been loading from {1}"
msgstr ""
#: src/rougail/user_data.py:466
msgid "variable has property {0}, it will be ignored when loading from {1}"
msgstr ""
#: src/rougail/user_data.py:476
msgid "family {0} has property {1}, so cannot access to {2}, it has been loading from {3}"
msgstr ""
#: src/rougail/user_data.py:480
msgid "family {0} has property {1}, so cannot access to {2}, it will be ignored when loading from {3}"
msgstr ""
#: src/rougail/user_data.py:525
msgid "the value {0} is an invalid {1}, {2}"
msgstr ""
#: src/rougail/user_data.py:531
msgid ", it has been loading from {0}"
msgstr ""
#: src/rougail/user_data.py:485
#: src/rougail/user_data.py:533
msgid ", it will be ignored when loading from {0}"
msgstr ""
#: src/rougail/user_data.py:566
msgid "loaded from {0}"
msgstr ""
#: src/rougail/user_data.py:574
msgid "{0} (the search key is \"{1}\")"
msgstr ""
#: src/rougail/utils.py:56
msgid "invalid variable or family name \"{0}\" must only contains lowercase ascii character, number or _"
msgstr ""
@ -779,23 +802,23 @@ msgstr ""
msgid "error for the variable \"{1}\" in jinja \"{0}\": {2}"
msgstr ""
#: src/rougail/utils.py:213
#: src/rougail/utils.py:212
msgid "mandatory"
msgstr ""
#: src/rougail/utils.py:214
#: src/rougail/utils.py:213
msgid "hidden"
msgstr ""
#: src/rougail/utils.py:215
#: src/rougail/utils.py:214
msgid "disabled"
msgstr ""
#: src/rougail/utils.py:216
#: src/rougail/utils.py:215
msgid "unique"
msgstr ""
#: src/rougail/utils.py:217
#: src/rougail/utils.py:216
msgid "auto modified"
msgstr ""

View file

@ -1,6 +1,6 @@
[project]
name = "rougail"
version = "1.2.0a58"
version = "1.2.0a59"
[tool.commitizen]
name = "cz_conventional_commits"

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "rougail-base"
version = "1.2.0a58"
version = "1.2.0a59"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md"
description = "A consistency handling system that was initially designed in the configuration management"

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "rougail"
version = "1.2.0a58"
version = "1.2.0a59"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
description = "A consistency handling system that was initially designed in the configuration management"
classifiers = [
@ -18,7 +18,7 @@ classifiers = [
dependencies = [
"ruamel.yaml ~= 0.18.6",
"pydantic ~= 2.9.2",
"rougail-base == 1.2.0a58",
"rougail-base == 1.2.0a59",
]
[tool.flit.sdist]

View file

@ -1 +1 @@
__version__ = "1.2.0a58"
__version__ = "1.2.0a59"

View file

@ -53,31 +53,52 @@ class Annotator(Walk):
self.objectspace = objectspace
self.frozen = {}
if self.objectspace.paths:
self.convert_leadership()
self.convert_family()
self.convert_variable()
def convert_leadership(self) -> None:
for variable_path in self.objectspace.leaders:
variable = self.objectspace.paths[variable_path]
if variable.hidden:
family = self.objectspace.paths[variable.path.rsplit(".", 1)[0]]
hidden = variable.hidden
if hidden is not True:
hidden = hidden.model_copy()
if hidden.ori_path is None:
hidden.ori_path = variable_path
family.hidden = hidden
variable.hidden = None
def convert_family(self) -> None:
"""convert families"""
for family in self.get_families():
self._convert_property(family)
# collect for force_default_on_freeze
if family.hidden:
if family.hidden is True:
frozen = True
else:
frozen = family.hidden.model_copy()
frozen.attribute_name = "frozen"
if frozen.ori_path is None:
frozen.ori_path = family.path
self.set_variable_frozen(
family.path,
family.hidden,
frozen,
)
def set_variable_frozen(
self,
family_path: str,
hidden: Union[bool, Calculation],
frozen: Union[bool, Calculation],
) -> None:
for variable_path in self.objectspace.parents[family_path]:
if variable_path in self.objectspace.families:
# it's a family
self.set_variable_frozen(
variable_path,
hidden,
frozen,
)
else:
# it's a variable
@ -86,13 +107,16 @@ class Annotator(Walk):
if (
self.frozen.get(variable.path) is True
or variable.hidden is True
or hidden is True
or frozen is True
):
self.frozen[variable.path] = True
elif variable.path in self.frozen:
self.frozen[variable.path].append(hidden)
else:
self.frozen[variable.path] = [hidden]
if variable.path in self.frozen:
if not isinstance(self.frozen[variable.path], list):
self.frozen[variable.path] = [frozen]
self.frozen[variable.path].append(frozen)
else:
self.frozen[variable.path] = frozen
def convert_variable(self) -> None:
"""convert variables"""
@ -114,23 +138,19 @@ class Annotator(Walk):
if variable.hidden is True:
self.frozen[path] = True
elif self.frozen.get(path) is not True:
self.frozen.setdefault(path, []).append(variable.hidden)
frozen = variable.hidden.model_copy()
frozen.attribute_name = "frozen"
if frozen.ori_path is None:
frozen.ori_path = path
if path in self.frozen:
if not isinstance(self.frozen, list):
self.frozen[path] = [self.frozen[path]]
self.frozen[path].append(frozen)
else:
self.frozen[path] = frozen
if path in self.frozen:
frozen = self.frozen[path]
if frozen is True:
value = True
else:
value = []
for calculation in frozen:
calculation_copy = calculation.model_copy()
calculation_copy.attribute_name = "frozen"
# calculation_copy.ori_path = calculation_copy.path
# calculation_copy.path = path
value.append(calculation_copy)
if len(value) == 1:
value = value[0]
self.objectspace.properties.add(path, "frozen", value)
if not variable.auto_save:
self.objectspace.properties.add(path, "frozen", self.frozen[path])
if not variable.auto_save and not variable.secret_manager:
# if auto_save, save calculated value
self.objectspace.properties.add(path, "force_default_on_freeze", True)
if not variable.empty and self.objectspace.multis.get(variable.path, False):

View file

@ -51,8 +51,6 @@ class Walk:
for path in self.objectspace.variables:
yield self.objectspace.paths[path]
# yield from get_variables(self.objectspace)
def get_families(self):
"""Iter all families from the objectspace"""
for path in self.objectspace.families:
@ -178,7 +176,6 @@ class Annotator(Walk): # pylint: disable=R0903
variable.validators.append(
JinjaCalculation(
path=variable.path,
inside_list=True,
version=variable.version,
xmlfiles=variable.xmlfiles,
@ -203,6 +200,8 @@ class Annotator(Walk): # pylint: disable=R0903
)
for idx in reversed(indexes_to_remove):
variable.params.pop(idx)
if variable.secret_manager:
self.objectspace.properties.add(variable.path, "novalidator", True)
def _convert_variable_inference(
self,
@ -242,7 +241,7 @@ class Annotator(Walk): # pylint: disable=R0903
if calculated_variable.multi is None:
if (
isinstance(calculated_variable.default, VariableCalculation)
and variable.path == calculated_variable.default.variable
and variable.path == calculated_variable.path
):
msg = _(
'the "{0}" default value is a calculation with itself'
@ -276,6 +275,12 @@ class Annotator(Walk): # pylint: disable=R0903
variable.params = calculated_variable.params
if variable.type == "choice" and variable.choices is None:
variable.choices = calculated_variable.choices
if isinstance(variable.choices, VariableCalculation):
variable.choices = variable.choices.model_copy()
variable.choices.variable = self.objectspace.paths.get_full_path(
variable.choices.variable,
calculated_variable.path,
)
if variable.type == "regexp" and variable.regexp is None:
variable.regexp = calculated_variable.regexp
@ -297,13 +302,6 @@ class Annotator(Walk): # pylint: disable=R0903
self.objectspace.multis[variable.path] = "submulti"
elif variable.multi:
self.objectspace.multis[variable.path] = True
if variable.path in self.objectspace.leaders:
family = self.objectspace.paths[variable.path.rsplit(".", 1)[0]]
if variable.hidden:
family.hidden = variable.hidden
# elif family.hidden:
# variable.hidden = family.hidden
variable.hidden = None
if variable.regexp is not None and variable.type != "regexp":
msg = _(
'the variable "{0}" has regexp attribut but has not the "regexp" type'

View file

@ -250,7 +250,7 @@ class Calculation(BaseModel):
# path: str
inside_list: bool
version: str
# ori_path: Optional[str] = None
ori_path: Optional[str] = None
default_values: Any = None
namespace: Optional[str]
warnings: Optional[bool] = None
@ -261,15 +261,11 @@ class Calculation(BaseModel):
def get_params(self, objectspace, path):
if self.warnings is not None and self.attribute_name != "validators":
msg = _(
'"warnings" are only available with attribute "{self.attribute_name}" for variable "{self.ori_path}"'
'"warnings" are only available with attribute "{self.attribute_name}" for variable "{self.path}"'
)
raise DictConsistencyError(msg, 83, xmlfiles)
if not self.params:
return {}
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
params = {}
for param_obj in self.params:
param = param_obj.to_param(
@ -315,12 +311,15 @@ class JinjaCalculation(Calculation):
add_help=False,
params: Optional[dict] = None,
):
variable = objectspace.paths[path]
internal_variable = path
jinja_path = f"{self.attribute_name}_{path}"
idx = 0
while jinja_path in objectspace.jinja:
jinja_path = f"{self.attribute_name}_{path}_{idx}"
idx += 1
if self.ori_path is not None:
path = self.ori_path
variable = objectspace.paths[path]
objectspace.jinja[jinja_path] = self.jinja
if return_type in RENAME_TYPE:
warning = _('the variable "{0}" has a depreciated return_type "{1}", please use "{2}" instead in {3}')
@ -338,7 +337,7 @@ class JinjaCalculation(Calculation):
"__internal_multi": multi,
"__internal_files": self.xmlfiles,
"__internal_attribute": self.attribute_name,
"__internal_variable": path,
"__internal_variable": internal_variable,
},
}
if self.default_values:
@ -349,10 +348,6 @@ class JinjaCalculation(Calculation):
default["params"] |= self.get_params(objectspace, path)
if params:
default["params"] |= params
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
if self.warnings:
default["warnings_only"] = True
for sub_variable, identifier, true_path in get_jinja_variable_to_param(
@ -389,6 +384,8 @@ class JinjaCalculation(Calculation):
path,
) -> dict:
if self.attribute_name in ["default", "secret_manager"]:
if self.ori_path is not None:
path = self.ori_path
if self.return_type:
raise Exception("return_type not allowed!")
variable = objectspace.paths[path]
@ -411,10 +408,8 @@ class JinjaCalculation(Calculation):
if return_type is None:
return_type = "string"
if return_type not in ["string", "boolean"]:
# if self.ori_path is None:
# path = path
# else:
# path = self.ori_path
if self.ori_path is not None:
path = self.ori_path
msg = _(
'variable "{0}" has a calculating "{1}" with an invalid return_type, should be boolean or string, not "{2}"'
).format(path, self.attribute_name, return_type)
@ -422,9 +417,13 @@ class JinjaCalculation(Calculation):
if return_type == 'boolean':
description = self.description
if description is None:
if self.ori_path is not None:
opath = self.ori_path
else:
opath = path
warning = _('the variable "{0}" has a return_type "{1}", for attribute "{2}" but has not description in {3}')
warn(
warning.format(path, return_type, self.attribute_name, display_xmlfiles(self.xmlfiles)),
warning.format(opath, return_type, self.attribute_name, display_xmlfiles(self.xmlfiles)),
RougailWarning,
)
self.description = _('value is invalid')
@ -443,10 +442,8 @@ class JinjaCalculation(Calculation):
if return_type is None:
return_type = "string"
if return_type not in ["string", "boolean"]:
# if self.ori_path is None:
# path = .path
# else:
# path = self.ori_path
if self.ori_path is not None:
path = self.ori_path
msg = _(
'variable "{0}" has a calculating "{1}" with an invalid return_type, should be boolean or string, not "{2}"'
).format(path, self.attribute_name, return_type)
@ -501,10 +498,6 @@ class _VariableCalculation(Calculation):
objectspace,
path,
) -> "Variable":
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
if self.version != "1.0" and objectspace.paths.regexp_relative.search(
self.variable
):
@ -549,10 +542,6 @@ class _VariableCalculation(Calculation):
):
if not variable_in_calculation:
if not objectspace.force_optional:
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
msg = _(
'variable "{0}" has an attribute "{1}" calculated with the unknown variable "{2}"'
).format(path, self.attribute_name, self.variable)
@ -589,10 +578,6 @@ class _VariableCalculation(Calculation):
def check_multi(
self, objectspace, path, variable_in_calculation_path, variable_in_calculation
):
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
local_variable = objectspace.paths[path]
local_variable_multi, variable_in_calculation_multi = (
calc_multi_for_type_variable(
@ -742,6 +727,8 @@ class VariableCalculation(_VariableCalculation):
objectspace,
path,
) -> dict:
if self.ori_path is not None:
path = self.ori_path
if (
self.attribute_name != "default"
and self.optional
@ -760,7 +747,7 @@ class VariableCalculation(_VariableCalculation):
self.optional or objectspace.force_optional
):
if self.default is not undefined:
return self.get_default_value_optional(objectspace, self.default)
return self.get_default_value_optional(objectspace, path, self.default)
if self.default_values is not None:
return self.default_values
raise VariableCalculationDependencyError()
@ -798,6 +785,8 @@ class VariablePropertyCalculation(_VariableCalculation):
objectspace,
path,
) -> dict:
if self.ori_path is not None:
path = self.ori_path
(
variable_in_calculation_path,
variable_in_calculation,
@ -818,7 +807,7 @@ class VariablePropertyCalculation(_VariableCalculation):
)
msg = msg.format(path, self.attribute_name, default)
raise DictConsistencyError(msg, 79, self.xmlfiles)
return self.get_default_value_optional(objectspace, default)
return self.get_default_value_optional(objectspace, path, default)
params = self.get_params(
objectspace,
path,
@ -887,6 +876,8 @@ class InformationCalculation(Calculation):
objectspace,
path,
) -> dict:
if self.ori_path is not None:
path = self.ori_path
params = {
None: [
{
@ -896,10 +887,6 @@ class InformationCalculation(Calculation):
]
}
if self.variable:
# if self.ori_path is None:
# path = self.path
# else:
# path = self.ori_path
variable, identifier = objectspace.paths.get_with_dynamic(
self.variable,
path,
@ -965,6 +952,7 @@ class IdentifierPropertyCalculation(_IdentifierCalculation):
def to_function(
self,
objectspace,
path,
) -> dict:
if self.version == "1.0":
msg = _(

View file

@ -272,13 +272,6 @@ class UserData:
if path != option.path():
self.values[option.path()] = self.values.pop(values_path)
else:
if "source" in self.values[values_path]:
option_without_index.information.set(
"loaded_from",
_("loaded from {0}").format(
self.values[values_path]["source"]
),
)
# value is correctly set, remove variable to the set
if index is not None:
# if it's a follower waiting for all followers are sets
@ -365,7 +358,7 @@ class UserData:
subconfig = self.config.option(parent_path)
subconfig._set_subconfig()
err_msg = _(
'variable or family "{0}" does not exist so cannot load "{1}'
'variable or family "{0}" does not exist so cannot load "{1}"'
).format(child_name, path)
if self.unknown_user_data_error:
msg = _(
@ -401,7 +394,10 @@ class UserData:
if not isinstance(value, tuple):
indexes = range(len(value))
else:
indexes = range(len(option.parent().leader().value.get()))
try:
indexes = range(len(option.parent().leader().value.get()))
except:
continue
values = value
else:
indexes = [None]
@ -544,9 +540,11 @@ class UserData:
def set_value(self, option, value, options, index):
is_secret_manager = options.get("secret_manager", False)
option_without_index = option
if is_secret_manager and isinstance(value, tuple):
# it's a function
params = tuple([ParamValue(val) for val in value[1:]])
option.information.set('secret_manager', True)
if index is not None:
option = option.forcepermissive.index(index)
value = Calculation(value[0], Params(params, kwargs={"option": ParamValue(option)}))
@ -559,6 +557,25 @@ class UserData:
option.value.set(value)
if add_validation:
option.property.add("validator")
path = option.path()
if "source" in self.values[path]:
if option.isfollower():
key = f"loaded_from_{index}"
else:
key = "loaded_from"
value = _("loaded from {0}").format(
self.values[path]["source"]
)
if options.get("secret_manager"):
# FIXME (true_config ???)
default = option.value.default()
if option.isleader():
default = default[0]
value = _('{0} (the search key is "{1}")').format(value, default)
option_without_index.information.set(
key,
value,
)
def convert_value(option, value, needs_convert):

View file

@ -128,7 +128,6 @@ def get_jinja_variable_to_param(
break
else:
unknown_variables.append(variable_path)
for variable_path in unknown_variables:
for v in founded_variables:
if get_common_path(v, variable_path) == v:

View file

@ -0,0 +1,16 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_2 = BoolOption(name="condition", doc="a condition", default=True, properties=frozenset({"disabled", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5disabled_calculation_variable11/rougail/00-base.yml'], 'type': 'boolean'})
option_3 = StrOption(name="variable", doc="a variable", properties=frozenset({"basic", "mandatory", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_2, raisepropertyerror=True), 'prop': ParamValue("disabled"), 'when': ParamValue(True), 'inverse': ParamValue(False)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['../rougail-tests/structures/04_5disabled_calculation_variable11/rougail/00-base.yml'], 'type': 'string'})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, option_3], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,15 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
load_functions('../rougail-tests/funcs/test.py')
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_1 = BoolOption(name="condition", doc="a condition", default=True, properties=frozenset({"disabled", "mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/04_5disabled_calculation_variable11/rougail/00-base.yml'], 'type': 'boolean'})
option_2 = StrOption(name="variable", doc="a variable", properties=frozenset({"basic", "mandatory", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_1, raisepropertyerror=True), 'prop': ParamValue("disabled"), 'when': ParamValue(True), 'inverse': ParamValue(False)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['../rougail-tests/structures/04_5disabled_calculation_variable11/rougail/00-base.yml'], 'type': 'string'})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_2])

View file

@ -12,10 +12,10 @@ ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
dict_env['frozen_rougail.leader.leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['frozen_rougail.leader.follower'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['hidden_rougail.leader.leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['hidden_rougail.leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
option_2 = StrOption(name="condition", doc="a condition", default="no", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
option_4 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("rougail.leader.leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
option_5 = StrOption(name="follower", doc="a follower", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("frozen"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("frozen_rougail.leader.follower"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("rougail.leader.follower"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
optiondescription_3 = Leadership(name="leader", doc="a leadership", children=[option_4, option_5], properties=frozenset({"basic", Calculation(func['jinja_to_property'], Params((ParamValue("hidden"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("rougail.leader.leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']})
optiondescription_3 = Leadership(name="leader", doc="a leadership", children=[option_4, option_5], properties=frozenset({"basic", Calculation(func['jinja_to_property'], Params((ParamValue("hidden"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("hidden_rougail.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("rougail.leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_2, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="Rougail", group_type=groups.namespace, children=[option_2, optiondescription_3], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -12,9 +12,9 @@ ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
dict_env['frozen_leader.leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['frozen_leader.follower'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['hidden_leader.leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
dict_env['hidden_leader'] = "{% if __.condition == \"no\" %}\ncondition is no\n{% endif %}\n"
option_1 = StrOption(name="condition", doc="a condition", default="no", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
option_3 = StrOption(name="leader", doc="a leader", multi=True, properties=frozenset({"force_default_on_freeze", "standard", Calculation(func['jinja_to_property'], Params((ParamValue("frozen"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("frozen_leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("leader.leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_1, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
option_4 = StrOption(name="follower", doc="a follower", multi=True, properties=frozenset({"basic", "force_default_on_freeze", "mandatory", Calculation(func['jinja_to_property'], Params((ParamValue("frozen"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("frozen_leader.follower"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("frozen"), '__internal_variable': ParamValue("leader.follower"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_1, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml'], 'type': 'string'})
optiondescription_2 = Leadership(name="leader", doc="a leadership", children=[option_3, option_4], properties=frozenset({"basic", Calculation(func['jinja_to_property'], Params((ParamValue("hidden"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("hidden_leader.leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("leader.leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_1, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']})
optiondescription_2 = Leadership(name="leader", doc="a leadership", children=[option_3, option_4], properties=frozenset({"basic", Calculation(func['jinja_to_property'], Params((ParamValue("hidden"), ParamValue("if condition is no")), kwargs={'__internal_jinja': ParamValue("hidden_leader"), '__internal_type': ParamValue("string"), '__internal_multi': ParamValue(False), '__internal_files': ParamValue(['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']), '__internal_attribute': ParamValue("hidden"), '__internal_variable': ParamValue("leader"), 'when': ParamValue(True), 'inverse': ParamValue(False), '__.condition': ParamOption(option_1, notraisepropertyerror=True)}), help_function=func['jinja_to_property_help'])}), informations={'ymlfiles': ['../rougail-tests/structures/44_5leadership_leader_hidden_calculation/rougail/00-base.yml']})
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, optiondescription_2])

View file

@ -44,12 +44,7 @@ def type_variable(test_name):
loaded_configuration = load(fh)
assert loaded_configuration == loads(dumps(configuration)), f"error in file {variables_file}"
#
print('--------------')
print('--------------')
print('--------------')
print(config.value.get())
config.property.read_write()
print(config.value.get())
variables_file = result / "variables_rw.json"
configuration = dict(config_to_dict(config.value.get()))
if not variables_file.is_file():

View file

@ -0,0 +1,3 @@
{
"rougail.my_family.my_type": "a value"
}

View file

@ -0,0 +1,8 @@
{
"rougail.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,8 @@
{
"rougail.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_1.a_sub_family.a_second_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_sub_family.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_sub_family.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,3 @@
{
"rougail.my_var": "a value"
}

View file

@ -0,0 +1,22 @@
from tiramisu import *
from tiramisu.setting import ALLOWED_LEADER_PROPERTIES
from re import compile as re_compile
from rougail.tiramisu import func, dict_env, load_functions, ConvertDynOptionDescription
try:
groups.namespace
except:
groups.addgroup('namespace')
ALLOWED_LEADER_PROPERTIES.add("basic")
ALLOWED_LEADER_PROPERTIES.add("standard")
ALLOWED_LEADER_PROPERTIES.add("advanced")
option_3 = StrOption(name="a_first_variable", doc="a first variable", default="a modified value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
option_4 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_3), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_3), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_2 = OptionDescription(name="my_family_1", doc="My family type", children=[option_3, option_4], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
option_6 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
option_7 = StrOption(name="a_second_variable", doc="a second variable", properties=frozenset({"basic", "force_default_on_freeze", "mandatory", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_6), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_6), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_5 = OptionDescription(name="my_family_2", doc="My family type", children=[option_6, option_7], properties=frozenset({"basic"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
option_9 = StrOption(name="a_first_variable", doc="a first variable", default="a value", properties=frozenset({"mandatory", "standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml'], 'type': 'string'})
option_10 = StrOption(name="a_second_variable", doc="a second variable", default="a modified value 2", properties=frozenset({"force_default_on_freeze", "mandatory", "standard", Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("hidden"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property']), Calculation(func['variable_to_property'], Params((), kwargs={'value': ParamOption(option_9), 'prop': ParamValue("frozen"), 'when': ParamValue("a value"), 'inverse': ParamValue(True)}), help_function=func['variable_to_property'])}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml'], 'type': 'string'})
optiondescription_8 = OptionDescription(name="my_family_3", doc="My family type", children=[option_9, option_10], properties=frozenset({"standard"}), informations={'ymlfiles': ['tests/types/types/variable_hidden/00_structure.yml', 'tests/types/structures/variable_hidden/00_structure.yml']})
optiondescription_1 = OptionDescription(name="rougail", doc="rougail", group_type=groups.namespace, children=[optiondescription_2, optiondescription_5, optiondescription_8], properties=frozenset({"basic"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_1])

View file

@ -0,0 +1,7 @@
{
"rougail.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,7 @@
{
"rougail.my_family_1.a_first_variable": "a modified value",
"rougail.my_family_2.a_first_variable": "a value",
"rougail.my_family_2.a_second_variable": null,
"rougail.my_family_3.a_first_variable": "a value",
"rougail.my_family_3.a_second_variable": "a modified value 2"
}

View file

@ -0,0 +1,5 @@
{
"rougail.my_var1": "a value",
"rougail.my_var2": "a value",
"rougail.my_var3": null
}