From 09f2e51c3cbfb65e64bebfde3961e19e044c30a1 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 4 Jan 2026 19:13:34 +0100 Subject: [PATCH] feat: add cli.root option to limit output from a specified family --- README.fr.md | 31 ++++----- README.md | 9 +-- locale/fr/LC_MESSAGES/rougail_cli.po | 62 ++++++++++++------ locale/rougail_cli.pot | 54 +++++++++------ src/rougail/cli/__main__.py | 15 ++++- src/rougail/cli/config.py | 14 +++- .../cli/locale/fr/LC_MESSAGES/rougail_cli.mo | Bin 4156 -> 5108 bytes 7 files changed, 123 insertions(+), 62 deletions(-) diff --git a/README.fr.md b/README.fr.md index 9305f54..2e3aaf1 100644 --- a/README.fr.md +++ b/README.fr.md @@ -11,20 +11,21 @@ include_toc: true > Il est possible d'utiliser Rougail directement en ligne de commande. Il est possible de définir et configurer facilement les données utilisateur chargées, ainsi que la définition de la sortie souhaité.\ > **Chemin** : cli -| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | -|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| -| **cli.config_file**
**Variable d'environnement** : CLI.CONFIG_FILE | Charger les paramètres de la ligne de commande depuis un fichier. | • .rougailcli.yml | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | | • le nom de fichier peut être une chemin relatif
• type de fichier autorisé: "fichier" et "répertoire". | -| **cli.debug**
**Ligne de commande** :
• --cli.debug
• --cli.no-debug
**Variable d'environnement** : CLI.DEBUG | Afficher les informations de debug. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.warnings**
**Ligne de commande** :
• --cli.warnings
• --cli.no-warnings
**Variable d'environnement** : CLI.WARNINGS | Afficher les avertissements de chargement des options de la ligne de commande. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.versions**
**Ligne de commande** :
• --cli.versions
• --cli.no-versions
**Variable d'environnement** : CLI.VERSIONS | Afficher la version de Rougail et de tous ces composants. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.invalid_user_data_error**
**Ligne de commande** :
• --cli.invalid_user_data_error
• --cli.no-invalid_user_data_error
**Variable d'environnement** : CLI.INVALID_USER_DATA_ERROR | Les valeurs invalides dans les données utilisateur ne sont pas autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.unknown_user_data_error**
**Ligne de commande** :
• --cli.unknown_user_data_error
• --cli.no-unknown_user_data_error
**Variable d'environnement** : CLI.UNKNOWN_USER_DATA_ERROR | Les variables inconnues dans les données utilisateur ne sont pas autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.layers**
**Ligne de commande** :
• --cli.layers
• --cli.no-layers
**Variable d'environnement** : CLI.LAYERS | Charger chaque données utilisateurs dans des couches séparées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`cachée`*
**Cachée** : si seulement un type de données utilisateur est renseigné dans "[Sélection pour données utilisateur](#step.user_data)" | | -| **cli.load_from_tiramisu_cache**
**Ligne de commande** :
• --cli.load_from_tiramisu_cache
• --cli.no-load_from_tiramisu_cache
**Variable d'environnement** : CLI.LOAD_FROM_TIRAMISU_CACHE | Utiliser le cache pour charger les objets Tiramisu.
Il sera chargé à partir du cache uniquement si celui-ci existe déjà. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*
**Désactivé** : lorsque la variable "[Enregistrer le cache Tiramisu dans le fichier](#tiramisu_cache)" a la valeur "null" | | -| **cli.read_write**
**Ligne de commande** :
• --cli.read_write
• --cli.no-read_write
**Variable d'environnement** : CLI.READ_WRITE | La configuration dans l'état de sortie est dans mode lecture-écriture. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | -| **cli.description_type**
**Ligne de commande** :
--cli.description_type
**Variable d'environnement** : CLI.DESCRIPTION_TYPE | Type de description des variables.
Pour identifier les différentes variables, on utilise la description de la variable. Il y a quatre type de descriptions:
- name_and_description : qui contient le nom de la variable suivi de sa description - path : le chemin de la variable - name : le nom de la variable - description : la description de la variable. | description | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | **Choix** :
• path_and_description
• name_and_description
• path
• name
• description | -| **cli.inaccessible_read_only_modes**
**Ligne de commande** :
--cli.inaccessible_read_only_modes
**Variable d'environnement** : CLI.INACCESSIBLE_READ_ONLY_MODES | Modes quoi doivent être inaccessible en mode lecture seule. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | -| **cli.inaccessible_read_write_modes**
**Ligne de commande** :
--cli.inaccessible_read_write_modes
**Variable d'environnement** : CLI.INACCESSIBLE_READ_WRITE_MODES | Modes quoi doivent être inaccessible en mode lecture-écriture. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | -| **cli.inaccessible_modes**
**Ligne de commande** :
--cli.inaccessible_modes
**Variable d'environnement** : CLI.INACCESSIBLE_MODES | Modes quoi doivent être inaccessible. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | +| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur | +|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| +| **cli.config_file**
**Variable d'environnement** : CLI.CONFIG_FILE | Charger les paramètres de la ligne de commande depuis un fichier. | • .rougailcli.yml | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | | • le nom de fichier peut être une chemin relatif
• type de fichier autorisé: "fichier" et "répertoire". | +| **cli.debug**
**Ligne de commande** :
• --cli.debug
• --cli.no-debug
**Variable d'environnement** : CLI.DEBUG | Afficher les informations de debug. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.warnings**
**Ligne de commande** :
• --cli.warnings
• --cli.no-warnings
**Variable d'environnement** : CLI.WARNINGS | Afficher les avertissements de chargement des options de la ligne de commande. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.versions**
**Ligne de commande** :
• --cli.versions
• --cli.no-versions
**Variable d'environnement** : CLI.VERSIONS | Afficher la version de Rougail et de tous ces composants. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.invalid_user_data_error**
**Ligne de commande** :
• --cli.invalid_user_data_error
• --cli.no-invalid_user_data_error
**Variable d'environnement** : CLI.INVALID_USER_DATA_ERROR | Les valeurs invalides dans les données utilisateur ne sont pas autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.unknown_user_data_error**
**Ligne de commande** :
• --cli.unknown_user_data_error
• --cli.no-unknown_user_data_error
**Variable d'environnement** : CLI.UNKNOWN_USER_DATA_ERROR | Les variables inconnues dans les données utilisateur ne sont pas autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.layers**
**Ligne de commande** :
• -cl, --cli.layers
• -ncl, --cli.no-layers
**Variable d'environnement** : CLI.LAYERS | Charger chaque données utilisateurs dans des couches séparées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`cachée`*
**Cachée** : si seulement un type de données utilisateur est renseigné dans "[Sélection pour données utilisateur](#step.user_data)" | | +| **cli.load_from_tiramisu_cache**
**Ligne de commande** :
• --cli.load_from_tiramisu_cache
• --cli.no-load_from_tiramisu_cache
**Variable d'environnement** : CLI.LOAD_FROM_TIRAMISU_CACHE | Utiliser le cache pour charger les objets Tiramisu.
Il sera chargé à partir du cache uniquement si celui-ci existe déjà.

