.. | ||
README.md |
Table of Contents
Les propriétés calculées
Synopsis
Les propriétés calculées permettent d'ajouter ou de supprimer des propriétés à une variable ou une famille suivant le contexte.
Voici la liste des propriétés modifiables :
Attribut applicable sur | Nom de la propriétée | Commentaire |
---|---|---|
Variable Famille |
hidden | Cache une variable ou famille, dans ce cas elle n'est pas accessible en lecture écriture, mais reste accessible dans un calcul ou en lecture seule |
Variable Famille |
disabled | Désactive une variable ou famille, dans ce cas elle n'est jamais accessible |
Variable | mandatory | La variable attend une valeur autre que None ou [] pour les variables multiple |
Une propriété peut être calculée. Dans ce cas on a deux possibilités :
- calcul via Jinja
- calcul via une variable
Paramètres
Suivant les types de calcul les paramètres vont être différents :
Type de calcul | Paramètre | Commentaires | Exemple |
---|---|---|---|
typestring mandatory |
Type du calcul, les valeurs possible sont : jinja, variable, information, suffix ou index | jinja | |
Jinja | jinjastring mandatory |
Template Jinja. Pour une variable multiple, chaque ligne représente une valeur. | {% if rougail.variable %}{{ rougail.variable }}{% endif %} |
Jinja | paramslist |
Paramètres complémentaire passé au template Jinja | |
Variable | variablestring mandatory |
Nom de la variable associée. ⚠️ La variable doit être de type boolean . |
rougail.variable |
Variable | propertyerrorboolean |
Si l'accès à la variable n'est pas possible à cause d'une propriété (par exemple disabled ) par défaut une erreur est retournée. Si l'attribut est à False, la valeur calculée est False.Valeur par défaut : True |
False |
Dans le cas d'un calcul de type Jinja, il est possible d'avoir des paramètres.
Il existe deux types de paramètre :
-
les paramètres standards (string, boolean, integer, null), dans ce il suffit de faire : "key: value"
-
les paramètres avancés :
- paramètre via une variable
- paramètre via une information
- paramètre via un suffix : dans le cas d'une variable dans une famille dynamique
- paramètre via un index : dans le cas d'une variable suiveuse
Type du paramètre | Paramètre | Commentaires | Exemple |
---|---|---|---|
namestring mandatory |
Le nom du paramètre | my_param | |
typestring mandatory |
Type du paramètre, les valeurs possible sont : variable, information, suffix ou index | suffix | |
Variable | variablestring mandatory |
Nom de la variable | rougail.variable |
Variable (mandatory )Information |
propertyerrorboolean |
Si l'accès à la variable n'est pas possible à cause d'une propriété (par exemple disabled ) par défaut une erreur est retournée. Si l'attribut est à False, le paramètre n'est pas passé au template Jinja.Valeur par défaut : True |
False |
Variable | optionalboolean |
La variable peut ne pas exister suivant les importations de fichier YAML. Si le paramètre optional est à True, le paramètre sera tout simplement supprimer si la variable n'existe pas. Valeur par défaut : False |
True |
Information | informationstring mandatory |
Nom de l'information dont on veut récupérer la valeur. | doc |
Exemples
Une propriété calculée de type Jinja
Il est possible d'écrire la condition en Jinja :
---
version: '1.0'
condition:
default: 'do not hide!'
my_variable:
hidden:
type: jinja
jinja: |
{% if rougail.condition and rougail.condition == "hide!" %}
this rougail.condition value is 'hide!'
{% endif %}
Dans ce cas la variable est cachée si la valeur de la variable "rougail.condition" est hide!
et elle n'a pas caché pour tout autre valeur.
Attention toujours prendre en considération que "rougail.condition" peut être égale à None
.
Le message retourner par la fonction est visible dans le message d'erreur en cas de problème d'accès :
>>> from rougail import Rougail, RougailConfig
>>> RougailConfig['dictionaries_dir'] = ['dict']
>>> rougail = Rougail()
>>> config = rougail.get_config()
>>> config.property.read_write()
[..]
tiramisu.error.PropertiesOptionError: cannot access to option "my_variable" because has property "hidden" (this rougail.condition value is 'hide!')
Il est possible d'utiliser des paramètres lors du calcul des propriétés comme pour le calcul de l'attribut default
.
Une propriété calculée de type variable
Une variable peut donc être calculé via la résultat d'une autre variable.
Attention, cette autre variable doit obligatoirement être de type boolean
:
---
version: '1.0'
condition:
type: boolean
my_variable:
hidden:
type: variable
variable: rougail.condition
Si la valeur de la variable "rougail.condition" est True
alors la variable "rougail.my_variable" est cachée.
Rédéfinition
Il se peut que dans un dictionnaire on décide de définir une condition.
Pour supprimer le calcul à partir d'une variable il suffit de faire dans un nouveau dictionnaire :
---
version: '1.0'
my_variable:
redefine: true
hidden: