From aa8110386accdcf9625c39a7e4071c506a67f3f3 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 3 Jan 2026 13:02:21 +0100 Subject: [PATCH] feat: load tiramisu objects from cache --- README.fr.md | 28 +++++------ README.md | 28 +++++------ locale/fr/LC_MESSAGES/rougail_cli.po | 44 ++++++++++++------ locale/rougail_cli.pot | 40 ++++++++++------ src/rougail/cli/__init__.py | 2 +- src/rougail/cli/__main__.py | 14 ++++-- src/rougail/cli/config.py | 10 +++- src/rougail/cli/i18n.py | 2 +- .../cli/locale/fr/LC_MESSAGES/rougail_cli.mo | Bin 3743 -> 4156 bytes src/rougail/cli/rougailconfig.py | 2 +- tests/cli/result_user_datas_layers.txt | 7 ++- .../structures_warnings/file.yml | 2 + tests/rougailcli_file/warnings.txt | 2 +- tests/rougailcli_file/warnings3.txt | 2 +- tests/test_load.py | 22 +++++++++ 15 files changed, 137 insertions(+), 68 deletions(-) diff --git a/README.fr.md b/README.fr.md index d3fc4ff..9305f54 100644 --- a/README.fr.md +++ b/README.fr.md @@ -11,18 +11,20 @@ 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.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_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** :
• --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)". | diff --git a/README.md b/README.md index b2dd538..a9314bb 100644 --- a/README.md +++ b/README.md @@ -11,18 +11,20 @@ include_toc: true > It is possible to use Rougail directly from the command line. This makes it easy to define and configure the loaded user data and to define the desired output.\ > **Path**: cli -| Variable | Description | Default value | Type | Access control | Validator | -|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| -| **cli.config_file**
**Environment variable**: CLI.CONFIG_FILE | Loads command line parameters from a file. | • .rougailcli.yml | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | | • this filename could be a relative path
• file type allowed: "directory" and "file". | -| **cli.debug**
**Command line**:
• --cli.debug
• --cli.no-debug
**Environment variable**: CLI.DEBUG | Displays debug informations. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | -| **cli.warnings**
**Command line**:
• --cli.warnings
• --cli.no-warnings
**Environment variable**: CLI.WARNINGS | Displays command line option warnings informations. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | -| **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.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.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)". | +| Variable | Description | Default value | Type | Access control | Validator | +|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| +| **cli.config_file**
**Environment variable**: CLI.CONFIG_FILE | Loads command line parameters from a file. | • .rougailcli.yml | [`UNIX filename`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | | • this filename could be a relative path
• file type allowed: "directory" and "file". | +| **cli.debug**
**Command line**:
• --cli.debug
• --cli.no-debug
**Environment variable**: CLI.DEBUG | Displays debug informations. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | +| **cli.warnings**
**Command line**:
• --cli.warnings
• --cli.no-warnings
**Environment variable**: CLI.WARNINGS | Displays command line option warnings informations. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | | | +| **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.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.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)". | diff --git a/locale/fr/LC_MESSAGES/rougail_cli.po b/locale/fr/LC_MESSAGES/rougail_cli.po index 0eb42a9..cb7bd92 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: 2025-12-29 20:52+0100\n" -"PO-Revision-Date: 2025-12-29 20:54+0100\n" +"POT-Creation-Date: 2026-01-03 13:01+0100\n" +"PO-Revision-Date: 2026-01-03 13:01+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:241 +#: src/rougail/cli/__main__.py:248 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "ne peut trouve le module \"user_data\" \"{0}\"" -#: src/rougail/cli/__main__.py:249 +#: src/rougail/cli/__main__.py:256 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:285 +#: src/rougail/cli/__main__.py:292 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:310 +#: src/rougail/cli/__main__.py:317 msgid "ERROR: {0}" msgstr "ERREUR : {0}" @@ -87,15 +87,23 @@ msgstr "" "si seulement un type de données utilisateur est renseigné dans " "\"__.step.user_data\"" -#: src/rougail/cli/config.py:63 +#: src/rougail/cli/config.py:64 +msgid "Use cache for load Tiramisu objects" +msgstr "Utiliser le cache pour charger les objets Tiramisu" + +#: src/rougail/cli/config.py:65 +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 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:66 +#: src/rougail/cli/config.py:74 msgid "Type of variables description" msgstr "Type de description des variables" -#: src/rougail/cli/config.py:68 +#: src/rougail/cli/config.py:76 msgid "" "To identify different variables, we use the variable description. There are " "four types of description:\n" @@ -117,19 +125,25 @@ msgstr "" " - name : le nom de la variable\n" " - description : la description de la variable" -#: src/rougail/cli/config.py:84 -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:92 +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:91 src/rougail/cli/config.py:108 +#: src/rougail/cli/config.py:99 src/rougail/cli/config.py:116 +#: src/rougail/cli/config.py:133 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:98 src/rougail/cli/config.py:115 +#: src/rougail/cli/config.py:106 src/rougail/cli/config.py:123 +#: src/rougail/cli/config.py:140 msgid "mode must exists in \"modes_level\"" msgstr "un mode doit exister dans \"modes_level\"" -#: src/rougail/cli/config.py:101 +#: src/rougail/cli/config.py:109 +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 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 ce75828..a7cdbb1 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: 2025-12-29 20:54+0100\n" +"POT-Creation-Date: 2026-01-03 13:01+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:241 +#: src/rougail/cli/__main__.py:248 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:249 +#: src/rougail/cli/__main__.py:256 msgid "interactive user data \"{0}\" is loader before uninteractive user data \"{1}\"" msgstr "" -#: src/rougail/cli/__main__.py:285 +#: src/rougail/cli/__main__.py:292 msgid "cannot find cli file for \"output_name\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:310 +#: src/rougail/cli/__main__.py:317 msgid "ERROR: {0}" msgstr "" @@ -71,15 +71,23 @@ msgstr "" msgid "if only one user data is set in \"__.step.user_data\"" msgstr "" -#: src/rougail/cli/config.py:63 +#: src/rougail/cli/config.py:64 +msgid "Use cache for load Tiramisu objects" +msgstr "" + +#: src/rougail/cli/config.py:65 +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:66 +#: src/rougail/cli/config.py:74 msgid "Type of variables description" msgstr "" -#: src/rougail/cli/config.py:68 +#: src/rougail/cli/config.py:76 msgid "" "To identify different variables, we use the variable description. There are four types of description:\n" "\n" @@ -90,19 +98,25 @@ msgid "" " - description: the variable's description" msgstr "" -#: src/rougail/cli/config.py:84 -msgid "Modes that should not be accessible in read_write mode" +#: src/rougail/cli/config.py:92 +msgid "Modes that should not be accessible in read_only mode" msgstr "" -#: src/rougail/cli/config.py:91 src/rougail/cli/config.py:108 +#: src/rougail/cli/config.py:99 src/rougail/cli/config.py:116 +#: src/rougail/cli/config.py:133 msgid "if any mode is set in \"modes_level\"" msgstr "" -#: src/rougail/cli/config.py:98 src/rougail/cli/config.py:115 +#: src/rougail/cli/config.py:106 src/rougail/cli/config.py:123 +#: src/rougail/cli/config.py:140 msgid "mode must exists in \"modes_level\"" msgstr "" -#: src/rougail/cli/config.py:101 +#: src/rougail/cli/config.py:109 +msgid "Modes that should not be accessible in read_write mode" +msgstr "" + +#: src/rougail/cli/config.py:126 msgid "Modes that should not be accessible" msgstr "" diff --git a/src/rougail/cli/__init__.py b/src/rougail/cli/__init__.py index 0847d2c..8fa215d 100644 --- a/src/rougail/cli/__init__.py +++ b/src/rougail/cli/__init__.py @@ -1,6 +1,6 @@ """ Silique (https://www.silique.fr) -Copyright (C) 2024-2025 +Copyright (C) 2024-2026 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index 51cbd11..55d2e9c 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -1,6 +1,6 @@ """ Silique (https://www.silique.fr) -Copyright (C) 2024-2025 +Copyright (C) 2024-2026 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -100,8 +100,10 @@ def load_cmd_user_data(rougailconfig, arguments): if display_warnings and user_data["warnings"]: for warning in user_data["warnings"]: if isinstance(warning, dict): - warning = next(iter(warning)) - warn(warning) + for w, var in warning.items(): + warn(UserWarning(f'unable to load "{var.option.impl_get_display_name(var)}", {str(w)}')) + else: + warn(warning) if manage_warnings: # replays to display errors if needed parser = TiramisuCmdlineParser( @@ -177,7 +179,11 @@ def load_user_data(rougailconfig): else: layers = [user_data_names] last_layers = 0 - rougail = Rougail(rougailconfig) + if rougailconfig["tiramisu_cache"]: + load_from_tiramisu_cache = rougailconfig["cli.load_from_tiramisu_cache"] + else: + load_from_tiramisu_cache = False + rougail = Rougail(rougailconfig, load_from_tiramisu_cache=load_from_tiramisu_cache) layer_name = "_".join(layers[-1]) subconfig = rougail.run(name=layer_name) try: diff --git a/src/rougail/cli/config.py b/src/rougail/cli/config.py index 37c37dd..3e91313 100644 --- a/src/rougail/cli/config.py +++ b/src/rougail/cli/config.py @@ -1,6 +1,6 @@ """ Silique (https://www.silique.fr) -Copyright (C) 2025 +Copyright (C) 2025-2026 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the @@ -60,6 +60,14 @@ cli: default: true hidden: true + load_from_tiramisu_cache: + description: {_('Use cache for load Tiramisu objects')} + help: {_('It will only be loaded from the cache if it already exists')} + default: false + disabled: + variable: __.tiramisu_cache + when: null + read_write: false # {_('Configuration in output step is in read_write mode')} description_type: diff --git a/src/rougail/cli/i18n.py b/src/rougail/cli/i18n.py index e937cf5..04a37e5 100644 --- a/src/rougail/cli/i18n.py +++ b/src/rougail/cli/i18n.py @@ -1,6 +1,6 @@ """Internationalisation utilities Silique (https://www.silique.fr) -Copyright (C) 2024-2025 +Copyright (C) 2024-2026 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by 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 57cb2be4105a594189ffb5aa459fa6e4a70cb940..667b386fe14b1fabe9e777120daeb7898e9a9640 100644 GIT binary patch delta 866 zcmX}pO=uHA6u|M958GI+A5E(jt&Xi)6sv7xilmCsOHD;YX}xc=8#86ot^1)Cl?on2 z5j+&ZgOHrWinl;P&{OVu5Dy9pf=4}iP!Rm@Ch5SN-^{?gnR!zkc&nDb^(3DPZ5OeJ z_(2>bUdQNY`M5|gp2cyzipTL`YyJjzGyjQQm`aEo#xz#(H0JPYYrQ`yGQ|8GW<{2z z#9)Gj=XeM|;u8-4iv!Fbb%-3rml$sRga_~sW^iw3bNvd2^BXvguW #(%goC9)6u zHi}GP7Ef}%++}c)g*6<+B+uB4!*~Ht;CsA>=kd}es)5fitkf5r#BkFYIE8tVr2z$pAS@<)vykUoM3 z3#pDtwddh*l_B%MczZoG(2Dg^)BsMMdhrVzpSV z;H#V3ww1GBFR3|8*^XgarYgBkMfqh*6^$ajE-CFR!*(shTvFC8?fKryo|R zd6sLaV%c!7HC9!lrWOs?*RC>y)-8eseLb)$)`G7*t%{Z%=#ipsUdK{qV|Bh!TPb%{ plVl3&AG)UFh=RVJK8$GK`eVE=u5hY{=`Ak-lTLur}8zcCG7WzC= z8^+P8m$4jAFc)vI3GeU>zcTf1mQ+i9jXn5|4N^*`SK6a_9G$_B*-{IBVjV_&QYXgI zX^_a&`#4U0kJT8?k^a!aDs1;lqd1Gbc!X2