we can force mandatory to False

This commit is contained in:
Emmanuel Garette 2021-02-23 21:36:26 +01:00
parent 2ca7b9a6fc
commit 54bf1c35a7
6 changed files with 35 additions and 2 deletions

View file

@ -36,7 +36,7 @@ Une variable a un type. Ce type permet de définir les valeurs acceptées par ce
- string : chaine de caractère (type par défaut)
- number : un nombre
- float : un chiffre flottant
- boolean : "True" ou "False", si aucune valeur n'est défini la valeur par défaut de cette variable sera "True"
- boolean : "True" ou "False", si aucune valeur n'est défini la valeur par défaut de cette variable sera "True", ces variables sont également obligatoire par défaut
- password : un mot de passe
- mail : une adresse mail
- filename : nom de fichier au sens Unix (exemple : "/etc/passwd")
@ -107,6 +107,12 @@ Variable dont une valeur est requise :
<variable name="my_variable" mandatory="True"/>
```
Les variables booléans sont par défaut obligatoire. Pour qu'une variable booléan ne soit pas obligatoire il faut le préciser explicitement :
```
<variable name="my_variable" type="boolean" mandatory="False"/>
```
## Valeur par défaut d'une variable
Il est possible de fixer les valeurs par défaut d'une variable :

View file

@ -73,7 +73,7 @@ class ValueAnnotator(Walk): # pylint: disable=R0903
if value.type == 'calculation':
has_value = False
break
if has_value:
if has_value and 'mandatory' not in vars(variable):
# if has value without any calculation
variable.mandatory = True
if not hasattr(variable, 'value'):

View file

@ -0,0 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.9">
<variables>
<variable name="my_variable" type="boolean" mandatory="False"/>
</variables>
</rougail>
<!-- vim: ts=4 sw=4 expandtab
-->

View file

@ -0,0 +1,3 @@
{
"rougail.my_variable": true
}

View file

@ -0,0 +1,16 @@
from importlib.machinery import SourceFileLoader
from importlib.util import spec_from_loader, module_from_spec
loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py')
spec = spec_from_loader(loader.name, loader)
func = module_from_spec(spec)
loader.exec_module(func)
for key, value in dict(locals()).items():
if key != ['SourceFileLoader', 'func']:
setattr(func, key, value)
try:
from tiramisu3 import *
except:
from tiramisu import *
option_2 = BoolOption(name="my_variable", doc="my_variable", default=True, properties=frozenset({"normal"}))
option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1])