WIP: Expand the developer documentation #27
13 changed files with 1544 additions and 463 deletions
210
README.fr.md
Normal file
210
README.fr.md
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
---
|
||||
gitea: none
|
||||
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'est utilisée que si la version n'est pas définie dans le fichier de structure. | | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | **Choix** : <br/>• 1.0<br/>• 1.1<br/>• 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/>• le nom de fichier peut être une chemin relatif<br/>• le fichier doit exister<br/>• 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'option pour l'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 | Store Tiramisu cache filename.<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` | • le nom de fichier peut être une chemin relatif<br/>• 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'il est possible d'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/>• --force_optional<br/>• --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'existe pas. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
## Le gestionnaire de secret
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **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'é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
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **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. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choix** : <br/>• directory<br/>• string<br/>• commandline<br/>• risotto<br/>• 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é** : _('cannot load user data for doc output') | `unique`<br/>**Choix** : <br/>• yaml<br/>• environment<br/>• commandline<br/>• ansible<br/>• questionary<br/>• risotto<br/>• 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/>• display<br/>• json<br/>• doc<br/>• table<br/>• ansible |
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|---------------------|---------------------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="define_default_params" name="define_default_params">define_default_params</a>**<br/>**Ligne de commande** : <br/>• --define_default_params<br/>• --no-define_default_params<br/>**Variable d'environnement** : DEFINE_DEFAULT_PARAMS | Sur charger les paramètre par défaut pour le type d'option. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `obligatoire` | `standard` |
|
||||
|
||||
## Paramètre par défaut pour le type d'option
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params\
|
||||
> `standard` *`désactivé`*\
|
||||
> **Désactivé** : lorsque la variable "[Sur charger les paramètre par défaut pour le type d'option](#define_default_params)" a la valeur "false"
|
||||
|
||||
### UNIX filename
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.unix_filename\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès | Validateur |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|----------------------|----------------------------------------------------------------|
|
||||
| **<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/>• --default_params.unix_filename.allow_relative<br/>• --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/>• --default_params.unix_filename.test_existence<br/>• --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é. | • file<br/>• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choix** : <br/>• file<br/>• directory |
|
||||
|
||||
### IP
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.ip\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="default_params.ip.private_only" name="default_params.ip.private_only">default_params.ip.private_only</a>**<br/>**Ligne de commande** : <br/>• --default_params.ip.private_only<br/>• --default_params.ip.no-private_only<br/>**Variable d'environnement** : DEFAULT_PARAMS.IP.PRIVATE_ONLY | Les IP privées sont autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.ip.allow_reserved" name="default_params.ip.allow_reserved">default_params.ip.allow_reserved</a>**<br/>**Ligne de commande** : <br/>• --default_params.ip.allow_reserved<br/>• --default_params.ip.no-allow_reserved<br/>**Variable d'environnement** : DEFAULT_PARAMS.IP.ALLOW_RESERVED | Les IP réservées sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.ip.cidr" name="default_params.ip.cidr">default_params.ip.cidr</a>**<br/>**Ligne de commande** : <br/>• --default_params.ip.cidr<br/>• --default_params.ip.no-cidr<br/>**Variable d'environnement** : DEFAULT_PARAMS.IP.CIDR | L'IP doit être au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### CIDR
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.cidr\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="default_params.cidr.private_only" name="default_params.cidr.private_only">default_params.cidr.private_only</a>**<br/>**Ligne de commande** : <br/>• --default_params.cidr.private_only<br/>• --default_params.cidr.no-private_only<br/>**Variable d'environnement** : DEFAULT_PARAMS.CIDR.PRIVATE_ONLY | Les IP privées sont autorisées. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.cidr.allow_reserved" name="default_params.cidr.allow_reserved">default_params.cidr.allow_reserved</a>**<br/>**Ligne de commande** : <br/>• --default_params.cidr.allow_reserved<br/>• --default_params.cidr.no-allow_reserved<br/>**Variable d'environnement** : DEFAULT_PARAMS.CIDR.ALLOW_RESERVED | Les IP réservées sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.cidr.cidr" name="default_params.cidr.cidr">default_params.cidr.cidr</a>**<br/>**Ligne de commande** : <br/>• --default_params.cidr.cidr<br/>• --default_params.cidr.no-cidr<br/>**Variable d'environnement** : DEFAULT_PARAMS.CIDR.CIDR | L'IP doit être au format CIDR. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Network
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.network\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="default_params.network.private_only" name="default_params.network.private_only">default_params.network.private_only</a>**<br/>**Ligne de commande** : <br/>• --default_params.network.private_only<br/>• --default_params.network.no-private_only<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK.PRIVATE_ONLY | Les réseaux privés sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network.allow_reserved" name="default_params.network.allow_reserved">default_params.network.allow_reserved</a>**<br/>**Ligne de commande** : <br/>• --default_params.network.allow_reserved<br/>• --default_params.network.no-allow_reserved<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK.ALLOW_RESERVED | Les réseaux réservés sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network.cidr" name="default_params.network.cidr">default_params.network.cidr</a>**<br/>**Ligne de commande** : <br/>• --default_params.network.cidr<br/>• --default_params.network.no-cidr<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK.CIDR | Le réseau doit être au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Network CIDR
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.network_cidr\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="default_params.network_cidr.private_only" name="default_params.network_cidr.private_only">default_params.network_cidr.private_only</a>**<br/>**Ligne de commande** : <br/>• --default_params.network_cidr.private_only<br/>• --default_params.network_cidr.no-private_only<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK_CIDR.PRIVATE_ONLY | Les réseaux privés sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network_cidr.allow_reserved" name="default_params.network_cidr.allow_reserved">default_params.network_cidr.allow_reserved</a>**<br/>**Ligne de commande** : <br/>• --default_params.network_cidr.allow_reserved<br/>• --default_params.network_cidr.no-allow_reserved<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK_CIDR.ALLOW_RESERVED | Les réseaux réservés sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network_cidr.cidr" name="default_params.network_cidr.cidr">default_params.network_cidr.cidr</a>**<br/>**Ligne de commande** : <br/>• --default_params.network_cidr.cidr<br/>• --default_params.network_cidr.no-cidr<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETWORK_CIDR.CIDR | Le réseau doit être au format CIDR. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Netbios
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.netbios\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.netbios.allow_without_dot<br/>• --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'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/>• --default_params.netbios.test_existence<br/>• --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/>• --default_params.netbios.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.netbios.allow_cidr_network" name="default_params.netbios.allow_cidr_network">default_params.netbios.allow_cidr_network</a>**<br/>**Ligne de commande** : <br/>• --default_params.netbios.allow_cidr_network<br/>• --default_params.netbios.no-allow_cidr_network<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_CIDR_NETWORK | Le nom de domaine peut être un réseau au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.netbios.allow_startswith_dot" name="default_params.netbios.allow_startswith_dot">default_params.netbios.allow_startswith_dot</a>**<br/>**Ligne de commande** : <br/>• --default_params.netbios.allow_startswith_dot<br/>• --default_params.netbios.no-allow_startswith_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.NETBIOS.ALLOW_STARTSWITH_DOT | Le nom de domaine peut démarré par un point. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Domainname
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.domainname\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.domainname.allow_without_dot<br/>• --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'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/>• --default_params.domainname.test_existence<br/>• --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/>• --default_params.domainname.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.domainname.allow_cidr_network" name="default_params.domainname.allow_cidr_network">default_params.domainname.allow_cidr_network</a>**<br/>**Ligne de commande** : <br/>• --default_params.domainname.allow_cidr_network<br/>• --default_params.domainname.no-allow_cidr_network<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_CIDR_NETWORK | Le nom de domaine peut être un réseau au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.domainname.allow_startswith_dot" name="default_params.domainname.allow_startswith_dot">default_params.domainname.allow_startswith_dot</a>**<br/>**Ligne de commande** : <br/>• --default_params.domainname.allow_startswith_dot<br/>• --default_params.domainname.no-allow_startswith_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.DOMAINNAME.ALLOW_STARTSWITH_DOT | Le nom de domaine peut démarré par un point. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Hostname
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.hostname\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.hostname.allow_without_dot<br/>• --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'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/>• --default_params.hostname.test_existence<br/>• --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/>• --default_params.hostname.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.hostname.allow_cidr_network" name="default_params.hostname.allow_cidr_network">default_params.hostname.allow_cidr_network</a>**<br/>**Ligne de commande** : <br/>• --default_params.hostname.allow_cidr_network<br/>• --default_params.hostname.no-allow_cidr_network<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_CIDR_NETWORK | Le nom de domaine peut être un réseau au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.hostname.allow_startswith_dot" name="default_params.hostname.allow_startswith_dot">default_params.hostname.allow_startswith_dot</a>**<br/>**Ligne de commande** : <br/>• --default_params.hostname.allow_startswith_dot<br/>• --default_params.hostname.no-allow_startswith_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.HOSTNAME.ALLOW_STARTSWITH_DOT | Le nom de domaine peut démarré par un point. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Web address
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.web_address\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.web_address.allow_without_dot<br/>• --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'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/>• --default_params.web_address.test_existence<br/>• --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/>• --default_params.web_address.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.web_address.allow_cidr_network" name="default_params.web_address.allow_cidr_network">default_params.web_address.allow_cidr_network</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_cidr_network<br/>• --default_params.web_address.no-allow_cidr_network<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_CIDR_NETWORK | Le nom de domaine peut être un réseau au format CIDR. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_startswith_dot" name="default_params.web_address.allow_startswith_dot">default_params.web_address.allow_startswith_dot</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_startswith_dot<br/>• --default_params.web_address.no-allow_startswith_dot<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_STARTSWITH_DOT | Le nom de domaine peut démarré par un point. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_range" name="default_params.web_address.allow_range">default_params.web_address.allow_range</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_range<br/>• --default_params.web_address.no-allow_range<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_RANGE | Peut être une plage de port. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_protocol" name="default_params.web_address.allow_protocol">default_params.web_address.allow_protocol</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_protocol<br/>• --default_params.web_address.no-allow_protocol<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_PROTOCOL | Peut avoir le protocole. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_zero" name="default_params.web_address.allow_zero">default_params.web_address.allow_zero</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_zero<br/>• --default_params.web_address.no-allow_zero<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_ZERO | Port 0 est autorisé. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_wellknown" name="default_params.web_address.allow_wellknown">default_params.web_address.allow_wellknown</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_wellknown<br/>• --default_params.web_address.no-allow_wellknown<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WELLKNOWN | Les ports connus (1 à 1023) sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_registred" name="default_params.web_address.allow_registred">default_params.web_address.allow_registred</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_registred<br/>• --default_params.web_address.no-allow_registred<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_REGISTRED | Les ports enregistrés (1024 à 49151) sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_private" name="default_params.web_address.allow_private">default_params.web_address.allow_private</a>**<br/>**Ligne de commande** : <br/>• --default_params.web_address.allow_private<br/>• --default_params.web_address.no-allow_private<br/>**Variable d'environnement** : DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_PRIVATE | Les ports privés (supérieur à 49152) sont autorisés. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Port
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Chemin** : default_params.port\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Valeur par défaut | Type | Contrôle des accès |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|---------------------|-------------------------------------------------------------------------------------|----------------------|
|
||||
| **<a id="default_params.port.allow_range" name="default_params.port.allow_range">default_params.port.allow_range</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_range<br/>• --default_params.port.no-allow_range<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_RANGE | Peut être une plage de port. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_protocol" name="default_params.port.allow_protocol">default_params.port.allow_protocol</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_protocol<br/>• --default_params.port.no-allow_protocol<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_PROTOCOL | Peut avoir le protocole. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_zero" name="default_params.port.allow_zero">default_params.port.allow_zero</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_zero<br/>• --default_params.port.no-allow_zero<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_ZERO | Port 0 est autorisé. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_wellknown" name="default_params.port.allow_wellknown">default_params.port.allow_wellknown</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_wellknown<br/>• --default_params.port.no-allow_wellknown<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_WELLKNOWN | Les ports connus (1 à 1023) sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_registred" name="default_params.port.allow_registred">default_params.port.allow_registred</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_registred<br/>• --default_params.port.no-allow_registred<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_REGISTRED | Les ports enregistrés (1024 à 49151) sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_private" name="default_params.port.allow_private">default_params.port.allow_private</a>**<br/>**Ligne de commande** : <br/>• --default_params.port.allow_private<br/>• --default_params.port.no-allow_private<br/>**Variable d'environnement** : DEFAULT_PARAMS.PORT.ALLOW_PRIVATE | Les ports privés (supérieur à 49152) sont autorisés. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
|
||||
287
README.md
287
README.md
|
|
@ -1,105 +1,210 @@
|
|||

|
||||
|
||||
# Rougail
|
||||
|
||||
## Description
|
||||
|
||||
Rougail is a free full-featured configuration manager library written in python3.
|
||||
|
||||
The configuration is describe in YAML dictionary files.
|
||||
|
||||
Those dictionaries are converted into [Tiramisu](https://framagit.org/tiramisu/tiramisu) objects.
|
||||
|
||||
Rougail can be incorporated with other technologies and stacks regardless of whether they’re written in Python or not.
|
||||
|
||||
## Simple example
|
||||
|
||||
Create a directory:
|
||||
|
||||
```bash
|
||||
# mkdir dict
|
||||
```
|
||||
|
||||
## Dictionary
|
||||
|
||||
A dictionary is a variables description file.
|
||||
|
||||
Create the file `dict/dictionary.yml`:
|
||||
|
||||
```yml
|
||||
---
|
||||
version: 1.1
|
||||
# describe a variable my_first_variable
|
||||
# and a family with a variable my_second_variable
|
||||
my_first_variable: my_value
|
||||
my_family:
|
||||
my_second_variable: 1
|
||||
```
|
||||
gitea: none
|
||||
include_toc: true
|
||||
---
|
||||
[🇬🇧 (EN)](README.md) - [🇫🇷 (FR)](README.fr.md)
|
||||
|
||||
## Generate variable
|
||||
| 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/>• 1.0<br/>• 1.1<br/>• 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/>• this filename could be a relative path<br/>• this file must exist<br/>• 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` | • this filename could be a relative path<br/>• 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/>• --force_optional<br/>• --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't already exists. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### With commandline:
|
||||
## The secret manager
|
||||
|
||||
```bash
|
||||
# rougail -m dict
|
||||
Variables:
|
||||
┣━━ 📓 my_first_variable: my_value
|
||||
┗━━ 📂 my_family
|
||||
┗━━ 📓 my_second_variable: 1
|
||||
> [!NOTE]
|
||||
>
|
||||
> **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` |
|
||||
|
||||
### With default value:
|
||||
## Load and exporter steps
|
||||
|
||||
Here is a python3 example file:
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: step\
|
||||
> `standard`
|
||||
|
||||
```python
|
||||
from rougail import Rougail, RougailConfig
|
||||
from pprint import pprint
|
||||
| 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. | • directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | **Choices**: <br/>• directory<br/>• string<br/>• commandline<br/>• risotto<br/>• 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**: _('cannot load user data for doc output') | `unique`<br/>**Choices**: <br/>• yaml<br/>• environment<br/>• commandline<br/>• ansible<br/>• questionary<br/>• risotto<br/>• 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/>• display<br/>• json<br/>• doc<br/>• table<br/>• ansible |
|
||||
|
||||
RougailConfig['dictionaries_dir'] = ['dict']
|
||||
rougail = Rougail()
|
||||
config = rougail.run()
|
||||
pprint(config.value.get(), sort_dicts=False)
|
||||
```
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------|-----------------|-------------------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="define_default_params" name="define_default_params">define_default_params</a>**<br/>**Command line**: <br/>• --define_default_params<br/>• --no-define_default_params<br/>**Environment variable**: DEFINE_DEFAULT_PARAMS | Override default parameters for option type. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `mandatory` | `standard` |
|
||||
|
||||
The result is:
|
||||
## Default parameters for option type
|
||||
|
||||
```json
|
||||
{<TiramisuOption path="rougail">: {<TiramisuOption path="rougail.my_first_variable">: 'my_value',
|
||||
<TiramisuOption path="rougail.my_family">: {<TiramisuOption path="rougail.my_family.my_second_variable">: 1}}}
|
||||
```
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params\
|
||||
> `standard` *`disabled`*\
|
||||
> **Disabled**: when the variable "[Override default parameters for option type](#define_default_params)" has the value "false"
|
||||
|
||||
### With modified value
|
||||
### UNIX filename
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.unix_filename\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control | Validator |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------|------------------|-----------------------------------------------------------------|
|
||||
| **<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/>• --default_params.unix_filename.allow_relative<br/>• --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/>• --default_params.unix_filename.test_existence<br/>• --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. | • file<br/>• directory | [`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` | `standard` | `unique`<br/>**Choices**: <br/>• file<br/>• directory |
|
||||
|
||||
### IP
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.ip\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="default_params.ip.private_only" name="default_params.ip.private_only">default_params.ip.private_only</a>**<br/>**Command line**: <br/>• --default_params.ip.private_only<br/>• --default_params.ip.no-private_only<br/>**Environment variable**: DEFAULT_PARAMS.IP.PRIVATE_ONLY | Private IP are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.ip.allow_reserved" name="default_params.ip.allow_reserved">default_params.ip.allow_reserved</a>**<br/>**Command line**: <br/>• --default_params.ip.allow_reserved<br/>• --default_params.ip.no-allow_reserved<br/>**Environment variable**: DEFAULT_PARAMS.IP.ALLOW_RESERVED | Reserved IP are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.ip.cidr" name="default_params.ip.cidr">default_params.ip.cidr</a>**<br/>**Command line**: <br/>• --default_params.ip.cidr<br/>• --default_params.ip.no-cidr<br/>**Environment variable**: DEFAULT_PARAMS.IP.CIDR | IP must be in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### CIDR
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.cidr\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="default_params.cidr.private_only" name="default_params.cidr.private_only">default_params.cidr.private_only</a>**<br/>**Command line**: <br/>• --default_params.cidr.private_only<br/>• --default_params.cidr.no-private_only<br/>**Environment variable**: DEFAULT_PARAMS.CIDR.PRIVATE_ONLY | Private IP are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.cidr.allow_reserved" name="default_params.cidr.allow_reserved">default_params.cidr.allow_reserved</a>**<br/>**Command line**: <br/>• --default_params.cidr.allow_reserved<br/>• --default_params.cidr.no-allow_reserved<br/>**Environment variable**: DEFAULT_PARAMS.CIDR.ALLOW_RESERVED | Reserved IP are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.cidr.cidr" name="default_params.cidr.cidr">default_params.cidr.cidr</a>**<br/>**Command line**: <br/>• --default_params.cidr.cidr<br/>• --default_params.cidr.no-cidr<br/>**Environment variable**: DEFAULT_PARAMS.CIDR.CIDR | IP must be in CIDR format. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Network
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.network\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="default_params.network.private_only" name="default_params.network.private_only">default_params.network.private_only</a>**<br/>**Command line**: <br/>• --default_params.network.private_only<br/>• --default_params.network.no-private_only<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK.PRIVATE_ONLY | Private network are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network.allow_reserved" name="default_params.network.allow_reserved">default_params.network.allow_reserved</a>**<br/>**Command line**: <br/>• --default_params.network.allow_reserved<br/>• --default_params.network.no-allow_reserved<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK.ALLOW_RESERVED | Reserved network are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network.cidr" name="default_params.network.cidr">default_params.network.cidr</a>**<br/>**Command line**: <br/>• --default_params.network.cidr<br/>• --default_params.network.no-cidr<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK.CIDR | Network must be in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Network CIDR
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.network_cidr\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="default_params.network_cidr.private_only" name="default_params.network_cidr.private_only">default_params.network_cidr.private_only</a>**<br/>**Command line**: <br/>• --default_params.network_cidr.private_only<br/>• --default_params.network_cidr.no-private_only<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK_CIDR.PRIVATE_ONLY | Private network are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network_cidr.allow_reserved" name="default_params.network_cidr.allow_reserved">default_params.network_cidr.allow_reserved</a>**<br/>**Command line**: <br/>• --default_params.network_cidr.allow_reserved<br/>• --default_params.network_cidr.no-allow_reserved<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK_CIDR.ALLOW_RESERVED | Reserved network are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.network_cidr.cidr" name="default_params.network_cidr.cidr">default_params.network_cidr.cidr</a>**<br/>**Command line**: <br/>• --default_params.network_cidr.cidr<br/>• --default_params.network_cidr.no-cidr<br/>**Environment variable**: DEFAULT_PARAMS.NETWORK_CIDR.CIDR | Network must be in CIDR format. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
### Netbios
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.netbios\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.netbios.allow_without_dot<br/>• --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/>• --default_params.netbios.test_existence<br/>• --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/>• --default_params.netbios.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.netbios.allow_cidr_network" name="default_params.netbios.allow_cidr_network">default_params.netbios.allow_cidr_network</a>**<br/>**Command line**: <br/>• --default_params.netbios.allow_cidr_network<br/>• --default_params.netbios.no-allow_cidr_network<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_CIDR_NETWORK | The domain name can be network in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.netbios.allow_startswith_dot" name="default_params.netbios.allow_startswith_dot">default_params.netbios.allow_startswith_dot</a>**<br/>**Command line**: <br/>• --default_params.netbios.allow_startswith_dot<br/>• --default_params.netbios.no-allow_startswith_dot<br/>**Environment variable**: DEFAULT_PARAMS.NETBIOS.ALLOW_STARTSWITH_DOT | The domain name can starts by a dot. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Domainname
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.domainname\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.domainname.allow_without_dot<br/>• --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/>• --default_params.domainname.test_existence<br/>• --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/>• --default_params.domainname.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.domainname.allow_cidr_network" name="default_params.domainname.allow_cidr_network">default_params.domainname.allow_cidr_network</a>**<br/>**Command line**: <br/>• --default_params.domainname.allow_cidr_network<br/>• --default_params.domainname.no-allow_cidr_network<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_CIDR_NETWORK | The domain name can be network in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.domainname.allow_startswith_dot" name="default_params.domainname.allow_startswith_dot">default_params.domainname.allow_startswith_dot</a>**<br/>**Command line**: <br/>• --default_params.domainname.allow_startswith_dot<br/>• --default_params.domainname.no-allow_startswith_dot<br/>**Environment variable**: DEFAULT_PARAMS.DOMAINNAME.ALLOW_STARTSWITH_DOT | The domain name can starts by a dot. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Hostname
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.hostname\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.hostname.allow_without_dot<br/>• --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/>• --default_params.hostname.test_existence<br/>• --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/>• --default_params.hostname.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.hostname.allow_cidr_network" name="default_params.hostname.allow_cidr_network">default_params.hostname.allow_cidr_network</a>**<br/>**Command line**: <br/>• --default_params.hostname.allow_cidr_network<br/>• --default_params.hostname.no-allow_cidr_network<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_CIDR_NETWORK | The domain name can be network in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.hostname.allow_startswith_dot" name="default_params.hostname.allow_startswith_dot">default_params.hostname.allow_startswith_dot</a>**<br/>**Command line**: <br/>• --default_params.hostname.allow_startswith_dot<br/>• --default_params.hostname.no-allow_startswith_dot<br/>**Environment variable**: DEFAULT_PARAMS.HOSTNAME.ALLOW_STARTSWITH_DOT | The domain name can starts by a dot. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Web address
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.web_address\
|
||||
> `standard`
|
||||
|
||||
| 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/>• domainname<br/>• netbios<br/>• hostname<br/>• 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/>• --default_params.web_address.allow_without_dot<br/>• --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/>• --default_params.web_address.test_existence<br/>• --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/>• --default_params.web_address.allow_ip<br/>• --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` | |
|
||||
| **<a id="default_params.web_address.allow_cidr_network" name="default_params.web_address.allow_cidr_network">default_params.web_address.allow_cidr_network</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_cidr_network<br/>• --default_params.web_address.no-allow_cidr_network<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_CIDR_NETWORK | The domain name can be network in CIDR format. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_startswith_dot" name="default_params.web_address.allow_startswith_dot">default_params.web_address.allow_startswith_dot</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_startswith_dot<br/>• --default_params.web_address.no-allow_startswith_dot<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_STARTSWITH_DOT | The domain name can starts by a dot. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_range" name="default_params.web_address.allow_range">default_params.web_address.allow_range</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_range<br/>• --default_params.web_address.no-allow_range<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_RANGE | Can be range of port. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_protocol" name="default_params.web_address.allow_protocol">default_params.web_address.allow_protocol</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_protocol<br/>• --default_params.web_address.no-allow_protocol<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_PROTOCOL | Can have the protocol. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_zero" name="default_params.web_address.allow_zero">default_params.web_address.allow_zero</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_zero<br/>• --default_params.web_address.no-allow_zero<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_ZERO | Port 0 is allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_wellknown" name="default_params.web_address.allow_wellknown">default_params.web_address.allow_wellknown</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_wellknown<br/>• --default_params.web_address.no-allow_wellknown<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_WELLKNOWN | Well-known ports (1 to 1023) are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_registred" name="default_params.web_address.allow_registred">default_params.web_address.allow_registred</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_registred<br/>• --default_params.web_address.no-allow_registred<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_REGISTRED | Registred ports (1024 to 49151) are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
| **<a id="default_params.web_address.allow_private" name="default_params.web_address.allow_private">default_params.web_address.allow_private</a>**<br/>**Command line**: <br/>• --default_params.web_address.allow_private<br/>• --default_params.web_address.no-allow_private<br/>**Environment variable**: DEFAULT_PARAMS.WEB_ADDRESS.ALLOW_PRIVATE | Private ports (greater than 49152) are allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` | |
|
||||
|
||||
### Port
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> **Path**: default_params.port\
|
||||
> `standard`
|
||||
|
||||
| Variable | Description | Default value | Type | Access control |
|
||||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|-----------------|-------------------------------------------------------------------------------------|------------------|
|
||||
| **<a id="default_params.port.allow_range" name="default_params.port.allow_range">default_params.port.allow_range</a>**<br/>**Command line**: <br/>• --default_params.port.allow_range<br/>• --default_params.port.no-allow_range<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_RANGE | Can be range of port. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_protocol" name="default_params.port.allow_protocol">default_params.port.allow_protocol</a>**<br/>**Command line**: <br/>• --default_params.port.allow_protocol<br/>• --default_params.port.no-allow_protocol<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_PROTOCOL | Can have the protocol. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_zero" name="default_params.port.allow_zero">default_params.port.allow_zero</a>**<br/>**Command line**: <br/>• --default_params.port.allow_zero<br/>• --default_params.port.no-allow_zero<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_ZERO | Port 0 is allowed. | false | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_wellknown" name="default_params.port.allow_wellknown">default_params.port.allow_wellknown</a>**<br/>**Command line**: <br/>• --default_params.port.allow_wellknown<br/>• --default_params.port.no-allow_wellknown<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_WELLKNOWN | Well-known ports (1 to 1023) are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_registred" name="default_params.port.allow_registred">default_params.port.allow_registred</a>**<br/>**Command line**: <br/>• --default_params.port.allow_registred<br/>• --default_params.port.no-allow_registred<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_REGISTRED | Registred ports (1024 to 49151) are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
| **<a id="default_params.port.allow_private" name="default_params.port.allow_private">default_params.port.allow_private</a>**<br/>**Command line**: <br/>• --default_params.port.allow_private<br/>• --default_params.port.no-allow_private<br/>**Environment variable**: DEFAULT_PARAMS.PORT.ALLOW_PRIVATE | Private ports (greater than 49152) are allowed. | true | [`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) | `standard` |
|
||||
|
||||
|
||||
Use [Tiramisu](https://framagit.org/tiramisu/tiramisu) API to change values:
|
||||
|
||||
```python
|
||||
from rougail import Rougail, RougailConfig
|
||||
from pprint import pprint
|
||||
|
||||
RougailConfig['dictionaries_dir'] = ['dict']
|
||||
rougail = Rougail()
|
||||
config = rougail.get_config()
|
||||
config.option('rougail.my_first_variable').value.set('modified_value')
|
||||
config.option('rougail.my_family.my_second_variable').value.set(2)
|
||||
pprint(config.value.get(), sort_dicts=False)
|
||||
```
|
||||
|
||||
The destination file is generated with new values:
|
||||
|
||||
```json
|
||||
{<TiramisuOption path="rougail">: {<TiramisuOption path="rougail.my_first_variable">: 'modified_value',
|
||||
<TiramisuOption path="rougail.my_family">: {<TiramisuOption path="rougail.my_family.my_second_variable">: 2}}}
|
||||
```
|
||||
|
||||
# Link
|
||||
|
||||
* [Documentation](https://rougail.readthedocs.io/en/latest/)
|
||||
* [Licence ](LICENSE)
|
||||
|
||||
# Related projects
|
||||
|
||||
* [Tiramisu](https://forge.cloud.silique.fr/gnunux/tiramisu)
|
||||
* [Risotto](https://cloud.silique.fr/gitea/risotto/risotto)
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2025-11-21 08:31+0100\n"
|
||||
"PO-Revision-Date: 2025-11-21 08:31+0100\n"
|
||||
"POT-Creation-Date: 2025-12-22 08:45+0100\n"
|
||||
"PO-Revision-Date: 2025-12-22 08:46+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: fr\n"
|
||||
|
|
@ -185,79 +185,146 @@ msgid ""
|
|||
msgstr ""
|
||||
"la variable \"{0}\" a la valeur par défaut invalide \"{1}\" devrait être {2}"
|
||||
|
||||
#: src/rougail/config/__init__.py:276
|
||||
msgid "Structure format version by default, if not specified in structure file"
|
||||
#: src/rougail/config/__init__.py:271
|
||||
msgid "Default version of the structural file format"
|
||||
msgstr "Version par défaut du format des fichiers de structure"
|
||||
|
||||
#: src/rougail/config/__init__.py:272
|
||||
msgid ""
|
||||
"This value is only used if the version is not set in the structural file"
|
||||
msgstr ""
|
||||
"La version du format de la structure par défaut, si non spécifier dans le "
|
||||
"Cette valeur n'est utilisée que si la version n'est pas définie dans le "
|
||||
"fichier de structure"
|
||||
|
||||
#: src/rougail/config/__init__.py:284
|
||||
#: src/rougail/config/__init__.py:280
|
||||
msgid "File with functions"
|
||||
msgstr "Fichier avec les fonctions"
|
||||
|
||||
#: src/rougail/config/__init__.py:296
|
||||
#: src/rougail/config/__init__.py:281
|
||||
msgid ""
|
||||
"This file contains filters and additional Jinja2 functions usable in "
|
||||
"structure files"
|
||||
msgstr ""
|
||||
"Ce fichier contient des filtres et des fonctions Jinja2 supplémentaires "
|
||||
"utilisables dans les fichiers de structure"
|
||||
|
||||
#: src/rougail/config/__init__.py:293
|
||||
msgid "All modes level available"
|
||||
msgstr "Tous les niveaux de modes valides"
|
||||
|
||||
#: src/rougail/config/__init__.py:308
|
||||
#: src/rougail/config/__init__.py:305
|
||||
msgid "Default mode for a family"
|
||||
msgstr "Mode par défaut pour une famille"
|
||||
|
||||
#: src/rougail/config/__init__.py:311
|
||||
msgid "the first one defined in \"modes_level\""
|
||||
msgstr "le premier défini dans \"modes_level\""
|
||||
|
||||
#: src/rougail/config/__init__.py:317 src/rougail/config/__init__.py:344
|
||||
msgid "when no mode is defined in \"modes_level\""
|
||||
msgstr "si aucun mode n'est défini dans \"modes_level\""
|
||||
|
||||
#: src/rougail/config/__init__.py:324 src/rougail/config/__init__.py:351
|
||||
msgid "this mode must be available in \"modes_level\""
|
||||
msgstr "ce mode doit être disponible dans \"modes_level\""
|
||||
|
||||
#: src/rougail/config/__init__.py:328
|
||||
msgid "Default mode for a variable"
|
||||
msgstr "Mode par défaut pour une variable"
|
||||
|
||||
#: src/rougail/config/__init__.py:352
|
||||
#: src/rougail/config/__init__.py:338
|
||||
msgid ""
|
||||
"if the variable \"modes_level\" is defined, the default value is the second "
|
||||
"available element, otherwise, the first"
|
||||
msgstr ""
|
||||
"si la variable \"modes_level\" est définit, la valeur par défaut est le "
|
||||
"second élément disponible, sinon, le premier"
|
||||
|
||||
#: src/rougail/config/__init__.py:355
|
||||
msgid "Option name for the base option"
|
||||
msgstr "Nom de l'option pour l'option de base"
|
||||
|
||||
#: src/rougail/config/__init__.py:357
|
||||
#: src/rougail/config/__init__.py:360
|
||||
msgid "In cache file, do not importation of Tiramisu and other dependencies"
|
||||
msgstr ""
|
||||
"Dans le fichier de cache, ne pas importer Tiramisu et autres dépendances"
|
||||
|
||||
#: src/rougail/config/__init__.py:362
|
||||
msgid "Tiramisu cache filename"
|
||||
msgstr "Nom du fichier du cache Tiramisu"
|
||||
#: src/rougail/config/__init__.py:365
|
||||
#, fuzzy
|
||||
#| msgid "Store tiramisu cache filename"
|
||||
msgid "Store Tiramisu cache filename"
|
||||
msgstr "Enregistrer le cache Tiramisu dans le fichier"
|
||||
|
||||
#: src/rougail/config/__init__.py:370
|
||||
#: src/rougail/config/__init__.py:366
|
||||
msgid ""
|
||||
"This file contains the Tiramisu instructions used internally to load the "
|
||||
"variables.\n"
|
||||
"\n"
|
||||
"This file can be used for debugging"
|
||||
msgstr ""
|
||||
"Ce fichier contient les instructions Tiramisu utilisé en interne pour "
|
||||
"charger les variables.\n"
|
||||
"\n"
|
||||
"Ce fichier peut être utilisé pour le débogage."
|
||||
|
||||
#: src/rougail/config/__init__.py:376
|
||||
msgid "Name of internal functions that we can use as a function"
|
||||
msgstr ""
|
||||
"Nom des fonctions internes qu'il est possible d'utiliser comme fonction"
|
||||
|
||||
#: src/rougail/config/__init__.py:376
|
||||
#: src/rougail/config/__init__.py:382
|
||||
msgid "Name of extra annotators"
|
||||
msgstr "Nom des annotators supplémentaires"
|
||||
|
||||
#: src/rougail/config/__init__.py:382
|
||||
#: src/rougail/config/__init__.py:388
|
||||
msgid "Suffix add to generated options name"
|
||||
msgstr "Suffix ajouté pour généré le nom des options"
|
||||
|
||||
#: src/rougail/config/__init__.py:388
|
||||
#: src/rougail/config/__init__.py:394
|
||||
msgid "Every variables in calculation are optionals"
|
||||
msgstr "Toutes les variables dans un calcul sont optionnelles"
|
||||
|
||||
#: src/rougail/config/__init__.py:392
|
||||
#: src/rougail/config/__init__.py:398
|
||||
msgid "Loads redefine variables even if there don't already exists"
|
||||
msgstr "Charger les variables redéfinis même si elles n'existe pas"
|
||||
|
||||
#: src/rougail/config/__init__.py:399
|
||||
msgid "The secret pattern to build item name in Bitwarden"
|
||||
msgstr "Le patron de secret pour construire le nom de l'élément dans Bitwarden"
|
||||
#: src/rougail/config/__init__.py:402
|
||||
msgid "The secret manager"
|
||||
msgstr "Le gestionnaire de secret"
|
||||
|
||||
#: src/rougail/config/__init__.py:400
|
||||
msgid "The pattern is in Jinja format"
|
||||
msgstr "Le patron est au format Jinja"
|
||||
#: src/rougail/config/__init__.py:405
|
||||
msgid ""
|
||||
"The secret pattern to constructing the name of the item searched for in the "
|
||||
"secret manager"
|
||||
msgstr ""
|
||||
"Le modèle de secret permettant de construire le nom de l'élément recherché "
|
||||
"dans le gestionnaire de secrets"
|
||||
|
||||
#: src/rougail/config/__init__.py:428
|
||||
#: src/rougail/config/__init__.py:406
|
||||
msgid "The pattern is in Jinja2 format"
|
||||
msgstr "Le modèle est au format Jinja2"
|
||||
|
||||
#: src/rougail/config/__init__.py:415
|
||||
msgid "structural"
|
||||
msgstr "structure"
|
||||
|
||||
#: src/rougail/config/__init__.py:416
|
||||
msgid "user datas"
|
||||
msgstr "données utilisateur"
|
||||
|
||||
#: src/rougail/config/__init__.py:417
|
||||
msgid "output"
|
||||
msgstr "sortie"
|
||||
|
||||
#: src/rougail/config/__init__.py:438
|
||||
msgid "Select for {0}"
|
||||
msgstr "Sélection pour {0}"
|
||||
|
||||
#: src/rougail/config/__init__.py:508
|
||||
#: src/rougail/config/__init__.py:500
|
||||
msgid "Override default parameters for option type"
|
||||
msgstr "Sur charger les paramètre par défaut pour le type d'option"
|
||||
|
||||
#: src/rougail/config/__init__.py:511
|
||||
#: src/rougail/config/__init__.py:503
|
||||
msgid "Default parameters for option type"
|
||||
msgstr "Paramètre par défaut pour le type d'option"
|
||||
|
||||
|
|
@ -296,42 +363,42 @@ msgstr ""
|
|||
"définition invalide pour la définition des \"structures\" ({0}), aucun "
|
||||
"fichier de structure ne peut être chargé !"
|
||||
|
||||
#: src/rougail/convert/object_model.py:121
|
||||
#: src/rougail/convert/object_model.py:132
|
||||
msgid "cannot find variable \"{0}\" defined in attribute \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
"ne peut trouver la variable \"{0}\" défini dans l'attribut \"{1}\" pour "
|
||||
"\"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:127
|
||||
#: src/rougail/convert/object_model.py:138
|
||||
msgid ""
|
||||
"the variable \"{0}\" is in fact a family in attribute \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
"la variable \"{0}\" est en faite une famille dans l'attribut \"{1}\" pour "
|
||||
"\"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:132
|
||||
#: src/rougail/convert/object_model.py:513
|
||||
#: src/rougail/convert/object_model.py:143
|
||||
#: src/rougail/convert/object_model.py:527
|
||||
msgid "unknown object \"{0}\" in attribute \"{1}\" for \"{2}\""
|
||||
msgstr "objet inconnu \"{0}\" dans l'attribut \"{1}\" pour \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:151
|
||||
#: src/rougail/convert/object_model.py:162
|
||||
msgid ""
|
||||
"identifier parameter for \"{0}\" in \"{1}\" cannot be set none dynamic family"
|
||||
msgstr ""
|
||||
"le paramètre identifier pour \"{0}\" dans \"{1}\" ne peut être placé pour "
|
||||
"une famille non dynamique"
|
||||
|
||||
#: src/rougail/convert/object_model.py:180
|
||||
#: src/rougail/convert/object_model.py:191
|
||||
msgid "cannot find variable \"{0}\" defined in \"{1}\" for \"{2}\""
|
||||
msgstr "ne peut trouver la variable \"{0}\" défini dans \"{1}\" pour \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:185
|
||||
#: src/rougail/convert/object_model.py:196
|
||||
msgid "variable \"{0}\" defined in \"{1}\" for \"{2}\" is a dynamic variable"
|
||||
msgstr ""
|
||||
"la variable \"{0}\" défini dans \"{1}\" pour \"{2}\" est une variable "
|
||||
"dynamique"
|
||||
|
||||
#: src/rougail/convert/object_model.py:202
|
||||
#: src/rougail/convert/object_model.py:213
|
||||
msgid ""
|
||||
"the variable \"{0}\" is not a follower, so cannot have index type for param "
|
||||
"in \"{1}\""
|
||||
|
|
@ -339,7 +406,7 @@ msgstr ""
|
|||
"la variable \"{0}\" n'est pas suiveuse, donc ne peut avoir de type index "
|
||||
"comme paramètre dans \"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:252
|
||||
#: src/rougail/convert/object_model.py:263
|
||||
msgid ""
|
||||
"\"warnings\" are only available with attribute \"{self.attribute_name}\" for "
|
||||
"variable \"{self.ori_path}\""
|
||||
|
|
@ -347,16 +414,16 @@ msgstr ""
|
|||
"\"warnings\" est seulement utilisable avec l'attribut \"{self.attribute_name}"
|
||||
"\" pour la variable \"{self.ori_path}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:314
|
||||
#: src/rougail/convert/object_model.py:325
|
||||
msgid ""
|
||||
"the variable \"{0}\" has a depreciated return_type \"{1}\", please use "
|
||||
"\"{2}\" instead in \"{3}\""
|
||||
"\"{2}\" instead in {3}"
|
||||
msgstr ""
|
||||
"la variable \"{0}\" a un attribut return_type déprécié \"{1}\", veuillez "
|
||||
"utiliser\"{2}\" au lieu de \"{3}\""
|
||||
"utiliser \"{2}\" au lieu de \"{3}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:404
|
||||
#: src/rougail/convert/object_model.py:435
|
||||
#: src/rougail/convert/object_model.py:415
|
||||
#: src/rougail/convert/object_model.py:446
|
||||
msgid ""
|
||||
"variable \"{0}\" has a calculating \"{1}\" with an invalid return_type, "
|
||||
"should be boolean or string, not \"{2}\""
|
||||
|
|
@ -364,7 +431,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un calcul \"{1}\" avec un return_type invalide, "
|
||||
"devrait être un booléen ou une chaîne de caractère, et pas \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:411
|
||||
#: src/rougail/convert/object_model.py:422
|
||||
msgid ""
|
||||
"the variable \"{0}\" has a return_type \"{1}\", for attribute \"{2}\" but "
|
||||
"has not description in {3}"
|
||||
|
|
@ -372,11 +439,11 @@ msgstr ""
|
|||
"la variable \"{0}\" a un return_type \"{1}\", pour l'attribut \"{2}\" mais "
|
||||
"n'a pas de description dans {3}"
|
||||
|
||||
#: src/rougail/convert/object_model.py:416
|
||||
#: src/rougail/convert/object_model.py:427
|
||||
msgid "value is invalid"
|
||||
msgstr "la valeur est invalide"
|
||||
|
||||
#: src/rougail/convert/object_model.py:508
|
||||
#: src/rougail/convert/object_model.py:522
|
||||
msgid ""
|
||||
"a variable \"{0}\" is needs in attribute \"{1}\" for \"{2}\" but it's a "
|
||||
"family"
|
||||
|
|
@ -384,7 +451,7 @@ msgstr ""
|
|||
"une variable \"{0}\" est nécessaire pour l'attribut \"{1}\" pour \"{2}\" "
|
||||
"mais c'est une famille"
|
||||
|
||||
#: src/rougail/convert/object_model.py:533
|
||||
#: src/rougail/convert/object_model.py:547
|
||||
msgid ""
|
||||
"variable \"{0}\" has an attribute \"{1}\" calculated with the unknown "
|
||||
"variable \"{2}\""
|
||||
|
|
@ -392,7 +459,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\" calculé avec la variable "
|
||||
"inconnue \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:585
|
||||
#: src/rougail/convert/object_model.py:599
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid \"{1}\" the variable \"{2}\" is in a sub "
|
||||
"dynamic option"
|
||||
|
|
@ -400,14 +467,14 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" est "
|
||||
"dans une sous option dynamique"
|
||||
|
||||
#: src/rougail/convert/object_model.py:594
|
||||
#: src/rougail/convert/object_model.py:608
|
||||
msgid ""
|
||||
"the leader \"{0}\" has an invalid \"{1}\" the follower \"{2}\" is a multi"
|
||||
msgstr ""
|
||||
"la variable meneuse \"{0}\" a un attribut invalide \"{1}\", la variable "
|
||||
"suiveuse \"{2}\" est multiple"
|
||||
|
||||
#: src/rougail/convert/object_model.py:636
|
||||
#: src/rougail/convert/object_model.py:650
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" "
|
||||
"must not be multi"
|
||||
|
|
@ -415,7 +482,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" ne "
|
||||
"doit pas être multiple"
|
||||
|
||||
#: src/rougail/convert/object_model.py:650
|
||||
#: src/rougail/convert/object_model.py:664
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid attribute \"{1}\", the variable must not "
|
||||
"be a multi or the variable \"{2}\" must be multi"
|
||||
|
|
@ -423,7 +490,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", la variable ne doit pas "
|
||||
"être multiple ou la variable \"{2}\" doit être multiple"
|
||||
|
||||
#: src/rougail/convert/object_model.py:664
|
||||
#: src/rougail/convert/object_model.py:678
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid attribute \"{1}\", the variable must be "
|
||||
"a multi or the variable \"{2}\" must not be multi"
|
||||
|
|
@ -431,7 +498,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", la variable doit être "
|
||||
"multiple ou la variable \"{2}\" ne doit pas être multiple"
|
||||
|
||||
#: src/rougail/convert/object_model.py:678
|
||||
#: src/rougail/convert/object_model.py:692
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" "
|
||||
"is multi but is inside a list"
|
||||
|
|
@ -439,7 +506,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", la variable \"{2}\" est "
|
||||
"multiple mais est dans une liste"
|
||||
|
||||
#: src/rougail/convert/object_model.py:700
|
||||
#: src/rougail/convert/object_model.py:714
|
||||
msgid ""
|
||||
"the variable \"{0}\" is waiting for a list as \"{1}\" but the attribute "
|
||||
"\"default\" is not a list (\"{2}\")"
|
||||
|
|
@ -447,7 +514,7 @@ msgstr ""
|
|||
"la variable \"{0}\" attend une liste comme \"{1}\" mais l'attribut "
|
||||
"\"default\" n'est pas une liste \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:704
|
||||
#: src/rougail/convert/object_model.py:718
|
||||
msgid ""
|
||||
"the variable \"{0}\" is not waiting for a list as \"{1}\" but the attribute "
|
||||
"\"default\" is a list (\"{2}\")"
|
||||
|
|
@ -455,7 +522,7 @@ msgstr ""
|
|||
"la variable \"{0}\" n'attend pas une liste comme \"{1}\" mais l'attribut "
|
||||
"\"default\" est une liste \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:726
|
||||
#: src/rougail/convert/object_model.py:740
|
||||
msgid ""
|
||||
"\"{0}\" attribut shall not have an \"optional\" attribute without the "
|
||||
"\"default\" attribute for variable \"{1}\""
|
||||
|
|
@ -463,7 +530,7 @@ msgstr ""
|
|||
"l'attribut \"{0}\" ne devrait pas avoir d'attribut \"optional\" sans "
|
||||
"l'attribut \"default\" pour la variable \"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:748
|
||||
#: src/rougail/convert/object_model.py:762
|
||||
msgid ""
|
||||
"variable \"{0}\" has a default value calculated with \"{1}\" which has "
|
||||
"incompatible type"
|
||||
|
|
@ -471,7 +538,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a une valeur par défaut calculé a partir de \"{1}\" "
|
||||
"laquelle a un type incompatible"
|
||||
|
||||
#: src/rougail/convert/object_model.py:790
|
||||
#: src/rougail/convert/object_model.py:804
|
||||
msgid ""
|
||||
"the variable \"{0}\" is waiting for a boolean as \"{1}\" but the attribute "
|
||||
"\"default\" is not a boolean (\"{2}\")"
|
||||
|
|
@ -479,7 +546,7 @@ msgstr ""
|
|||
"la variable \"{0}\" attend un booléan comme \"{1}\" mais l'attribut "
|
||||
"\"default\" n'est pas une booléan (\"{2}\")"
|
||||
|
||||
#: src/rougail/convert/object_model.py:812
|
||||
#: src/rougail/convert/object_model.py:826
|
||||
msgid ""
|
||||
"\"when\" is not allowed in format version 1.0 for attribute \"{0}\" for "
|
||||
"variable \"{1}\""
|
||||
|
|
@ -487,7 +554,7 @@ msgstr ""
|
|||
"\"when\" n'est pas autorisé avec le format en version 1.0 pour l'attribut "
|
||||
"\"{0}\" pour la variable \"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:817
|
||||
#: src/rougail/convert/object_model.py:831
|
||||
msgid ""
|
||||
"the variable \"{0}\" has an invalid attribute \"{1}\", \"when\" and "
|
||||
"\"when_not\" cannot set together"
|
||||
|
|
@ -495,7 +562,7 @@ msgstr ""
|
|||
"la variable \"{0}\" a un attribut invalide \"{1}\", \"when\" et \"when_not\" "
|
||||
"ne peuvent pas être défini ensemble"
|
||||
|
||||
#: src/rougail/convert/object_model.py:825
|
||||
#: src/rougail/convert/object_model.py:839
|
||||
msgid ""
|
||||
"\"when_not\" is not allowed in format version 1.0 for attribute \"{0}\" for "
|
||||
"variable \"{1}\""
|
||||
|
|
@ -503,7 +570,15 @@ msgstr ""
|
|||
"\"when_not\" n'est pas autorisé au format 1.0 pour l'attribut \"{0}\" pour "
|
||||
"la variable variable \"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:881
|
||||
#: src/rougail/convert/object_model.py:850
|
||||
msgid ""
|
||||
"\"when\" or \"when_not\" is mandatory for the not boolean variable \"{0}\" "
|
||||
"in attribute \"{1}\""
|
||||
msgstr ""
|
||||
"\"when\" ou \"when_not\" est obligatoire pour la variable non booléenne "
|
||||
"\"{0}\" dans l'attribut \"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:898
|
||||
msgid ""
|
||||
"cannot find variable \"{0}\" for the information \"{1}\" when calculating "
|
||||
"\"{2}\""
|
||||
|
|
@ -511,19 +586,19 @@ msgstr ""
|
|||
"ne peut trouver la variable \"{0}\" pour l'information \"{1}\" lors du "
|
||||
"calcul de \"{2}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:886
|
||||
#: src/rougail/convert/object_model.py:903
|
||||
msgid ""
|
||||
"identifier not allowed for the information \"{0}\" when calculating \"{1}\""
|
||||
msgstr ""
|
||||
"identifier n'est pas autorisé pour l'information \"{0}\" lors du calcul de "
|
||||
"\"{1}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:938
|
||||
#: src/rougail/convert/object_model.py:955
|
||||
msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\""
|
||||
msgstr "\"when\" n'est pas autorisé au format 1.0 pour l'attribut \"{0}\""
|
||||
|
||||
#: src/rougail/convert/object_model.py:944
|
||||
#: src/rougail/convert/object_model.py:954
|
||||
#: src/rougail/convert/object_model.py:961
|
||||
#: src/rougail/convert/object_model.py:971
|
||||
msgid ""
|
||||
"the identifier has an invalid attribute \"{0}\", \"when\" and \"when_not\" "
|
||||
"cannot set together"
|
||||
|
|
@ -531,7 +606,7 @@ msgstr ""
|
|||
"l'identifiant a un attribut invalide \"{0}\", \"when\" et \"when_not\" ne "
|
||||
"peuvent pas être défini ensemble"
|
||||
|
||||
#: src/rougail/convert/object_model.py:980
|
||||
#: src/rougail/convert/object_model.py:997
|
||||
msgid ""
|
||||
"the variable \"{0}\" is not a follower, so cannot have index type for \"{1}\""
|
||||
msgstr ""
|
||||
|
|
@ -546,20 +621,36 @@ msgstr ""
|
|||
"Une variable ou une famille localisé dans l'espace de nom \"{0}\" ne devrait "
|
||||
"pas être utilisé dans l'espace de nom \"{1}\""
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:353
|
||||
#: src/rougail/convert/tiramisureflector.py:348
|
||||
msgid ""
|
||||
"variable param \"{0}\" has whole attribute but it's not allowed for external "
|
||||
"variable"
|
||||
msgstr ""
|
||||
"le paramètre de la variable \"{0}\" a un attribut whole mais ce n'est pas "
|
||||
"autorisé pour une variable externe"
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:351
|
||||
msgid ""
|
||||
"variable param \"{0}\" has dynamic attribute but it's not allowed for "
|
||||
"external variable"
|
||||
msgstr ""
|
||||
"le paramètre de la variable \"{0}\" a un attribut dynamique mais ce n'est "
|
||||
"pas autorisé pour une variable externe"
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:360
|
||||
msgid "internal error, {0} is not a dynamic variable"
|
||||
msgstr "erreur interne, \"{0}\" n'est pas une variable dynamique"
|
||||
|
||||
#: src/rougail/error.py:61 src/rougail/tiramisu.py:162
|
||||
#: src/rougail/user_datas.py:412 src/rougail/user_datas.py:415
|
||||
#: src/rougail/error.py:61 src/rougail/tiramisu.py:235
|
||||
#: src/rougail/user_data.py:452 src/rougail/user_data.py:455
|
||||
msgid "{0} in {1}"
|
||||
msgstr "{0} dans {1}"
|
||||
|
||||
#: src/rougail/structural_commandline/annotator.py:66
|
||||
#: src/rougail/structural_commandline/annotator.py:67
|
||||
msgid "alternative_name \"{0}\" conflict with \"--help\""
|
||||
msgstr "alternative_name \"{0}\" est en conflit avec \"--help\""
|
||||
|
||||
#: src/rougail/structural_commandline/annotator.py:71
|
||||
#: src/rougail/structural_commandline/annotator.py:72
|
||||
msgid "conflict alternative_name \"{0}\": \"{1}\" and \"{2}\""
|
||||
msgstr "conflit dans les \"alternative_name\" \"{0}\": \"{1}\" et \"{2}\""
|
||||
|
||||
|
|
@ -568,21 +659,33 @@ msgid "duplicate structural file name {0}"
|
|||
msgstr "nom de fichier {0} de structure dupliqué"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:32
|
||||
msgid "Main namespace name"
|
||||
msgstr "Nom de l'espace de nom principal"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:40
|
||||
msgid "directory or string is not in \"_.step.structural\""
|
||||
msgstr "directory ou string n'est pas dans \"_.step.structural\""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:43
|
||||
msgid "Directories where structural files are placed"
|
||||
msgstr "Répertoires où sont placés les fichiers de structure"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:49
|
||||
#: src/rougail/structural_directory/config.py:60
|
||||
msgid "Sort structural from differents directories"
|
||||
msgstr "Trier les fichiers de structure à partir de différents répertoires"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:58
|
||||
msgid "Main namespace name"
|
||||
msgstr "Nom de l'espace de nom principal"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:69
|
||||
msgid "Namespaces are isolated"
|
||||
msgstr "Les espaces de noms sont isolés"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:75
|
||||
msgid ""
|
||||
"directory or string is not in \"_.step.structural\" or \"_.main_namespace\" "
|
||||
"is not set"
|
||||
msgstr ""
|
||||
"directory ou string n'est pas dans \"_.step.structural\" ou "
|
||||
"\"_.main_namespace\" n'est pas défini"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:78
|
||||
msgid "Extra namespaces"
|
||||
msgstr "Espaces de nom supplémentaires"
|
||||
|
|
@ -597,48 +700,234 @@ msgstr ""
|
|||
"Répertoires où sont placés les fichiers de structure de l'espace de nom "
|
||||
"supplémentaire"
|
||||
|
||||
#: src/rougail/structural_directory/config.py:106
|
||||
msgid "directory is not in \"__.step.structural\""
|
||||
msgstr "directory n'est pas dans \"__.step.structural\""
|
||||
|
||||
#: src/rougail/structural_string/config.py:32
|
||||
msgid "Structural files contents"
|
||||
msgstr "Contenu des fichiers de structure"
|
||||
|
||||
#: src/rougail/structural_string/config.py:33
|
||||
#: src/rougail/structural_string/config.py:51
|
||||
msgid "This variable is a list of string with YAML file format"
|
||||
msgstr ""
|
||||
"Cette variable est une liste de chaîne de caractère avec le format d'un "
|
||||
"fichier YAML"
|
||||
|
||||
#: src/rougail/structural_string/config.py:45
|
||||
msgid "string is not in \"_.step.structural\""
|
||||
msgstr "string n'est pas dans \"_.step.structural\""
|
||||
|
||||
#: src/rougail/structural_string/config.py:50
|
||||
msgid "Extra structural contents"
|
||||
msgstr "Contenu de structure supplémentaire"
|
||||
|
||||
#: src/rougail/structural_string/config.py:58
|
||||
msgid "string is not in \"__.step.structural\""
|
||||
msgstr "string n'est pas dans \"__.step.structural\""
|
||||
|
||||
#: src/rougail/tiramisu.py:83
|
||||
msgid "unknown boolean value \"{0}\""
|
||||
msgstr "valeur du booléen inconnue \"{0}\""
|
||||
|
||||
#: src/rougail/tiramisu.py:335
|
||||
msgid ""
|
||||
"cannot calculating \"{0}\" attribute for variable \"{1}\" in {2} with "
|
||||
"parameters \"{3}\": {4}"
|
||||
msgstr ""
|
||||
"ne peut calculer l'attribut \"{0}\" pour la variable \"{1}\" dans {2} avec "
|
||||
"les paramètres \"{3}\" : {4}"
|
||||
#: src/rougail/tiramisu.py:86
|
||||
msgid "IP must be in CIDR format"
|
||||
msgstr "l'IP doit être au format CIDR"
|
||||
|
||||
#: src/rougail/user_datas.py:145
|
||||
#: src/rougail/tiramisu.py:87
|
||||
msgid "private IP are allowed"
|
||||
msgstr "les IP privées sont autorisées"
|
||||
|
||||
#: src/rougail/tiramisu.py:88
|
||||
msgid "reserved IP are allowed"
|
||||
msgstr "les IP réservées sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:91
|
||||
msgid "network must be in CIDR format"
|
||||
msgstr "le réseau doit être au format CIDR"
|
||||
|
||||
#: src/rougail/tiramisu.py:92
|
||||
msgid "private network are allowed"
|
||||
msgstr "les réseaux privés sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:93
|
||||
msgid "reserved network are allowed"
|
||||
msgstr "les réseaux réservés sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:96
|
||||
msgid "can be range of port"
|
||||
msgstr "peut être une plage de port"
|
||||
|
||||
#: src/rougail/tiramisu.py:97
|
||||
msgid "can have the protocol"
|
||||
msgstr "peut avoir le protocole"
|
||||
|
||||
#: src/rougail/tiramisu.py:98
|
||||
msgid "port 0 is allowed"
|
||||
msgstr "port 0 est autorisé"
|
||||
|
||||
#: src/rougail/tiramisu.py:99
|
||||
msgid "well-known ports (1 to 1023) are allowed"
|
||||
msgstr "les ports connus (1 à 1023) sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:100
|
||||
msgid "registred ports (1024 to 49151) are allowed"
|
||||
msgstr "les ports enregistrés (1024 à 49151) sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:101
|
||||
msgid "private ports (greater than 49152) are allowed"
|
||||
msgstr "les ports privés (supérieur à 49152) sont autorisés"
|
||||
|
||||
#: src/rougail/tiramisu.py:104
|
||||
msgid "type of domainname"
|
||||
msgstr "type de nom de domaine"
|
||||
|
||||
#: src/rougail/tiramisu.py:104
|
||||
msgid "type {0}"
|
||||
msgstr "type de {0}"
|
||||
|
||||
#: src/rougail/tiramisu.py:105
|
||||
msgid "the domain name can starts by a dot"
|
||||
msgstr "le nom de domaine peut démarré par un point"
|
||||
|
||||
#: src/rougail/tiramisu.py:106
|
||||
msgid "the domain name can be a hostname"
|
||||
msgstr "le nom de domaine peut être un nom d'hôte"
|
||||
|
||||
#: src/rougail/tiramisu.py:107
|
||||
msgid "the domain name can be an IP"
|
||||
msgstr "le nom de domaine peut être une IP"
|
||||
|
||||
#: src/rougail/tiramisu.py:108
|
||||
msgid "the domain name can be network in CIDR format"
|
||||
msgstr "le nom de domaine peut être un réseau au format CIDR"
|
||||
|
||||
#: src/rougail/tiramisu.py:109
|
||||
msgid "the domain name must exist"
|
||||
msgstr "le nom de domaine doit exister"
|
||||
|
||||
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
|
||||
msgid "the minimum value"
|
||||
msgstr "la valeur minimale"
|
||||
|
||||
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
|
||||
msgid "the minimum value is {0}"
|
||||
msgstr "la valeur minimale est {0}"
|
||||
|
||||
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
|
||||
msgid "the maximum value"
|
||||
msgstr "la valeur maximale"
|
||||
|
||||
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
|
||||
msgid "the maximum value is {0}"
|
||||
msgstr "la valeur maximale est {0}"
|
||||
|
||||
#: src/rougail/tiramisu.py:135
|
||||
msgid "minimum characters length for the secret"
|
||||
msgstr "longueur minimum de caractère pour un secret"
|
||||
|
||||
#: src/rougail/tiramisu.py:135
|
||||
msgid "minimum length for the secret is {0} characters"
|
||||
msgstr "longueur minimum pour un secret est de {0} caractères"
|
||||
|
||||
#: src/rougail/tiramisu.py:136
|
||||
msgid "maximum characters length for the secret"
|
||||
msgstr "longueur maximum de caractère pour un secret"
|
||||
|
||||
#: src/rougail/tiramisu.py:136
|
||||
msgid "maximum length for the secret is {0} characters"
|
||||
msgstr "longueur maximum pour un secret est de {0} caractères"
|
||||
|
||||
#: src/rougail/tiramisu.py:137
|
||||
msgid "forbidden characters"
|
||||
msgstr "caractères interdits"
|
||||
|
||||
#: src/rougail/tiramisu.py:137
|
||||
msgid "forbidden characters: {0}"
|
||||
msgstr "caractères interdits: {0}"
|
||||
|
||||
#: src/rougail/tiramisu.py:144
|
||||
msgid "this filename could be a relative path"
|
||||
msgstr "le nom de fichier peut être une chemin relatif"
|
||||
|
||||
#: src/rougail/tiramisu.py:145
|
||||
msgid "this file must exist"
|
||||
msgstr "le fichier doit exister"
|
||||
|
||||
#: src/rougail/tiramisu.py:146
|
||||
msgid "file type allowed"
|
||||
msgstr "type de fichier autorisé"
|
||||
|
||||
#: src/rougail/tiramisu.py:146
|
||||
msgid "file type allowed: {0}"
|
||||
msgstr "type de fichier autorisé: {0}"
|
||||
|
||||
#: src/rougail/tiramisu.py:436
|
||||
msgid "cannot calculate the variable \"{0}\""
|
||||
msgstr "ne peut calculer la variable \"{0}\""
|
||||
|
||||
#: src/rougail/tiramisu.py:437
|
||||
msgid ""
|
||||
"the attribute \"{0}\" in {1} with the parameters \"{2}\" causes the error: "
|
||||
"{3}"
|
||||
msgstr ""
|
||||
"l'attribut \"{0}\" dans {1} avec les paramètres \"{2}\" provoque l'erreur : "
|
||||
"{3}"
|
||||
|
||||
#: src/rougail/tiramisu.py:455
|
||||
msgid "cannot converting the variable \"{0}\""
|
||||
msgstr "ne peut convertir la variable \"{0}\""
|
||||
|
||||
#: src/rougail/tiramisu.py:456
|
||||
msgid "\"{0}\" is an invalid {1}"
|
||||
msgstr "\"{0}\" est un {1} invalide"
|
||||
|
||||
#: src/rougail/tiramisu.py:458
|
||||
msgid "the attribute \"{0}\" in {1} causes the error: {2}"
|
||||
msgstr "l'attribut \"{0}\" dans {1} provoque l'erreur : {2}"
|
||||
|
||||
#: src/rougail/user_data.py:146
|
||||
msgid ""
|
||||
"cannot load variable path \"{0}\", the identifier \"{1}\" is not valid in {2}"
|
||||
msgstr ""
|
||||
"ne peut charger la variable \"{0}\", l'identifiant \"{1}\" n'est pas valide "
|
||||
"dans {2}"
|
||||
|
||||
#: src/rougail/user_datas.py:229
|
||||
msgid "the variable \"{0}\" contains secrets and should not be defined in {1}"
|
||||
#: src/rougail/user_data.py:230
|
||||
msgid "the variable contains secrets and should not be defined in {0}"
|
||||
msgstr ""
|
||||
"la variable \"{0}\" contient des secrets et ne devrait pas être défini dans "
|
||||
"{1}"
|
||||
"la variable contient des secrets et ne devrait pas être défini dans {0}"
|
||||
|
||||
#: src/rougail/user_datas.py:269
|
||||
#: src/rougail/user_data.py:269
|
||||
msgid "loaded from {0}"
|
||||
msgstr "chargée depuis {0}"
|
||||
|
||||
#: src/rougail/user_datas.py:311
|
||||
#: src/rougail/user_data.py:311
|
||||
msgid ""
|
||||
"cannot set the value \"{0}\" to the family {1}, it will be ignored when "
|
||||
"loading from {2}"
|
||||
"is a family so we cannot set the value \"{0}\", it has been loading from {1}"
|
||||
msgstr ""
|
||||
"impossible de définir la valeur \"{0}\" à la famille {1}, elle sera ignorée "
|
||||
"lors du chargement depuis {2}"
|
||||
"est une famille donc il n'est pas possible de définir la valeur \"{0}\", "
|
||||
"elle a été chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_datas.py:322 src/rougail/user_datas.py:339
|
||||
msgid "{0} loaded from {1}"
|
||||
msgstr "{0} chargée depuis {1}"
|
||||
#: src/rougail/user_data.py:315
|
||||
msgid ""
|
||||
"is a family so we cannot set the value \"{0}\", it will be ignored when "
|
||||
"loading from {1}"
|
||||
msgstr ""
|
||||
"est une famille donc il n'est pas possible de définir la valeur \"{0}\", "
|
||||
"elle sera ignorée lors du chargement depuis {1}"
|
||||
|
||||
#: src/rougail/user_datas.py:327
|
||||
#: src/rougail/user_data.py:326
|
||||
msgid "{0}, it has been loaded from {1}"
|
||||
msgstr "{0}, elle a été chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:332
|
||||
msgid "variable or family \"{0}\" does not exist, it has been loading from {1}"
|
||||
msgstr ""
|
||||
"la variable ou la famille \"{0}\" n'existe pas, elle a été chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:336
|
||||
msgid ""
|
||||
"variable or family \"{0}\" does not exist, it will be ignored when loading "
|
||||
"from {1}"
|
||||
|
|
@ -646,7 +935,12 @@ msgstr ""
|
|||
"la variable ou la famille \"{0}\" n'existe pas, elle sera ignorée lors du "
|
||||
"chargement depuis {1}"
|
||||
|
||||
#: src/rougail/user_datas.py:333
|
||||
#: src/rougail/user_data.py:342
|
||||
msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}"
|
||||
msgstr ""
|
||||
"\"{0}\" est le nom d'une famille dynamique, elle a été chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:346
|
||||
msgid ""
|
||||
"\"{0}\" is the name of a dynamic family, it will be ignored when loading "
|
||||
"from {1}"
|
||||
|
|
@ -654,7 +948,16 @@ msgstr ""
|
|||
"\"{0}\" est le nom d'une famille dynamique, il sera ignoré lors du "
|
||||
"chargement depuis {1}"
|
||||
|
||||
#: src/rougail/user_datas.py:369
|
||||
#: src/rougail/user_data.py:354
|
||||
msgid "{0} loaded from {1}"
|
||||
msgstr "{0} chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:385
|
||||
msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
"la variable {0} à l'index \"{1}\" est {2}, elle a été chargée depuis {3}"
|
||||
|
||||
#: src/rougail/user_data.py:389
|
||||
msgid ""
|
||||
"variable {0} at index \"{1}\" is {2}, it will be ignored when loading from "
|
||||
"{3}"
|
||||
|
|
@ -662,23 +965,50 @@ msgstr ""
|
|||
"la variable {0} à l'index \"{1}\" est {2}, elle sera ignorée lors du "
|
||||
"chargement depuis {3}"
|
||||
|
||||
#: src/rougail/user_datas.py:380
|
||||
#: src/rougail/user_data.py:402
|
||||
msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}"
|
||||
msgstr ""
|
||||
"la famille {0} est {1}, {2} à l'index \"{3}\", elle a été chargée depuis {4}"
|
||||
|
||||
#: src/rougail/user_data.py:406
|
||||
msgid ""
|
||||
"family {0} is {1}, {2} at index \"{3}\" will be ignored when loading from {4}"
|
||||
"family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading "
|
||||
"from {4}"
|
||||
msgstr ""
|
||||
"la famille {0} est {1}, {2} à l'index \"{3}\" sera ignorée lors du "
|
||||
"chargement depuis {4}"
|
||||
"la famille {0} est {1}, {2} à l'index \"{3}\", elle a été chargée depuis {4}"
|
||||
|
||||
#: src/rougail/user_datas.py:393
|
||||
msgid "variable {0} is {1}, it will be ignored when loading from {2}"
|
||||
#: src/rougail/user_data.py:421
|
||||
msgid "variable is {0}, it has been loading from {1}"
|
||||
msgstr "la variable est {0}, elle a été chargée depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:425
|
||||
msgid "variable is {0}, it will be ignored when loading from {1}"
|
||||
msgstr "la variable est {0}, elle sera ignorée lors du chargement depuis {1}"
|
||||
|
||||
#: src/rougail/user_data.py:435
|
||||
msgid ""
|
||||
"family {0} is {1}, so cannot access to {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
"la variable {0} est {1}, elle sera ignorée lors du chargement depuis {2}"
|
||||
"la famille {0} est {1}, donc ne peut accéder à {2}, elle a été chargée "
|
||||
"depuis {3}"
|
||||
|
||||
#: src/rougail/user_datas.py:401
|
||||
msgid "family {0} is {1}, {2} will be ignored when loading from {3}"
|
||||
msgstr "la famille {0} est {1}, {2} sera ignorée lors du chargement depuis {3}"
|
||||
#: src/rougail/user_data.py:439
|
||||
msgid ""
|
||||
"family {0} is {1}, so cannot access to {2}, it will be ignored when loading "
|
||||
"from {3}"
|
||||
msgstr ""
|
||||
"la famille {0} est {1}, donc ne peut accéder à {2}, sera ignorée lors du "
|
||||
"chargement depuis {3}"
|
||||
|
||||
#: src/rougail/user_datas.py:421
|
||||
#: src/rougail/user_data.py:461
|
||||
msgid ""
|
||||
"the value \"{0}\" is an invalid {1} for {2} at index \"{3}\", {4}, it has "
|
||||
"been loading from {5}"
|
||||
msgstr ""
|
||||
"la valeur \"{0}\" est un {1} invalide pour {2} à l'index \"{3}\", {4}, elle "
|
||||
"a été chargée depuis {5}"
|
||||
|
||||
#: src/rougail/user_data.py:465
|
||||
msgid ""
|
||||
"the value \"{0}\" is an invalid {1} for {2} at index \"{3}\", {4}, it will "
|
||||
"be ignored when loading from {5}"
|
||||
|
|
@ -686,13 +1016,18 @@ msgstr ""
|
|||
"la valeur \"{0}\" est un {1} invalide pour {2} à l'index \"{3}\", {4}, elle "
|
||||
"sera ignorée lors du chargement depuis {5}"
|
||||
|
||||
#: src/rougail/user_datas.py:435
|
||||
msgid ""
|
||||
"the value \"{0}\" is an invalid {1} for {2}, {3}, it will be ignored when "
|
||||
"loading from {4}"
|
||||
#: src/rougail/user_data.py:481
|
||||
msgid "the value \"{0}\" is an invalid {1}, {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
"la valeur \"{0}\" est un {1} invalide pour {2}, {3}, elle sera ignorée lors "
|
||||
"du chargement depuis {4}"
|
||||
"la valeur \"{0}\" est un {1} invalide pour {2}, elle a été chargée depuis {3}"
|
||||
|
||||
#: src/rougail/user_data.py:485
|
||||
msgid ""
|
||||
"the value \"{0}\" is an invalid {1}, {2}, it will be ignored when loading "
|
||||
"from {3}"
|
||||
msgstr ""
|
||||
"la valeur \"{0}\" est un {1} invalide pour {2}, elle sera ignorée lors du "
|
||||
"chargement depuis {4}"
|
||||
|
||||
#: src/rougail/utils.py:56
|
||||
msgid ""
|
||||
|
|
@ -702,30 +1037,41 @@ msgstr ""
|
|||
"nom invalide pour la variable ou famille \"{0}\" doit seulement contenir des "
|
||||
"caractères ascii minuscule, nombre or _"
|
||||
|
||||
#: src/rougail/utils.py:103
|
||||
msgid "error in jinja \"{0}\" for the variable \"{1}\": {2}"
|
||||
msgstr "erreur dans Jinja \"{0}\" pour la variable \"{1}\": {2}"
|
||||
#: src/rougail/utils.py:104
|
||||
msgid "error for the variable \"{1}\" in jinja \"{0}\": {2}"
|
||||
msgstr "erreur pour la variable \"{1}\" dans le jinja \"{0}\": {2}"
|
||||
|
||||
#: src/rougail/utils.py:212
|
||||
#: src/rougail/utils.py:213
|
||||
msgid "mandatory"
|
||||
msgstr "obligatoire"
|
||||
|
||||
#: src/rougail/utils.py:213
|
||||
#: src/rougail/utils.py:214
|
||||
msgid "hidden"
|
||||
msgstr "cachée"
|
||||
|
||||
#: src/rougail/utils.py:214
|
||||
#: src/rougail/utils.py:215
|
||||
msgid "disabled"
|
||||
msgstr "désactivé"
|
||||
|
||||
#: src/rougail/utils.py:215
|
||||
#: src/rougail/utils.py:216
|
||||
msgid "unique"
|
||||
msgstr "unique"
|
||||
|
||||
#: src/rougail/utils.py:216
|
||||
#: src/rougail/utils.py:217
|
||||
msgid "auto modified"
|
||||
msgstr "auto modifiée"
|
||||
|
||||
#~ msgid "The secret pattern to build item name in Bitwarden"
|
||||
#~ msgstr ""
|
||||
#~ "Le patron de secret pour construire le nom de l'élément dans Bitwarden"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "cannot calculating \"{0}\" attribute for variable \"{1}\" in {2} with "
|
||||
#~ "parameters \"{3}\": {4}"
|
||||
#~ msgstr ""
|
||||
#~ "ne peut calculer l'attribut \"{0}\" pour la variable \"{1}\" dans {2} "
|
||||
#~ "avec les paramètres \"{3}\" : {4}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid ""
|
||||
#~| "we need {0} values when there are {{{{ var | length }}}} ({{{{ var | "
|
||||
|
|
@ -793,9 +1139,6 @@ msgstr "auto modifiée"
|
|||
#~ msgid "error in {0}: {1}"
|
||||
#~ msgstr "erreur dans {0} : {1}"
|
||||
|
||||
#~ msgid "cannot find variable \"{0}\" from {1}: {2}"
|
||||
#~ msgstr "ne peut trouver la variable \"{0}\" depuis {1} : {2}"
|
||||
|
||||
#~ msgid "the option \"{0}\" is an option description"
|
||||
#~ msgstr "l'option \"{0}\" est une option description"
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2025-11-21 08:31+0100\n"
|
||||
"POT-Creation-Date: 2025-12-22 08:46+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"
|
||||
|
|
@ -127,75 +127,122 @@ msgstr ""
|
|||
msgid "the variable \"{0}\" has an unvalid default value \"{1}\" should be in {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:276
|
||||
msgid "Structure format version by default, if not specified in structure file"
|
||||
#: src/rougail/config/__init__.py:271
|
||||
msgid "Default version of the structural file format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:284
|
||||
#: src/rougail/config/__init__.py:272
|
||||
msgid "This value is only used if the version is not set in the structural file"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:280
|
||||
msgid "File with functions"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:296
|
||||
#: src/rougail/config/__init__.py:281
|
||||
msgid "This file contains filters and additional Jinja2 functions usable in structure files"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:293
|
||||
msgid "All modes level available"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:308
|
||||
#: src/rougail/config/__init__.py:305
|
||||
msgid "Default mode for a family"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:311
|
||||
msgid "the first one defined in \"modes_level\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:317 src/rougail/config/__init__.py:344
|
||||
msgid "when no mode is defined in \"modes_level\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:324 src/rougail/config/__init__.py:351
|
||||
msgid "this mode must be available in \"modes_level\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:328
|
||||
msgid "Default mode for a variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:352
|
||||
#: src/rougail/config/__init__.py:338
|
||||
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:355
|
||||
msgid "Option name for the base option"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:357
|
||||
#: src/rougail/config/__init__.py:360
|
||||
msgid "In cache file, do not importation of Tiramisu and other dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:362
|
||||
msgid "Tiramisu cache filename"
|
||||
#: src/rougail/config/__init__.py:365
|
||||
msgid "Store Tiramisu cache filename"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:370
|
||||
msgid "Name of internal functions that we can use as a function"
|
||||
#: src/rougail/config/__init__.py:366
|
||||
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:376
|
||||
msgid "Name of extra annotators"
|
||||
msgid "Name of internal functions that we can use as a function"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:382
|
||||
msgid "Suffix add to generated options name"
|
||||
msgid "Name of extra annotators"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:388
|
||||
msgid "Suffix add to generated options name"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:394
|
||||
msgid "Every variables in calculation are optionals"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:392
|
||||
#: src/rougail/config/__init__.py:398
|
||||
msgid "Loads redefine variables even if there don't already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:399
|
||||
msgid "The secret pattern to build item name in Bitwarden"
|
||||
#: src/rougail/config/__init__.py:402
|
||||
msgid "The secret manager"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:400
|
||||
msgid "The pattern is in Jinja format"
|
||||
#: src/rougail/config/__init__.py:405
|
||||
msgid "The secret pattern to constructing the name of the item searched for in the secret manager"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:428
|
||||
#: src/rougail/config/__init__.py:406
|
||||
msgid "The pattern is in Jinja2 format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:415
|
||||
msgid "structural"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:416
|
||||
msgid "user datas"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:417
|
||||
msgid "output"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:438
|
||||
msgid "Select for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:508
|
||||
#: src/rougail/config/__init__.py:500
|
||||
msgid "Override default parameters for option type"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/config/__init__.py:511
|
||||
#: src/rougail/config/__init__.py:503
|
||||
msgid "Default parameters for option type"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -231,138 +278,142 @@ msgstr ""
|
|||
msgid "invalid \"structural\" definition ({0}), we cannot load any structural file!"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:121
|
||||
#: src/rougail/convert/object_model.py:132
|
||||
msgid "cannot find variable \"{0}\" defined in attribute \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:127
|
||||
#: src/rougail/convert/object_model.py:138
|
||||
msgid "the variable \"{0}\" is in fact a family in attribute \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:132
|
||||
#: src/rougail/convert/object_model.py:513
|
||||
#: src/rougail/convert/object_model.py:143
|
||||
#: src/rougail/convert/object_model.py:527
|
||||
msgid "unknown object \"{0}\" in attribute \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:151
|
||||
#: src/rougail/convert/object_model.py:162
|
||||
msgid "identifier parameter for \"{0}\" in \"{1}\" cannot be set none dynamic family"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:180
|
||||
#: src/rougail/convert/object_model.py:191
|
||||
msgid "cannot find variable \"{0}\" defined in \"{1}\" for \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:185
|
||||
#: src/rougail/convert/object_model.py:196
|
||||
msgid "variable \"{0}\" defined in \"{1}\" for \"{2}\" is a dynamic variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:202
|
||||
#: src/rougail/convert/object_model.py:213
|
||||
msgid "the variable \"{0}\" is not a follower, so cannot have index type for param in \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:252
|
||||
#: src/rougail/convert/object_model.py:263
|
||||
msgid "\"warnings\" are only available with attribute \"{self.attribute_name}\" for variable \"{self.ori_path}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:314
|
||||
msgid "the variable \"{0}\" has a depreciated return_type \"{1}\", please use \"{2}\" instead in \"{3}\""
|
||||
#: 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:404
|
||||
#: src/rougail/convert/object_model.py:435
|
||||
#: src/rougail/convert/object_model.py:415
|
||||
#: src/rougail/convert/object_model.py:446
|
||||
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:411
|
||||
#: src/rougail/convert/object_model.py:422
|
||||
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:416
|
||||
#: src/rougail/convert/object_model.py:427
|
||||
msgid "value is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:508
|
||||
#: src/rougail/convert/object_model.py:522
|
||||
msgid "a variable \"{0}\" is needs in attribute \"{1}\" for \"{2}\" but it's a family"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:533
|
||||
#: src/rougail/convert/object_model.py:547
|
||||
msgid "variable \"{0}\" has an attribute \"{1}\" calculated with the unknown variable \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:585
|
||||
#: src/rougail/convert/object_model.py:599
|
||||
msgid "the variable \"{0}\" has an invalid \"{1}\" the variable \"{2}\" is in a sub dynamic option"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:594
|
||||
#: src/rougail/convert/object_model.py:608
|
||||
msgid "the leader \"{0}\" has an invalid \"{1}\" the follower \"{2}\" is a multi"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:636
|
||||
#: src/rougail/convert/object_model.py:650
|
||||
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", the variable \"{2}\" must not be multi"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:650
|
||||
#: src/rougail/convert/object_model.py:664
|
||||
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:664
|
||||
#: src/rougail/convert/object_model.py:678
|
||||
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:678
|
||||
#: src/rougail/convert/object_model.py:692
|
||||
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:700
|
||||
#: src/rougail/convert/object_model.py:714
|
||||
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:704
|
||||
#: src/rougail/convert/object_model.py:718
|
||||
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:726
|
||||
#: src/rougail/convert/object_model.py:740
|
||||
msgid "\"{0}\" attribut shall not have an \"optional\" attribute without the \"default\" attribute for variable \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:748
|
||||
#: src/rougail/convert/object_model.py:762
|
||||
msgid "variable \"{0}\" has a default value calculated with \"{1}\" which has incompatible type"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:790
|
||||
#: src/rougail/convert/object_model.py:804
|
||||
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:812
|
||||
#: src/rougail/convert/object_model.py:826
|
||||
msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:817
|
||||
#: src/rougail/convert/object_model.py:831
|
||||
msgid "the variable \"{0}\" has an invalid attribute \"{1}\", \"when\" and \"when_not\" cannot set together"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:825
|
||||
#: src/rougail/convert/object_model.py:839
|
||||
msgid "\"when_not\" is not allowed in format version 1.0 for attribute \"{0}\" for variable \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:881
|
||||
#: src/rougail/convert/object_model.py:850
|
||||
msgid "\"when\" or \"when_not\" is mandatory for the not boolean variable \"{0}\" in attribute \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:898
|
||||
msgid "cannot find variable \"{0}\" for the information \"{1}\" when calculating \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:886
|
||||
#: src/rougail/convert/object_model.py:903
|
||||
msgid "identifier not allowed for the information \"{0}\" when calculating \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:938
|
||||
#: src/rougail/convert/object_model.py:955
|
||||
msgid "\"when\" is not allowed in format version 1.0 for attribute \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:944
|
||||
#: src/rougail/convert/object_model.py:954
|
||||
#: src/rougail/convert/object_model.py:961
|
||||
#: src/rougail/convert/object_model.py:971
|
||||
msgid "the identifier has an invalid attribute \"{0}\", \"when\" and \"when_not\" cannot set together"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/object_model.py:980
|
||||
#: src/rougail/convert/object_model.py:997
|
||||
msgid "the variable \"{0}\" is not a follower, so cannot have index type for \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -370,20 +421,28 @@ msgstr ""
|
|||
msgid "A variable or a family located in the \"{0}\" namespace shall not be used in the \"{1}\" namespace"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:353
|
||||
#: src/rougail/convert/tiramisureflector.py:348
|
||||
msgid "variable param \"{0}\" has whole attribute but it's not allowed for external variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:351
|
||||
msgid "variable param \"{0}\" has dynamic attribute but it's not allowed for external variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/convert/tiramisureflector.py:360
|
||||
msgid "internal error, {0} is not a dynamic variable"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/error.py:61 src/rougail/tiramisu.py:162
|
||||
#: src/rougail/user_datas.py:412 src/rougail/user_datas.py:415
|
||||
#: src/rougail/error.py:61 src/rougail/tiramisu.py:235
|
||||
#: src/rougail/user_data.py:452 src/rougail/user_data.py:455
|
||||
msgid "{0} in {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_commandline/annotator.py:66
|
||||
#: src/rougail/structural_commandline/annotator.py:67
|
||||
msgid "alternative_name \"{0}\" conflict with \"--help\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_commandline/annotator.py:71
|
||||
#: src/rougail/structural_commandline/annotator.py:72
|
||||
msgid "conflict alternative_name \"{0}\": \"{1}\" and \"{2}\""
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -392,21 +451,29 @@ msgid "duplicate structural file name {0}"
|
|||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:32
|
||||
msgid "Main namespace name"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:40
|
||||
msgid "directory or string is not in \"_.step.structural\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:43
|
||||
msgid "Directories where structural files are placed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:49
|
||||
#: src/rougail/structural_directory/config.py:60
|
||||
msgid "Sort structural from differents directories"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:58
|
||||
msgid "Main namespace name"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:69
|
||||
msgid "Namespaces are isolated"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:75
|
||||
msgid "directory or string is not in \"_.step.structural\" or \"_.main_namespace\" is not set"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:78
|
||||
msgid "Extra namespaces"
|
||||
msgstr ""
|
||||
|
|
@ -419,91 +486,304 @@ msgstr ""
|
|||
msgid "Directories where extra structural files are placed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_directory/config.py:106
|
||||
msgid "directory is not in \"__.step.structural\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_string/config.py:32
|
||||
msgid "Structural files contents"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_string/config.py:33
|
||||
#: src/rougail/structural_string/config.py:51
|
||||
msgid "This variable is a list of string with YAML file format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_string/config.py:45
|
||||
msgid "string is not in \"_.step.structural\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_string/config.py:50
|
||||
msgid "Extra structural contents"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/structural_string/config.py:58
|
||||
msgid "string is not in \"__.step.structural\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:83
|
||||
msgid "unknown boolean value \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:335
|
||||
msgid "cannot calculating \"{0}\" attribute for variable \"{1}\" in {2} with parameters \"{3}\": {4}"
|
||||
#: src/rougail/tiramisu.py:86
|
||||
msgid "IP must be in CIDR format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:145
|
||||
#: src/rougail/tiramisu.py:87
|
||||
msgid "private IP are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:88
|
||||
msgid "reserved IP are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:91
|
||||
msgid "network must be in CIDR format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:92
|
||||
msgid "private network are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:93
|
||||
msgid "reserved network are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:96
|
||||
msgid "can be range of port"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:97
|
||||
msgid "can have the protocol"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:98
|
||||
msgid "port 0 is allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:99
|
||||
msgid "well-known ports (1 to 1023) are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:100
|
||||
msgid "registred ports (1024 to 49151) are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:101
|
||||
msgid "private ports (greater than 49152) are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:104
|
||||
msgid "type of domainname"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:104
|
||||
msgid "type {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:105
|
||||
msgid "the domain name can starts by a dot"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:106
|
||||
msgid "the domain name can be a hostname"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:107
|
||||
msgid "the domain name can be an IP"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:108
|
||||
msgid "the domain name can be network in CIDR format"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:109
|
||||
msgid "the domain name must exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
|
||||
msgid "the minimum value"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:119 src/rougail/tiramisu.py:125
|
||||
msgid "the minimum value is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
|
||||
msgid "the maximum value"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:120 src/rougail/tiramisu.py:126
|
||||
msgid "the maximum value is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:135
|
||||
msgid "minimum characters length for the secret"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:135
|
||||
msgid "minimum length for the secret is {0} characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:136
|
||||
msgid "maximum characters length for the secret"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:136
|
||||
msgid "maximum length for the secret is {0} characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:137
|
||||
msgid "forbidden characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:137
|
||||
msgid "forbidden characters: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:144
|
||||
msgid "this filename could be a relative path"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:145
|
||||
msgid "this file must exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:146
|
||||
msgid "file type allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:146
|
||||
msgid "file type allowed: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:436
|
||||
msgid "cannot calculate the variable \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:437
|
||||
msgid "the attribute \"{0}\" in {1} with the parameters \"{2}\" causes the error: {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:455
|
||||
msgid "cannot converting the variable \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:456
|
||||
msgid "\"{0}\" is an invalid {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/tiramisu.py:458
|
||||
msgid "the attribute \"{0}\" in {1} causes the error: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:146
|
||||
msgid "cannot load variable path \"{0}\", the identifier \"{1}\" is not valid in {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:229
|
||||
msgid "the variable \"{0}\" contains secrets and should not be defined in {1}"
|
||||
#: src/rougail/user_data.py:230
|
||||
msgid "the variable contains secrets and should not be defined in {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:269
|
||||
#: src/rougail/user_data.py:269
|
||||
msgid "loaded from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:311
|
||||
msgid "cannot set the value \"{0}\" to the family {1}, it will be ignored when loading from {2}"
|
||||
#: src/rougail/user_data.py:311
|
||||
msgid "is a family so we cannot set the value \"{0}\", it has been loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:322 src/rougail/user_datas.py:339
|
||||
msgid "{0} loaded from {1}"
|
||||
#: src/rougail/user_data.py:315
|
||||
msgid "is a family so we cannot set the value \"{0}\", it will be ignored when loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:327
|
||||
#: src/rougail/user_data.py:326
|
||||
msgid "{0}, it has been loaded from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:332
|
||||
msgid "variable or family \"{0}\" does not exist, it has been loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:336
|
||||
msgid "variable or family \"{0}\" does not exist, it will be ignored when loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:333
|
||||
#: src/rougail/user_data.py:342
|
||||
msgid "\"{0}\" is the name of a dynamic family, it has been loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:346
|
||||
msgid "\"{0}\" is the name of a dynamic family, it will be ignored when loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:369
|
||||
#: src/rougail/user_data.py:354
|
||||
msgid "{0} loaded from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:385
|
||||
msgid "variable {0} at index \"{1}\" is {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:389
|
||||
msgid "variable {0} at index \"{1}\" is {2}, it will be ignored when loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:380
|
||||
msgid "family {0} is {1}, {2} at index \"{3}\" will be ignored when loading from {4}"
|
||||
#: src/rougail/user_data.py:402
|
||||
msgid "family {0} is {1}, {2} at index \"{3}\", it has been loading from {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:393
|
||||
msgid "variable {0} is {1}, it will be ignored when loading from {2}"
|
||||
#: src/rougail/user_data.py:406
|
||||
msgid "family {0} is {1}, {2} at index \"{3}\", it will be ignored when loading from {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:401
|
||||
msgid "family {0} is {1}, {2} will be ignored when loading from {3}"
|
||||
#: src/rougail/user_data.py:421
|
||||
msgid "variable is {0}, it has been loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:421
|
||||
#: src/rougail/user_data.py:425
|
||||
msgid "variable is {0}, it will be ignored when loading from {1}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:435
|
||||
msgid "family {0} is {1}, so cannot access to {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:439
|
||||
msgid "family {0} is {1}, so cannot access to {2}, it will be ignored when loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:461
|
||||
msgid "the value \"{0}\" is an invalid {1} for {2} at index \"{3}\", {4}, it has been loading from {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:465
|
||||
msgid "the value \"{0}\" is an invalid {1} for {2} at index \"{3}\", {4}, it will be ignored when loading from {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_datas.py:435
|
||||
msgid "the value \"{0}\" is an invalid {1} for {2}, {3}, it will be ignored when loading from {4}"
|
||||
#: src/rougail/user_data.py:481
|
||||
msgid "the value \"{0}\" is an invalid {1}, {2}, it has been loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/user_data.py:485
|
||||
msgid "the value \"{0}\" is an invalid {1}, {2}, it will be ignored when loading from {3}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:56
|
||||
msgid "invalid variable or family name \"{0}\" must only contains lowercase ascii character, number or _"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:103
|
||||
msgid "error in jinja \"{0}\" for the variable \"{1}\": {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:212
|
||||
msgid "mandatory"
|
||||
#: src/rougail/utils.py:104
|
||||
msgid "error for the variable \"{1}\" in jinja \"{0}\": {2}"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:213
|
||||
msgid "hidden"
|
||||
msgid "mandatory"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:214
|
||||
msgid "disabled"
|
||||
msgid "hidden"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:215
|
||||
msgid "unique"
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:216
|
||||
msgid "unique"
|
||||
msgstr ""
|
||||
|
||||
#: src/rougail/utils.py:217
|
||||
msgid "auto modified"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -76,31 +76,33 @@ class _RougailConfig:
|
|||
self.add_extra_options = add_extra_options
|
||||
self.root = None
|
||||
|
||||
def copy(self):
|
||||
rougailconfig = _RougailConfig(
|
||||
self.backward_compatibility,
|
||||
self.add_extra_options,
|
||||
def copy(self, backward_compatibility=None):
|
||||
if not self.root:
|
||||
self.generate_config()
|
||||
config = self.config.config.copy()
|
||||
config.value.importation(self.config.value.exportation())
|
||||
config.property.importation(
|
||||
self.config.property.exportation()
|
||||
)
|
||||
if self.root:
|
||||
rougailconfig.generate_config()
|
||||
rougailconfig.config.value.importation(self.config.value.exportation())
|
||||
rougailconfig.config.property.importation(
|
||||
self.config.property.exportation()
|
||||
)
|
||||
rougailconfig.config.property.read_only()
|
||||
rougailconfig.extra_vars = self.extra_vars.copy()
|
||||
for variable in self.not_in_tiramisu:
|
||||
value = getattr(self, variable)
|
||||
if not isinstance(value, str):
|
||||
value = value.copy()
|
||||
setattr(rougailconfig, variable, value)
|
||||
config.property.read_only()
|
||||
if backward_compatibility is None:
|
||||
backward_compatibility = self.backward_compatibility
|
||||
rougailconfig = _RougailConfig(backward_compatibility, self.add_extra_options)
|
||||
rougailconfig.root = self.root
|
||||
rougailconfig.config = config
|
||||
rougailconfig.extra_vars = self.extra_vars.copy()
|
||||
rougailconfig.not_in_tiramisu = NOT_IN_TIRAMISU | rougailconfig.extra_vars
|
||||
for variable in self.not_in_tiramisu:
|
||||
value = getattr(self, variable)
|
||||
if not isinstance(value, str):
|
||||
value = value.copy()
|
||||
setattr(rougailconfig, variable, value)
|
||||
return rougailconfig
|
||||
|
||||
def generate_config(self):
|
||||
root, extra_vars = _rougail_config(
|
||||
self.root, extra_vars = _rougail_config(
|
||||
self.backward_compatibility, self.add_extra_options
|
||||
)
|
||||
self.root = root
|
||||
self.config = Config(
|
||||
self.root,
|
||||
)
|
||||
|
|
@ -123,8 +125,6 @@ class _RougailConfig:
|
|||
setattr(self, key, value)
|
||||
else:
|
||||
self.config.property.read_write()
|
||||
if key == "export_with_import":
|
||||
key = "not_export_with_import"
|
||||
key = RENAMED.get(key, key)
|
||||
option = self.config.option(key)
|
||||
if option.isoptiondescription() and option.isleadership():
|
||||
|
|
@ -139,8 +139,6 @@ class _RougailConfig:
|
|||
follower = option.followers()[0]
|
||||
for idx, val in enumerate(followers):
|
||||
self.config.option(follower.path(), idx).value.set(val)
|
||||
elif key == "not_export_with_import":
|
||||
option.value.set(not value)
|
||||
else:
|
||||
option.value.set(value)
|
||||
self.config.property.read_only()
|
||||
|
|
@ -153,14 +151,10 @@ class _RougailConfig:
|
|||
self.generate_config()
|
||||
if key in self.not_in_tiramisu:
|
||||
return getattr(self, key)
|
||||
if key == "export_with_import":
|
||||
key = "not_export_with_import"
|
||||
option = self.config.option(key)
|
||||
if option.isoptiondescription() and option.isleadership():
|
||||
return self.get_leadership(option)
|
||||
ret = self.config.option(key).value.get()
|
||||
if key == "not_export_with_import":
|
||||
return not ret
|
||||
return ret
|
||||
|
||||
def __contains__(
|
||||
|
|
@ -261,19 +255,21 @@ class FakeRougailConvert(RougailConvert):
|
|||
self.internal_functions = []
|
||||
self.force_optional = False
|
||||
self.structurals = ["commandline"]
|
||||
self.user_datas = []
|
||||
self.user_data = []
|
||||
self.output = None
|
||||
self.add_extra_options = self.add_extra_options
|
||||
self.tiramisu_cache = False
|
||||
# self.tiramisu_cache = "a.py"
|
||||
self.load_unexist_redefine = False
|
||||
|
||||
|
||||
def _rougail_config(
|
||||
backward_compatibility: bool = True,
|
||||
add_extra_options: bool = True,
|
||||
) -> "OptionDescription":
|
||||
def get_common_rougail_config(
|
||||
*,
|
||||
backward_compatibility=True,
|
||||
) -> str:
|
||||
rougail_options = f"""default_structural_format_version:
|
||||
description: {_('Structure format version by default, if not specified in structure file')}
|
||||
description: {_('Default version of the structural file format')}
|
||||
help: {_('This value is only used if the version is not set in the structural file')}
|
||||
alternative_name: v
|
||||
choices:
|
||||
- '1.0'
|
||||
|
|
@ -282,6 +278,7 @@ def _rougail_config(
|
|||
|
||||
functions_files:
|
||||
description: {_("File with functions")}
|
||||
help: {_("This file contains filters and additional Jinja2 functions usable in structure files")}
|
||||
alternative_name: c
|
||||
type: unix_filename
|
||||
params:
|
||||
|
|
@ -311,17 +308,20 @@ default_family_mode:
|
|||
{{% if modes_level %}}
|
||||
{{{{ modes_level[0] }}}}
|
||||
{{% endif %}}
|
||||
description: {_('the first one defined in "modes_level"')}
|
||||
disabled:
|
||||
jinja: |
|
||||
{{% if not modes_level %}}
|
||||
No mode
|
||||
{{% endif %}}
|
||||
description: {_('when no mode is defined in "modes_level"')}
|
||||
validators:
|
||||
- type: jinja
|
||||
jinja: |
|
||||
{{% if default_family_mode not in modes_level %}}
|
||||
not in modes_level ({{modes_level}})
|
||||
{{% endif %}}
|
||||
description: {_('this mode must be available in "modes_level"')}
|
||||
commandline: false
|
||||
|
||||
default_variable_mode:
|
||||
|
|
@ -335,17 +335,20 @@ default_variable_mode:
|
|||
{{{{ modes_level[1] }}}}
|
||||
{{% endif %}}
|
||||
{{% endif %}}
|
||||
description: {_('if the variable "modes_level" is defined, the default value is the second available element, otherwise, the first')}
|
||||
disabled:
|
||||
jinja: |
|
||||
{{% if not modes_level %}}
|
||||
No mode
|
||||
{{% endif %}}
|
||||
description: {_('when no mode is defined in "modes_level"')}
|
||||
validators:
|
||||
- type: jinja
|
||||
jinja: |
|
||||
{{% if default_variable_mode not in modes_level %}}
|
||||
not in modes_level ({{modes_level}})
|
||||
{{% endif %}}
|
||||
description: {_('this mode must be available in "modes_level"')}
|
||||
commandline: false
|
||||
|
||||
base_option_name:
|
||||
|
|
@ -353,18 +356,21 @@ base_option_name:
|
|||
default: baseoption
|
||||
commandline: false
|
||||
|
||||
not_export_with_import:
|
||||
export_with_import:
|
||||
description: {_("In cache file, do not importation of Tiramisu and other dependencies")}
|
||||
default: false
|
||||
default: true
|
||||
commandline: false
|
||||
|
||||
tiramisu_cache:
|
||||
description: {_("Tiramisu cache filename")}
|
||||
description: {_("Store Tiramisu cache filename")}
|
||||
help: "{_("This file contains the Tiramisu instructions used internally to load the variables.\n\nThis file can be used for debugging")}"
|
||||
alternative_name: t
|
||||
type: unix_filename
|
||||
mandatory: false
|
||||
params:
|
||||
allow_relative: true
|
||||
types:
|
||||
- file
|
||||
|
||||
internal_functions:
|
||||
description: {_("Name of internal functions that we can use as a function")}
|
||||
|
|
@ -393,11 +399,11 @@ load_unexist_redefine:
|
|||
commandline: false
|
||||
default: False
|
||||
|
||||
secret_manager:
|
||||
secret_manager: # {_("The secret manager")}
|
||||
|
||||
pattern:
|
||||
description: {_("The secret pattern to build item name in Bitwarden")}
|
||||
help: {_("The pattern is in Jinja format")}
|
||||
description: {_("The secret pattern to constructing the name of the item searched for in the secret manager")}
|
||||
help: {_("The pattern is in Jinja2 format")}
|
||||
default: "{{{{ project }}}} - {{{{ environment }}}} - {{{{ service }}}} - {{{{ user }}}}"
|
||||
|
||||
"""
|
||||
|
|
@ -406,6 +412,10 @@ secret_manager:
|
|||
"user data": [],
|
||||
"output": [],
|
||||
}
|
||||
processes_tr = {"structural": _("structural"),
|
||||
"user data": _("user datas"),
|
||||
"output": _("output"),
|
||||
}
|
||||
processes_empty = []
|
||||
for module in get_sub_modules().values():
|
||||
data = module.get_rougail_config(backward_compatibility=backward_compatibility)
|
||||
|
|
@ -421,20 +431,18 @@ secret_manager:
|
|||
if processes[process]:
|
||||
objects = processes[process]
|
||||
process_name = normalize_family(process)
|
||||
tr_process_name = _(process_name)
|
||||
tr_process_name = processes_tr[process]
|
||||
rougail_process += f"""
|
||||
|
||||
{process_name}:
|
||||
description: {_('Select for {0}').format(tr_process_name)}
|
||||
"""
|
||||
if process != "structural":
|
||||
rougail_process += """
|
||||
alternative_name: {NAME[0]}
|
||||
rougail_process += """ alternative_name: {NAME[0]}
|
||||
""".format(
|
||||
NAME=normalize_family(process),
|
||||
)
|
||||
rougail_process += """
|
||||
choices:
|
||||
rougail_process += """ choices:
|
||||
"""
|
||||
for obj in objects:
|
||||
rougail_process += f" - {obj['name']}\n"
|
||||
|
|
@ -444,24 +452,6 @@ secret_manager:
|
|||
default:
|
||||
- directory
|
||||
"""
|
||||
hidden_outputs = [
|
||||
process["name"]
|
||||
for process in processes["output"]
|
||||
if process.get("allow_user_data", True)
|
||||
]
|
||||
if hidden_outputs:
|
||||
rougail_process += """
|
||||
hidden:
|
||||
type: jinja
|
||||
jinja: |
|
||||
"""
|
||||
for hidden_output in hidden_outputs:
|
||||
rougail_process += """ {% if _.output is not propertyerror and _.output == 'NAME' %}
|
||||
Cannot load structural for NAME output
|
||||
{% endif %}
|
||||
""".replace(
|
||||
"NAME", hidden_output
|
||||
)
|
||||
elif process == "user data":
|
||||
rougail_process += """ multi: true
|
||||
mandatory: false"""
|
||||
|
|
@ -479,7 +469,8 @@ secret_manager:
|
|||
for hidden_output in hidden_outputs:
|
||||
rougail_process += """ {% if _.output is not propertyerror and _.output == 'NAME' %}
|
||||
Cannot load user data for NAME output
|
||||
{% endif %}""".replace(
|
||||
{% endif %}
|
||||
description: _('cannot load user data for NAME output')""".replace(
|
||||
"NAME", hidden_output
|
||||
)
|
||||
elif objects:
|
||||
|
|
@ -505,6 +496,7 @@ secret_manager:
|
|||
PROP=prop,
|
||||
)
|
||||
rougail_process += f"""
|
||||
|
||||
define_default_params: false # {_('Override default parameters for option type')}
|
||||
|
||||
default_params:
|
||||
|
|
@ -514,20 +506,35 @@ default_params:
|
|||
when: false
|
||||
|
||||
"""
|
||||
for typ, params in get_convert_option_types():
|
||||
for typ, typ_description, params in get_convert_option_types():
|
||||
rougail_process += f"""
|
||||
{typ}:
|
||||
{typ}: # {typ_description}
|
||||
"""
|
||||
for key, key_type, multi, value in params:
|
||||
for key, key_type, description, multi, value, choices in params:
|
||||
rougail_process += f"""
|
||||
{key}:
|
||||
type: {key_type}
|
||||
"""
|
||||
if description:
|
||||
rougail_process += f""" description: "{description}"
|
||||
"""
|
||||
rougail_process += f""" type: {key_type}
|
||||
multi: {multi}
|
||||
mandatory: false
|
||||
default: {value}
|
||||
"""
|
||||
# print(rougail_process)
|
||||
if choices:
|
||||
rougail_process += " choices:\n"
|
||||
for choice in choices:
|
||||
rougail_process += f" - {choice}\n"
|
||||
rougail_options += rougail_process
|
||||
return processes, processes_empty, rougail_options
|
||||
|
||||
|
||||
def _rougail_config(
|
||||
backward_compatibility: bool = True,
|
||||
add_extra_options: bool = True,
|
||||
) -> "OptionDescription":
|
||||
processes, processes_empty, rougail_options = get_common_rougail_config(backward_compatibility=backward_compatibility)
|
||||
convert = FakeRougailConvert(add_extra_options)
|
||||
convert.init()
|
||||
convert.namespace = None
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ BASETYPE = Union[StrictBool, StrictInt, StrictFloat, StrictStr, None]
|
|||
|
||||
def get_convert_option_types():
|
||||
for typ, datas in CONVERT_OPTION.items():
|
||||
typ_description = datas.get("msg", typ)
|
||||
obj = getattr(tiramisu, datas["opttype"])
|
||||
initkwargs = datas.get("initkwargs", {})
|
||||
if obj == tiramisu.SymLinkOption:
|
||||
|
|
@ -58,16 +59,25 @@ def get_convert_option_types():
|
|||
for key, value in extra.items():
|
||||
if key.startswith("_"):
|
||||
continue
|
||||
multi = False
|
||||
if isinstance(value, bool):
|
||||
if "params" in datas and key in datas["params"]:
|
||||
multi = datas["params"][key].get('multi', False)
|
||||
description = datas["params"][key]["description"]
|
||||
choices = datas["params"][key].get("choices")
|
||||
else:
|
||||
description = None
|
||||
choices = None
|
||||
multi = False
|
||||
if choices:
|
||||
key_type = "choice"
|
||||
elif isinstance(value, bool):
|
||||
key_type = "boolean"
|
||||
elif isinstance(value, str):
|
||||
key_type = "string"
|
||||
elif isinstance(value, list):
|
||||
key_type = "string"
|
||||
multi = True
|
||||
params.append((key, key_type, multi, value))
|
||||
yield typ, params
|
||||
params.append((key, key_type, description, multi, value, choices))
|
||||
yield typ, typ_description, params
|
||||
|
||||
|
||||
class Param(BaseModel):
|
||||
|
|
@ -101,6 +111,7 @@ class VariableParam(Param):
|
|||
variable: str
|
||||
propertyerror: bool = True
|
||||
whole: bool = False
|
||||
dynamic: bool = True
|
||||
optional: bool = False
|
||||
|
||||
def to_param(
|
||||
|
|
@ -311,7 +322,7 @@ class JinjaCalculation(Calculation):
|
|||
idx += 1
|
||||
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}"')
|
||||
warning = _('the variable "{0}" has a depreciated return_type "{1}", please use "{2}" instead in {3}')
|
||||
warn(
|
||||
warning.format(self.path, return_type, RENAME_TYPE[return_type], display_xmlfiles(self.xmlfiles)),
|
||||
DeprecationWarning,
|
||||
|
|
@ -460,9 +471,12 @@ class JinjaCalculation(Calculation):
|
|||
objectspace,
|
||||
)
|
||||
elif self.attribute_name == "dynamic":
|
||||
return_type = self.return_type
|
||||
if return_type is None:
|
||||
return_type = "string"
|
||||
return self._jinja_to_function(
|
||||
"jinja_to_function",
|
||||
"string",
|
||||
return_type,
|
||||
True,
|
||||
objectspace,
|
||||
)
|
||||
|
|
@ -833,7 +847,10 @@ class VariablePropertyCalculation(_VariableCalculation):
|
|||
when = []
|
||||
else:
|
||||
if variable.type != "boolean":
|
||||
raise Exception("only boolean!")
|
||||
msg = _(
|
||||
'"when" or "when_not" is mandatory for the not boolean variable "{0}" in attribute "{1}"'
|
||||
).format(self.path, self.attribute_name)
|
||||
raise DictConsistencyError(msg, 106, variable.xmlfiles)
|
||||
when = True
|
||||
inverse = False
|
||||
params["when"] = when
|
||||
|
|
@ -1076,6 +1093,7 @@ class Variable(BaseModel):
|
|||
unique: Optional[bool] = None
|
||||
hidden: Union[bool, Calculation] = False
|
||||
disabled: Union[bool, Calculation] = False
|
||||
frozen: Union[bool, Calculation] = False
|
||||
# others
|
||||
path: str
|
||||
namespace: Optional[str]
|
||||
|
|
|
|||
|
|
@ -82,15 +82,15 @@ class TiramisuReflector:
|
|||
continue
|
||||
self.text["header"].append(f"load_functions('{funcs_path}')")
|
||||
if self.objectspace.export_with_import:
|
||||
if self.objectspace.has_namespace:
|
||||
self.text["header"].extend(
|
||||
[
|
||||
"try:",
|
||||
" groups.namespace",
|
||||
"except:",
|
||||
" groups.addgroup('namespace')",
|
||||
]
|
||||
)
|
||||
# if self.objectspace.has_namespace:
|
||||
self.text["header"].extend(
|
||||
[
|
||||
"try:",
|
||||
" groups.namespace",
|
||||
"except:",
|
||||
" groups.addgroup('namespace')",
|
||||
]
|
||||
)
|
||||
for mode in self.objectspace.modes_level:
|
||||
self.text["header"].append(f'ALLOWED_LEADER_PROPERTIES.add("{mode}")')
|
||||
self.make_tiramisu_objects()
|
||||
|
|
@ -338,11 +338,18 @@ class Common:
|
|||
"""build variable parameters"""
|
||||
variable = param["variable"]
|
||||
whole = param.get("whole", False)
|
||||
dynamic = param.get("dynamic", True)
|
||||
if variable.path == self.elt.path:
|
||||
return f"ParamSelfOption(whole={whole})"
|
||||
ret = f"ParamSelfOption(whole={whole}"
|
||||
if not dynamic:
|
||||
ret += ", dynamic=False"
|
||||
return ret + ')'
|
||||
if whole:
|
||||
msg = f'variable param "{variable.path}" has whole attribute but it\'s not allowed for external variable'
|
||||
raise DictConsistencyError(msg, 34, self.elt.xmlfiles)
|
||||
msg = _('variable param "{0}" has whole attribute but it\'s not allowed for external variable')
|
||||
raise DictConsistencyError(msg.format(variable.path), 34, self.elt.xmlfiles)
|
||||
if not dynamic:
|
||||
msg = _('variable param "{0}" has dynamic attribute but it\'s not allowed for external variable')
|
||||
raise DictConsistencyError(msg.format(variable.path), 34, self.elt.xmlfiles)
|
||||
option_name = self.tiramisu.reflector_objects[variable.path].get(
|
||||
self.calls, self.elt.path
|
||||
)
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -59,6 +59,7 @@ class Annotator(Walk):
|
|||
return
|
||||
alternative_name = variable.alternative_name
|
||||
variable_path = variable.path
|
||||
self.objectspace.informations.add(variable_path, "alternative_name", alternative_name)
|
||||
all_letters = ""
|
||||
for letter in alternative_name:
|
||||
all_letters += letter
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ structural_commandline:
|
|||
default: true
|
||||
"""
|
||||
return {
|
||||
"name": "cmdline",
|
||||
"name": "commandline",
|
||||
"process": "structural",
|
||||
"options": options,
|
||||
"level": 20,
|
||||
|
|
|
|||
|
|
@ -141,12 +141,12 @@ class Walker:
|
|||
"""Parse file"""
|
||||
with open(filename, encoding="utf8") as file_fh:
|
||||
objects = self.yaml.load(file_fh)
|
||||
if objects is None:
|
||||
return
|
||||
version = self.convert.validate_file_version(
|
||||
objects,
|
||||
filename,
|
||||
)
|
||||
if objects is None:
|
||||
return
|
||||
self.convert.parse_root_file(
|
||||
filename,
|
||||
path,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,17 @@ def get_rougail_config(
|
|||
else:
|
||||
main_namespace_default = "null"
|
||||
options = f"""
|
||||
main_namespace:
|
||||
description: {_("Main namespace name")}
|
||||
default: {main_namespace_default}
|
||||
alternative_name: s
|
||||
mandatory: false
|
||||
disabled:
|
||||
jinja: >-
|
||||
{{{{ 'directory' not in _.step.structural and 'string' not in _.step.structural }}}}
|
||||
return_type: boolean
|
||||
description: {_('directory or string is not in "_.step.structural"')}
|
||||
|
||||
main_structural_directories:
|
||||
description: {_("Directories where structural files are placed")}
|
||||
type: unix_filename
|
||||
|
|
@ -54,32 +65,21 @@ sort_structural_files_all:
|
|||
directory is not in _.step.structural
|
||||
{{% endif %}}
|
||||
|
||||
main_namespace:
|
||||
description: {_("Main namespace name")}
|
||||
default: {main_namespace_default}
|
||||
alternative_name: s
|
||||
mandatory: false
|
||||
disabled:
|
||||
jinja: >-
|
||||
{{{{ 'directory' not in _.step.structural }}}}
|
||||
return_type: boolean
|
||||
description: directory is not in _.step.structural
|
||||
|
||||
isolated_namespace:
|
||||
description: {_("Namespaces are isolated")}
|
||||
default: true
|
||||
disabled:
|
||||
jinja: >-
|
||||
{{{{ 'directory' not in _.step.structural or not _.main_namespace }}}}
|
||||
{{{{ 'directory' not in _.step.structural and 'string' not in _.step.structural }}}}
|
||||
return_type: boolean
|
||||
description: directory is not in _.step.structural or main_namespace is not set
|
||||
description: {_('directory or string is not in "_.step.structural" or "_.main_namespace" is not set')}
|
||||
|
||||
extra_namespaces:
|
||||
description: {_("Extra namespaces")}
|
||||
type: leadership
|
||||
disabled:
|
||||
jinja: >-
|
||||
{{{{ 'directory' not in _.step.structural or not _.main_namespace }}}}
|
||||
{{{{ ('directory' not in _.step.structural and 'string' not in _.step.structural) or not _.main_namespace }}}}
|
||||
return_type: boolean
|
||||
description: directory is not in _.step.structural or main_namespace is not set
|
||||
|
||||
|
|
@ -99,6 +99,11 @@ extra_namespaces:
|
|||
types:
|
||||
- directory
|
||||
multi: true
|
||||
disabled:
|
||||
jinja: >-
|
||||
{{{{ 'directory' not in __.step.structural }}}}
|
||||
return_type: boolean
|
||||
description: {_('directory is not in "__.step.structural"')}
|
||||
"""
|
||||
return {
|
||||
"name": "directory",
|
||||
|
|
|
|||
|
|
@ -82,54 +82,127 @@ def convert_boolean(value: str) -> bool:
|
|||
return None
|
||||
raise Exception(_('unknown boolean value "{0}"').format(value))
|
||||
|
||||
_ip_params = {
|
||||
"cidr": {"description": _("IP must be in CIDR format")},
|
||||
"private_only": {"description": _("private IP are allowed")},
|
||||
"allow_reserved": {"description": _("reserved IP are allowed")},
|
||||
}
|
||||
_network_params = {
|
||||
"cidr": {"description": _("network must be in CIDR format")},
|
||||
"private_only": {"description": _("private network are allowed")},
|
||||
"allow_reserved": {"description": _("reserved network are allowed")},
|
||||
}
|
||||
_port_params = {
|
||||
"allow_range": {"description": _("can be range of port")},
|
||||
"allow_protocol": {"description": _("can have the protocol")},
|
||||
"allow_zero": {"description": _("port 0 is allowed")},
|
||||
"allow_wellknown": {"description": _("well-known ports (1 to 1023) are allowed")},
|
||||
"allow_registred": {"description": _("registred ports (1024 to 49151) are allowed")},
|
||||
"allow_private": {"description": _("private ports (greater than 49152) are allowed")},
|
||||
}
|
||||
_domain_params = {
|
||||
"type": {"description": _("type of domainname"), "choices": ('domainname', 'netbios', 'hostname'), 'doc': _("type {0}")},
|
||||
"allow_startswith_dot": {"description": _("the domain name can starts by a dot")},
|
||||
"allow_without_dot": {"description": _("the domain name can be a hostname")},
|
||||
"allow_ip": {"description": _("the domain name can be an IP")},
|
||||
"allow_cidr_network": {"description": _("the domain name can be network in CIDR format")},
|
||||
"test_existence": {"description": _("the domain name must exist")},
|
||||
}
|
||||
_web_params = _port_params | _domain_params
|
||||
|
||||
|
||||
CONVERT_OPTION = {
|
||||
"string": dict(opttype="StrOption", example="example"),
|
||||
"number": dict(opttype="IntOption", func=int, example=42),
|
||||
"integer": dict(opttype="IntOption", func=int, example=42),
|
||||
"number": dict(opttype="IntOption",
|
||||
func=int,
|
||||
params={
|
||||
"min_number": {"description": _("the minimum value"), 'doc': _("the minimum value is {0}")},
|
||||
"max_number": {"description": _("the maximum value"), 'doc': _("the maximum value is {0}")},
|
||||
},
|
||||
example=42),
|
||||
"integer": dict(opttype="IntOption",
|
||||
params={
|
||||
"min_integer": {"description": _("the minimum value"), 'doc': _("the minimum value is {0}")},
|
||||
"max_integer": {"description": _("the maximum value"), 'doc': _("the maximum value is {0}")},
|
||||
},
|
||||
func=int,
|
||||
example=42,
|
||||
),
|
||||
"float": dict(opttype="FloatOption", func=float, example=1.42),
|
||||
"boolean": dict(opttype="BoolOption", func=convert_boolean),
|
||||
"secret": dict(opttype="PasswordOption", example="secrets"),
|
||||
"secret": dict(opttype="PasswordOption",
|
||||
params={
|
||||
"min_len": {"description": _("minimum characters length for the secret"), "doc": _("minimum length for the secret is {0} characters")},
|
||||
"max_len": {"description": _("maximum characters length for the secret"), "doc": _("maximum length for the secret is {0} characters")},
|
||||
"forbidden_char": {"description": _("forbidden characters"), "doc": _("forbidden characters: {0}")},
|
||||
},
|
||||
example="secrets"),
|
||||
"mail": dict(opttype="EmailOption", example="user@example.net"),
|
||||
"unix_filename": dict(opttype="FilenameOption", example="/tmp/myfile.txt"),
|
||||
"unix_filename": dict(opttype="FilenameOption",
|
||||
msg="UNIX filename",
|
||||
params={
|
||||
"allow_relative": {"description": _("this filename could be a relative path")},
|
||||
"test_existence": {"description": _("this file must exist")},
|
||||
"types": {"description": _("file type allowed"), "doc": _("file type allowed: {0}"), "choices": ("file", "directory"), "multi": True},
|
||||
},
|
||||
example="/tmp/myfile.txt"),
|
||||
"date": dict(opttype="DateOption", example="2000-01-01"),
|
||||
"unix_user": dict(opttype="UsernameOption", example="username"),
|
||||
"unix_user": dict(opttype="UsernameOption", example="username",
|
||||
msg="UNIX user"
|
||||
),
|
||||
"ip": dict(
|
||||
opttype="IPOption", initkwargs={"allow_reserved": True}, example="1.1.1.1"
|
||||
opttype="IPOption", initkwargs={"allow_reserved": True},
|
||||
msg="IP",
|
||||
params=_ip_params,
|
||||
example="1.1.1.1"
|
||||
),
|
||||
"cidr": dict(opttype="IPOption", initkwargs={"cidr": True}, example="1.1.1.0/24"),
|
||||
"cidr": dict(opttype="IPOption", msg="CIDR", initkwargs={"cidr": True},
|
||||
params=_ip_params,
|
||||
example="1.1.1.0/24"),
|
||||
"netmask": dict(opttype="NetmaskOption", example="255.255.255.0"),
|
||||
"network": dict(opttype="NetworkOption", example="1.1.1.0"),
|
||||
"network": dict(opttype="NetworkOption",
|
||||
params=_network_params,
|
||||
example="1.1.1.0"),
|
||||
"network_cidr": dict(
|
||||
opttype="NetworkOption", initkwargs={"cidr": True}, example="1.1.1.0/24"
|
||||
opttype="NetworkOption", initkwargs={"cidr": True}, example="1.1.1.0/24",
|
||||
params=_network_params,
|
||||
msg="network CIDR",
|
||||
),
|
||||
"broadcast": dict(opttype="BroadcastOption", example="1.1.1.255"),
|
||||
"netbios": dict(
|
||||
opttype="DomainnameOption",
|
||||
initkwargs={"type": "netbios", "warnings_only": True},
|
||||
params=_domain_params,
|
||||
example="example",
|
||||
),
|
||||
"domainname": dict(
|
||||
opttype="DomainnameOption",
|
||||
initkwargs={"type": "domainname", "allow_ip": False},
|
||||
params=_domain_params,
|
||||
example="example.net",
|
||||
),
|
||||
"hostname": dict(
|
||||
opttype="DomainnameOption",
|
||||
initkwargs={"type": "hostname", "allow_ip": False},
|
||||
params=_domain_params,
|
||||
example="example",
|
||||
),
|
||||
"web_address": dict(
|
||||
opttype="URLOption",
|
||||
initkwargs={"allow_ip": False, "allow_without_dot": True},
|
||||
msg="web address",
|
||||
params=_web_params,
|
||||
example="https://example.net",
|
||||
),
|
||||
"port": dict(
|
||||
opttype="PortOption", initkwargs={"allow_private": True}, example="111", func=str,
|
||||
opttype="PortOption", initkwargs={"allow_private": True},
|
||||
params=_port_params,
|
||||
example="111", func=str,
|
||||
),
|
||||
"mac": dict(opttype="MACOption", example="00:00:00:00:00"),
|
||||
"unix_permissions": dict(
|
||||
opttype="PermissionsOption",
|
||||
msg="UNIX permissions",
|
||||
initkwargs={"warnings_only": True},
|
||||
func=int,
|
||||
example="644",
|
||||
|
|
@ -159,7 +232,7 @@ def raise_carry_out_calculation_error(subconfig, *args, **kwargs):
|
|||
ymlfiles = subconfig.config_bag.context.get_values().get_information(
|
||||
subconfig, "ymlfiles", []
|
||||
)
|
||||
raise ConfigError(_("{0} in {1}").format(err, display_xmlfiles(ymlfiles)))
|
||||
raise ConfigError(_("{0} in {1}").format(err, display_xmlfiles(ymlfiles)), subconfig=subconfig)
|
||||
|
||||
|
||||
errors.raise_carry_out_calculation_error = raise_carry_out_calculation_error
|
||||
|
|
@ -168,6 +241,7 @@ errors.raise_carry_out_calculation_error = raise_carry_out_calculation_error
|
|||
global func
|
||||
dict_env = {}
|
||||
ENV = SandboxedEnvironment(loader=DictLoader(dict_env), undefined=StrictUndefined)
|
||||
ENV.add_extension('jinja2.ext.do')
|
||||
func = ENV.filters
|
||||
ENV.compile_templates("jinja_caches", zip=None)
|
||||
|
||||
|
|
@ -241,20 +315,8 @@ def tiramisu_display_name(
|
|||
with_quote: bool = False,
|
||||
) -> str:
|
||||
"""Replace the Tiramisu display_name function to display path + description"""
|
||||
config_bag = subconfig.config_bag
|
||||
context = config_bag.context
|
||||
values = context.get_values()
|
||||
context_subconfig = context.get_root(config_bag)
|
||||
doc = values.get_information(subconfig, "doc", None)
|
||||
comment = doc if doc and doc != kls.impl_getname() else ""
|
||||
if "{{ identifier }}" in comment and subconfig.identifiers:
|
||||
comment = comment.replace("{{ identifier }}", str(subconfig.identifiers[-1]))
|
||||
path_in_description = values.get_information(
|
||||
context_subconfig, "path_in_description", True
|
||||
)
|
||||
if path_in_description or not comment:
|
||||
comment = f" ({comment})" if comment else ""
|
||||
if path_in_description is False:
|
||||
def get_path():
|
||||
if description_type in ["description", "name", "name_and_description"]:
|
||||
path = kls.impl_getname()
|
||||
else:
|
||||
path = kls.impl_getpath()
|
||||
|
|
@ -262,12 +324,40 @@ def tiramisu_display_name(
|
|||
path = path.replace(
|
||||
"{{ identifier }}", normalize_family(str(subconfig.identifiers[-1]))
|
||||
)
|
||||
return path
|
||||
config_bag = subconfig.config_bag
|
||||
context = config_bag.context
|
||||
values = context.get_values()
|
||||
context_subconfig = context.get_root(config_bag)
|
||||
description_type = values.get_information(
|
||||
context_subconfig, "description_type", "name_and_description"
|
||||
)
|
||||
if description_type in ["description", "name_and_description"]:
|
||||
doc = values.get_information(subconfig, "doc", None)
|
||||
description = doc if doc and doc != kls.impl_getname() else ""
|
||||
if "{{ identifier }}" in description and subconfig.identifiers:
|
||||
description = description.replace("{{ identifier }}", str(subconfig.identifiers[-1]))
|
||||
if description_type in ["name", "path", "name_and_description"]:
|
||||
path = get_path()
|
||||
if description_type == "name_and_description":
|
||||
if description:
|
||||
if with_quote:
|
||||
description = f'"{path}" ({description})'
|
||||
else:
|
||||
description = f"{path} ({description})"
|
||||
else:
|
||||
if with_quote:
|
||||
description = f'"{path}"'
|
||||
else:
|
||||
description = path
|
||||
else:
|
||||
path = comment
|
||||
comment = ""
|
||||
if with_quote:
|
||||
return f'"{path}"{comment}'
|
||||
return f"{path}{comment}"
|
||||
if description_type in ["name", "path"]:
|
||||
description = path
|
||||
elif not description:
|
||||
description = get_path()
|
||||
if with_quote:
|
||||
description = f'"{description}"'
|
||||
return description
|
||||
|
||||
|
||||
def rougail_calc_value(*args, __default_value=None, __internal_multi=False, **kwargs):
|
||||
|
|
@ -307,8 +397,20 @@ def jinja_to_function(
|
|||
global ENV, CONVERT_OPTION
|
||||
kw = {}
|
||||
for key, value in kwargs.items():
|
||||
if isinstance(value, PropertiesOptionError):
|
||||
value = JinjaError(value)
|
||||
if isinstance(value, list):
|
||||
val = []
|
||||
for v in value:
|
||||
if isinstance(v, PropertiesOptionError):
|
||||
v = JinjaError(v)
|
||||
if v is None:
|
||||
v = ''
|
||||
val.append(v)
|
||||
value = val
|
||||
else:
|
||||
if isinstance(value, PropertiesOptionError):
|
||||
value = JinjaError(value)
|
||||
if value is None:
|
||||
value = ''
|
||||
if "." in key:
|
||||
c_kw = kw
|
||||
path, var = key.rsplit(".", 1)
|
||||
|
|
@ -331,17 +433,14 @@ def jinja_to_function(
|
|||
values = ENV.get_template(__internal_jinja).render(kw, **func).strip()
|
||||
except Exception as err:
|
||||
kw_str = ", ".join(kw_to_string(kw))
|
||||
raise ConfigError(
|
||||
_(
|
||||
'cannot calculating "{0}" attribute for variable "{1}" in {2} with parameters "{3}": {4}'
|
||||
).format(
|
||||
prefix = _('cannot calculate the variable "{0}"').format(__internal_variable)
|
||||
msg = _('the attribute "{0}" in {1} with the parameters "{2}" causes the error: {3}').format(
|
||||
__internal_attribute,
|
||||
__internal_variable,
|
||||
display_xmlfiles(__internal_files),
|
||||
kw_str,
|
||||
err,
|
||||
)
|
||||
) from err
|
||||
raise ConfigError(msg, prefix=prefix) from err
|
||||
convert = CONVERT_OPTION[__internal_type].get("func", str)
|
||||
if __internal_multi:
|
||||
values = [
|
||||
|
|
@ -353,9 +452,15 @@ def jinja_to_function(
|
|||
try:
|
||||
values = convert(values)
|
||||
except Exception as err:
|
||||
raise ConfigError(
|
||||
f'cannot converting "{__internal_attribute}" attribute for variable "{__internal_variable}" in {display_xmlfiles(__internal_files)}: {err}'
|
||||
) from err
|
||||
prefix = _('cannot converting the variable "{0}"').format(__internal_variable)
|
||||
msg = _('"{0}" is an invalid {1}').format(values, __internal_type)
|
||||
if __internal_attribute != "default":
|
||||
msg = _('the attribute "{0}" in {1} causes the error: {2}').format(
|
||||
__internal_attribute,
|
||||
display_xmlfiles(__internal_files),
|
||||
msg,
|
||||
)
|
||||
raise ConfigError(msg, prefix=prefix) from err
|
||||
values = values if values != "" and values != "None" else None
|
||||
if values is None and __default_value is not None:
|
||||
return __default_value
|
||||
|
|
|
|||
Loading…
Reference in a new issue