Attention, certain données utilisateur ou sortie peuvent changer la manière dont sont chargés les fichiers de structure (c'est notamment le cas avec la sortie doc). Il est préférable de n'utiliser le cache pour le même type de données utilisateur et sortie. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | *`désactivé`*
**Désactivé** : lorsque la variable "[Enregistrer le cache Tiramisu dans le fichier](#tiramisu_cache)" a la valeur "null" | | +| **cli.root**
**Ligne de commande** :
-cr, --cli.root
**Variable d'environnement** : CLI.ROOT | Utiliser la sortie uniquement pour les variables enfants de la famille.
Par défaut, toutes les variables accessible sont inclus dans la sortie. Il est possible de définir la famille a partir de laquelle la sortie devra être générée. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | | | +| **cli.read_write**
**Ligne de commande** :
• --cli.read_write
• --cli.no-read_write
**Variable d'environnement** : CLI.READ_WRITE | La configuration dans l'état de sortie est dans mode lecture-écriture. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | | +| **cli.description_type**
**Ligne de commande** :
-cd, --cli.description_type
**Variable d'environnement** : CLI.DESCRIPTION_TYPE | Type de description des variables.
Pour identifier les différentes variables, on utilise la description de la variable. Il y a quatre type de descriptions:
- name_and_description : qui contient le nom de la variable suivi de sa description - path : le chemin de la variable - name : le nom de la variable - description : la description de la variable. | description | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | | **Choix** :
• path_and_description
• name_and_description
• path
• name
• description | +| **cli.inaccessible_read_only_modes**
**Ligne de commande** :
--cli.inaccessible_read_only_modes
**Variable d'environnement** : CLI.INACCESSIBLE_READ_ONLY_MODES | Modes quoi doivent être inaccessible en mode lecture seule. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | +| **cli.inaccessible_read_write_modes**
**Ligne de commande** :
--cli.inaccessible_read_write_modes
**Variable d'environnement** : CLI.INACCESSIBLE_READ_WRITE_MODES | Modes quoi doivent être inaccessible en mode lecture-écriture. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | +| **cli.inaccessible_modes**
**Ligne de commande** :
-ci, --cli.inaccessible_modes
**Variable d'environnement** : CLI.INACCESSIBLE_MODES | Modes quoi doivent être inaccessible. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`désactivé`*
**Désactivé** : si aucun mode n'est défini dans "[Tous les niveaux de modes valides](#modes_level)" | `unique`
Un mode doit exister dans "[Tous les niveaux de modes valides](#modes_level)". | diff --git a/README.md b/README.md index a9314bb..7a400e2 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,13 @@ include_toc: true | **cli.versions**
**Command line**:
• --cli.versions
• --cli.no-versions
**Environment variable**: CLI.VERSIONS | Displays Rougail version and all its components. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **cli.invalid_user_data_error**
**Command line**:
• --cli.invalid_user_data_error
• --cli.no-invalid_user_data_error
**Environment variable**: CLI.INVALID_USER_DATA_ERROR | Invalid value in user data is not allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | | **cli.unknown_user_data_error**
**Command line**:
• --cli.unknown_user_data_error
• --cli.no-unknown_user_data_error
**Environment variable**: CLI.UNKNOWN_USER_DATA_ERROR | Unknown variable in user data is not allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | -| **cli.layers**
**Command line**:
• --cli.layers
• --cli.no-layers
**Environment variable**: CLI.LAYERS | Open each user data in separate layers. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`hidden`*
**Hidden**: if only one user data is set in "[Select for user datas](#step.user_data)" | | -| **cli.load_from_tiramisu_cache**
**Command line**:
• --cli.load_from_tiramisu_cache
• --cli.no-load_from_tiramisu_cache
**Environment variable**: CLI.LOAD_FROM_TIRAMISU_CACHE | Use cache for load Tiramisu objects.
It will only be loaded from the cache if it already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*
**Disabled**: when the variable "[Store Tiramisu cache filename](#tiramisu_cache)" has the value "null" | | +| **cli.layers**
**Command line**:
• -cl, --cli.layers
• -ncl, --cli.no-layers
**Environment variable**: CLI.LAYERS | Open each user data in separate layers. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`hidden`*
**Hidden**: if only one user data is set in "[Select for user datas](#step.user_data)" | | +| **cli.load_from_tiramisu_cache**
**Command line**:
• --cli.load_from_tiramisu_cache
• --cli.no-load_from_tiramisu_cache
**Environment variable**: CLI.LOAD_FROM_TIRAMISU_CACHE | Use cache for load Tiramisu objects.
It will only be loaded from the cache if it already exists

Note that certain user data or output can change how structure files are loaded (this is particularly true for the doc output). It is best to use the cache only for the same type of user data and output. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | *`disabled`*
**Disabled**: when the variable "[Store Tiramisu cache filename](#tiramisu_cache)" has the value "null" | | +| **cli.root**
**Command line**:
-cr, --cli.root
**Environment variable**: CLI.ROOT | Use output only for the children variables of the family.
By default, all accessible variables are included in output. It is possible to define the family from which the output should be generated. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | | | | **cli.read_write**
**Command line**:
• --cli.read_write
• --cli.no-read_write
**Environment variable**: CLI.READ_WRITE | Configuration in output step is in read_write mode. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | -| **cli.description_type**
**Command line**:
--cli.description_type
**Environment variable**: CLI.DESCRIPTION_TYPE | Type of variables description.
To identify different variables, we use the variable description. There are four types of description:
- path_and_description: which contains the variable path followed by its description - name_and_description: which contains the variable name followed by its description - path: the variable's path - name: the variable name - description: the variable's description. | description | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | **Choices**:
• path_and_description
• name_and_description
• path
• name
• description | +| **cli.description_type**
**Command line**:
-cd, --cli.description_type
**Environment variable**: CLI.DESCRIPTION_TYPE | Type of variables description.
To identify different variables, we use the variable description. There are four types of description:
- path_and_description: which contains the variable path followed by its description - name_and_description: which contains the variable name followed by its description - path: the variable's path - name: the variable name - description: the variable's description. | description | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | **Choices**:
• path_and_description
• name_and_description
• path
• name
• description | | **cli.inaccessible_read_only_modes**
**Command line**:
--cli.inaccessible_read_only_modes
**Environment variable**: CLI.INACCESSIBLE_READ_ONLY_MODES | Modes that should not be accessible in read_only mode. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`disabled`*
**Disabled**: if any mode is set in "[All modes level available](#modes_level)" | `unique`
Mode must exists in "[All modes level available](#modes_level)". | | **cli.inaccessible_read_write_modes**
**Command line**:
--cli.inaccessible_read_write_modes
**Environment variable**: CLI.INACCESSIBLE_READ_WRITE_MODES | Modes that should not be accessible in read_write mode. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`disabled`*
**Disabled**: if any mode is set in "[All modes level available](#modes_level)" | `unique`
Mode must exists in "[All modes level available](#modes_level)". | -| **cli.inaccessible_modes**
**Command line**:
--cli.inaccessible_modes
**Environment variable**: CLI.INACCESSIBLE_MODES | Modes that should not be accessible. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`disabled`*
**Disabled**: if any mode is set in "[All modes level available](#modes_level)" | `unique`
Mode must exists in "[All modes level available](#modes_level)". | +| **cli.inaccessible_modes**
**Command line**:
-ci, --cli.inaccessible_modes
**Environment variable**: CLI.INACCESSIBLE_MODES | Modes that should not be accessible. | | [`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | *`disabled`*
**Disabled**: if any mode is set in "[All modes level available](#modes_level)" | `unique`
Mode must exists in "[All modes level available](#modes_level)". | diff --git a/locale/fr/LC_MESSAGES/rougail_cli.po b/locale/fr/LC_MESSAGES/rougail_cli.po index cb7bd92..de2beca 100644 --- a/locale/fr/LC_MESSAGES/rougail_cli.po +++ b/locale/fr/LC_MESSAGES/rougail_cli.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2026-01-03 13:01+0100\n" -"PO-Revision-Date: 2026-01-03 13:01+0100\n" +"POT-Creation-Date: 2026-01-04 19:05+0100\n" +"PO-Revision-Date: 2026-01-04 19:07+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -16,11 +16,11 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 3.8\n" -#: src/rougail/cli/__main__.py:248 +#: src/rougail/cli/__main__.py:253 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "ne peut trouve le module \"user_data\" \"{0}\"" -#: src/rougail/cli/__main__.py:256 +#: src/rougail/cli/__main__.py:261 msgid "" "interactive user data \"{0}\" is loader before uninteractive user data " "\"{1}\"" @@ -28,11 +28,11 @@ msgstr "" "les données utilisateur interactifs \"{0}\" sont chargées avant les données " "utilisateur non interactif \"{1}\"" -#: src/rougail/cli/__main__.py:292 +#: src/rougail/cli/__main__.py:297 msgid "cannot find cli file for \"output_name\" module \"{0}\"" msgstr "ne peut trouve le fichier cli pour le module \"output_name\" \"{0}\"" -#: src/rougail/cli/__main__.py:317 +#: src/rougail/cli/__main__.py:328 msgid "ERROR: {0}" msgstr "ERREUR : {0}" @@ -81,29 +81,53 @@ msgstr "" msgid "Open each user data in separate layers" msgstr "Charger chaque données utilisateurs dans des couches séparées" -#: src/rougail/cli/config.py:57 +#: src/rougail/cli/config.py:58 msgid "if only one user data is set in \"__.step.user_data\"" msgstr "" "si seulement un type de données utilisateur est renseigné dans " "\"__.step.user_data\"" -#: src/rougail/cli/config.py:64 +#: src/rougail/cli/config.py:65 msgid "Use cache for load Tiramisu objects" msgstr "Utiliser le cache pour charger les objets Tiramisu" -#: src/rougail/cli/config.py:65 +#: src/rougail/cli/config.py:67 msgid "It will only be loaded from the cache if it already exists" msgstr "Il sera chargé à partir du cache uniquement si celui-ci existe déjà." -#: src/rougail/cli/config.py:71 +#: src/rougail/cli/config.py:69 +msgid "" +"Note that certain user data or output can change how structure files are " +"loaded (this is particularly true for the doc output). It is best to use the " +"cache only for the same type of user data and output." +msgstr "" +"Attention, certain données utilisateur ou sortie peuvent changer la manière " +"dont sont chargés les fichiers de structure (c'est notamment le cas avec la " +"sortie doc). Il est préférable de n'utiliser le cache pour le même type de " +"données utilisateur et sortie." + +#: src/rougail/cli/config.py:76 +msgid "Use output only for the children variables of the family" +msgstr "Utiliser la sortie uniquement pour les variables enfants de la famille" + +#: src/rougail/cli/config.py:77 +msgid "" +"By default, all accessible variables are included in output. It is possible " +"to define the family from which the output should be generated." +msgstr "" +"Par défaut, toutes les variables accessible sont inclus dans la sortie. Il " +"est possible de définir la famille a partir de laquelle la sortie devra être " +"générée." + +#: src/rougail/cli/config.py:81 msgid "Configuration in output step is in read_write mode" msgstr "La configuration dans l'état de sortie est dans mode lecture-écriture" -#: src/rougail/cli/config.py:74 +#: src/rougail/cli/config.py:84 msgid "Type of variables description" msgstr "Type de description des variables" -#: src/rougail/cli/config.py:76 +#: src/rougail/cli/config.py:87 msgid "" "To identify different variables, we use the variable description. There are " "four types of description:\n" @@ -125,25 +149,25 @@ msgstr "" " - name : le nom de la variable\n" " - description : la description de la variable" -#: src/rougail/cli/config.py:92 +#: src/rougail/cli/config.py:103 msgid "Modes that should not be accessible in read_only mode" msgstr "Modes quoi doivent être inaccessible en mode lecture seule" -#: src/rougail/cli/config.py:99 src/rougail/cli/config.py:116 -#: src/rougail/cli/config.py:133 +#: src/rougail/cli/config.py:110 src/rougail/cli/config.py:127 +#: src/rougail/cli/config.py:145 msgid "if any mode is set in \"modes_level\"" msgstr "si aucun mode n'est défini dans \"modes_level\"" -#: src/rougail/cli/config.py:106 src/rougail/cli/config.py:123 -#: src/rougail/cli/config.py:140 +#: src/rougail/cli/config.py:117 src/rougail/cli/config.py:134 +#: src/rougail/cli/config.py:152 msgid "mode must exists in \"modes_level\"" msgstr "un mode doit exister dans \"modes_level\"" -#: src/rougail/cli/config.py:109 +#: src/rougail/cli/config.py:120 msgid "Modes that should not be accessible in read_write mode" msgstr "Modes quoi doivent être inaccessible en mode lecture-écriture" -#: src/rougail/cli/config.py:126 +#: src/rougail/cli/config.py:137 msgid "Modes that should not be accessible" msgstr "Modes quoi doivent être inaccessible" diff --git a/locale/rougail_cli.pot b/locale/rougail_cli.pot index a7cdbb1..669f3c9 100644 --- a/locale/rougail_cli.pot +++ b/locale/rougail_cli.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-01-03 13:01+0100\n" +"POT-Creation-Date: 2026-01-04 19:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,19 +15,19 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: src/rougail/cli/__main__.py:248 +#: src/rougail/cli/__main__.py:253 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:256 +#: src/rougail/cli/__main__.py:261 msgid "interactive user data \"{0}\" is loader before uninteractive user data \"{1}\"" msgstr "" -#: src/rougail/cli/__main__.py:292 +#: src/rougail/cli/__main__.py:297 msgid "cannot find cli file for \"output_name\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:317 +#: src/rougail/cli/__main__.py:328 msgid "ERROR: {0}" msgstr "" @@ -67,27 +67,39 @@ msgstr "" msgid "Open each user data in separate layers" msgstr "" -#: src/rougail/cli/config.py:57 +#: src/rougail/cli/config.py:58 msgid "if only one user data is set in \"__.step.user_data\"" msgstr "" -#: src/rougail/cli/config.py:64 +#: src/rougail/cli/config.py:65 msgid "Use cache for load Tiramisu objects" msgstr "" -#: src/rougail/cli/config.py:65 +#: src/rougail/cli/config.py:67 msgid "It will only be loaded from the cache if it already exists" msgstr "" -#: src/rougail/cli/config.py:71 -msgid "Configuration in output step is in read_write mode" -msgstr "" - -#: src/rougail/cli/config.py:74 -msgid "Type of variables description" +#: src/rougail/cli/config.py:69 +msgid "Note that certain user data or output can change how structure files are loaded (this is particularly true for the doc output). It is best to use the cache only for the same type of user data and output." msgstr "" #: src/rougail/cli/config.py:76 +msgid "Use output only for the children variables of the family" +msgstr "" + +#: src/rougail/cli/config.py:77 +msgid "By default, all accessible variables are included in output. It is possible to define the family from which the output should be generated." +msgstr "" + +#: src/rougail/cli/config.py:81 +msgid "Configuration in output step is in read_write mode" +msgstr "" + +#: src/rougail/cli/config.py:84 +msgid "Type of variables description" +msgstr "" + +#: src/rougail/cli/config.py:87 msgid "" "To identify different variables, we use the variable description. There are four types of description:\n" "\n" @@ -98,25 +110,25 @@ msgid "" " - description: the variable's description" msgstr "" -#: src/rougail/cli/config.py:92 +#: src/rougail/cli/config.py:103 msgid "Modes that should not be accessible in read_only mode" msgstr "" -#: src/rougail/cli/config.py:99 src/rougail/cli/config.py:116 -#: src/rougail/cli/config.py:133 +#: src/rougail/cli/config.py:110 src/rougail/cli/config.py:127 +#: src/rougail/cli/config.py:145 msgid "if any mode is set in \"modes_level\"" msgstr "" -#: src/rougail/cli/config.py:106 src/rougail/cli/config.py:123 -#: src/rougail/cli/config.py:140 +#: src/rougail/cli/config.py:117 src/rougail/cli/config.py:134 +#: src/rougail/cli/config.py:152 msgid "mode must exists in \"modes_level\"" msgstr "" -#: src/rougail/cli/config.py:109 +#: src/rougail/cli/config.py:120 msgid "Modes that should not be accessible in read_write mode" msgstr "" -#: src/rougail/cli/config.py:126 +#: src/rougail/cli/config.py:137 msgid "Modes that should not be accessible" msgstr "" diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index 55d2e9c..b237192 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -63,7 +63,12 @@ def _main(arguments, do_not_print): print(version) exit() layer_datas, metaconfig, config, err_warn = load_user_data(rougailconfig) - output = get_output(rougailconfig, metaconfig, config, err_warn, layer_datas) + output = get_output(rougailconfig, + metaconfig, + config, + err_warn, + layer_datas, + ) if do_not_print: return output.run() ret = output.print() @@ -292,8 +297,14 @@ def get_output(rougailconfig, metaconfig, config, err_warn, layer_datas): _('cannot find cli file for "output_name" module "{0}"').format(output_name) ) module = load_modules("rougail.output_" + output_name, str(path)) + root = self.rougailconfig["cli.root"] + if root: + subconfig = config.option(root) + else: + subconfig = config output = module.RougailOutput( - config=config, + config=subconfig, + true_config=config, rougailconfig=rougailconfig, user_data_errors=err_warn["errors"], user_data_warnings=err_warn["warnings"], diff --git a/src/rougail/cli/config.py b/src/rougail/cli/config.py index 3e91313..c0f8a27 100644 --- a/src/rougail/cli/config.py +++ b/src/rougail/cli/config.py @@ -49,6 +49,7 @@ cli: layers: description: {_('Open each user data in separate layers')} + alternative_name: cl default: false hidden: jinja: |- @@ -62,16 +63,26 @@ cli: load_from_tiramisu_cache: description: {_('Use cache for load Tiramisu objects')} - help: {_('It will only be loaded from the cache if it already exists')} + help: |- + {_('It will only be loaded from the cache if it already exists')} + + {_('Note that certain user data or output can change how structure files are loaded (this is particularly true for the doc output). It is best to use the cache only for the same type of user data and output.')} default: false disabled: variable: __.tiramisu_cache when: null + root: + description: {_('Use output only for the children variables of the family')} + help: {_('By default, all accessible variables are included in output. It is possible to define the family from which the output should be generated.')} + alternative_name: cr + mandatory: false + read_write: false # {_('Configuration in output step is in read_write mode')} description_type: description: {_('Type of variables description')} + alternative_name: cd help: >- {_("""To identify different variables, we use the variable description. There are four types of description: @@ -124,6 +135,7 @@ cli: inaccessible_modes: description: {_('Modes that should not be accessible')} + alternative_name: ci multi: true mandatory: false disabled: diff --git a/src/rougail/cli/locale/fr/LC_MESSAGES/rougail_cli.mo b/src/rougail/cli/locale/fr/LC_MESSAGES/rougail_cli.mo index 667b386fe14b1fabe9e777120daeb7898e9a9640..715dc53f300dcf64e6af466f93e5bd51eac4ffce 100644 GIT binary patch delta 1569 zcmY+CO^6&t7>2){tjVs4iEjLhe<^<_E6W%)nwT8i1dK6i;=u($6l=R{wi~;vXS=I6 zEFyyIc&|ub{^jE_ChoaLRK=xkv=5~>%;fK%%{vAFK z@7jS#m_Qym%j;SA0sIF30Z+io*NGg3va@#b7(Bvn1fPT-!zmK_4bF4E{JBeHfq~BT zwX%0^s1H03y|q{1aoC;_c@SDS56{64{0Y7Yr+15_@KxA`Uqix<8U|KnMxQVxR7CnW z^TH`XL)C8K?dym8!nsvVfuPMNG-_M}*+!>&vWI>v{WkhW^A4e_x-%FkH_je}QC*$J$*St+S*p%NaS&Cb^;T6xS($`t(WoV3O|G43g`L5CYpvBkl{p_kI~ADR zX^txkldDiWt+Kp1TLs#xAkucps3<$53YV9GE794FHxwtC_ImfZ2$5c=&RraoiO!M5 zde#!pOAWK2i96eQuE}cA6i$&5hgWL?9k4R9KBZ<`p;P8odklBSL~0vuI5hZfvfVng zK!_&q|LqT=I0*448)=hh~4xnr@(N!E+BVFZf{CHDJ|Oe*ti?4J%^KtYlVi>=aOo{oEoVTx^3M*c-U#n4|{nmHvX}i^ Ft{*+oIm`e6