53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
# Fonction de vérification
|
|
|
|
## Vérification stricte des valeurs
|
|
|
|
Une fonction de vérification est une fonction complémentaire au type qui permet de valider plus précisement le contenu d'une variable.
|
|
|
|
Voici un exemple simple de validation des valeurs :
|
|
|
|
```
|
|
<variables>
|
|
<variable name="my_variable"/>
|
|
</variables>
|
|
<constraints>
|
|
<check name="islower">
|
|
<target>my_variable</target>
|
|
</check>
|
|
</constraints>
|
|
```
|
|
|
|
La [cible (de type variable)](../target/variable.md) de la fonction de vérification est ici "my_variable".
|
|
|
|
Dans cette exemple, la valeur de la variable "my_variable" va être validé par la fonction islower.
|
|
|
|
Voici le contenu de la fonction :
|
|
|
|
```
|
|
def islower(value):
|
|
if value is None:
|
|
return
|
|
if not value.islower():
|
|
raise ValueError(f'"{value}" is not lowercase string')
|
|
```
|
|
|
|
Une fonction de vérification doit prendre en compte 2 aspects important :
|
|
|
|
- la valeur peut ne pas être renseigné (même si la variable est obligatoire), la valeur None doit être prise en compte
|
|
- si la valeur est invalide, il faut faire un raise de type ValueError avec, si possible, un message explicite.
|
|
|
|
À partir de maintenant seule None et des valeurs en minuscule seront autorisés.
|
|
|
|
Il est possible de définir des [paramètres](../param/README.md) à cette fonction.
|
|
|
|
## Vérification des valeurs avec avertissement
|
|
|
|
Dans la contrainte, il est possible de spécifier le niveau d'erreur et le mettre en avertissement :
|
|
|
|
```
|
|
<check name="islower" level="warning">
|
|
<target>my_variable</target>
|
|
</check>
|
|
```
|
|
|
|
Dans ce cas une valeur avec une majuscule sera accepté, mais un message d'avertissement apparaitra.
|