135 lines
3.2 KiB
Markdown
135 lines
3.2 KiB
Markdown
|
# Instanciate an option
|
||
|
|
||
|
## Option's description
|
||
|
|
||
|
First of all, an option is a name and a description.
|
||
|
|
||
|
### name
|
||
|
|
||
|
The "name" is important to retrieve this option.
|
||
|
|
||
|
### description
|
||
|
|
||
|
The "description" allows the user to understand where this option will be used for.
|
||
|
|
||
|
Let's try:
|
||
|
|
||
|
```python
|
||
|
from tiramisu import StrOption
|
||
|
StrOption('welcome',
|
||
|
'Welcome message to the user login')
|
||
|
```
|
||
|
|
||
|
## Option's default value
|
||
|
|
||
|
For each option, we can defined a default value. This value will be the value of this option until user customize it.
|
||
|
|
||
|
This default value is store directly in the option. So we can, at any moment we can go back to the default value.
|
||
|
|
||
|
```python
|
||
|
StrOption('welcome',
|
||
|
'Welcome message to the user login',
|
||
|
'Hey guys, welcome here!')
|
||
|
```
|
||
|
|
||
|
The default value can be a calculation.
|
||
|
|
||
|
```python
|
||
|
from tiramisu import Calculation
|
||
|
def get_value():
|
||
|
return 'Hey guys, welcome here'
|
||
|
|
||
|
StrOption('welcome',
|
||
|
'Welcome message to the user login',
|
||
|
Calculation(get_value))
|
||
|
```
|
||
|
|
||
|
## Option with multiple value
|
||
|
|
||
|
### multi
|
||
|
|
||
|
There are cases where it can be interesting to have a list of values rather than just one.
|
||
|
|
||
|
The "multi" attribut is here for that.
|
||
|
|
||
|
In this case, the default value has to be a list:
|
||
|
|
||
|
```python
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
['1 kilogram of carrots', 'leeks', '1 kilogram of potatos'],
|
||
|
multi=True)
|
||
|
```
|
||
|
|
||
|
The option could be a list of list, which is could submulti:
|
||
|
|
||
|
```python
|
||
|
from tiramisu import submulti
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
[['1 kilogram of carrots', 'leeks', '1 kilogram of potatos'], ['milk', 'eggs']],
|
||
|
multi=submulti)
|
||
|
```
|
||
|
|
||
|
The default value can be a calculation. For a multi, the function have to return a list or have to be in a list:
|
||
|
|
||
|
```python
|
||
|
def get_values():
|
||
|
return ['1 kilogram of carrots', 'leeks', '1 kilogram of potatos']
|
||
|
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
Calculation(get_values),
|
||
|
multi=True)
|
||
|
```
|
||
|
|
||
|
```python
|
||
|
def get_a_value():
|
||
|
return 'leeks'
|
||
|
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
['1 kilogram of carrots', Calculation(get_a_value), '1 kilogram of potatos'],
|
||
|
multi=True)
|
||
|
```
|
||
|
|
||
|
### default_multi
|
||
|
|
||
|
A second default value is available for multi option, "default_multi". This value is used when we add new value without specified a value.
|
||
|
This "default_multi" must not be a list in multi purpose. For submulti, it has to be a list:
|
||
|
|
||
|
```python
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
['1 kilogram of carrots', 'leeks', '1 kilogram of potatos'],
|
||
|
default_multi='some vegetables',
|
||
|
multi=True)
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
[['1 kilogram of carrots', 'leeks', '1 kilogram of potatos'], ['milk', 'eggs']],
|
||
|
default_multi=['some', 'vegetables'],
|
||
|
multi=submulti)
|
||
|
```
|
||
|
|
||
|
The default_multi value can be a calculation:
|
||
|
|
||
|
```python
|
||
|
def get_a_value():
|
||
|
return 'some vegetables'
|
||
|
|
||
|
StrOption('shopping_list',
|
||
|
'The shopping list',
|
||
|
['1 kilogram of carrots', 'leeks', '1 kilogram of potatos'],
|
||
|
default_multi=Calculation(get_a_value),
|
||
|
multi=True)
|
||
|
```
|
||
|
|
||
|
## Other option's parameters
|
||
|
|
||
|
There are two other parameters.
|
||
|
|
||
|
We will see them later:
|
||
|
|
||
|
- [Property](property.md)
|
||
|
- [Validator](validator.md)
|