Calculated properties
Synopsis
Calculated properties allow you to add or remove properties to a variable or a family depending on the context.
Here is the list of editable properties:
Attribute applicable on |
Property’s name |
Comment |
---|---|---|
Variable Family |
hidden |
Hides a variable or a family, in this case it is not accessible in |
Variable Family |
disabled |
Deactivates a variable or family, in this case it is never accessible |
Variable |
mandatory |
The variable expects a value other than |
A property can be calculated. In this case we have two possibilities:
calculation via Jinja
calculation via a variable
Parameters
Calculation type |
Parameter |
Comment |
Sample |
---|---|---|---|
type
|
Calculation type, possible values are: jinja, variable, information, suffix or index |
jinja |
|
Jinja |
jinja
|
Jinja template . For a multiple variable, each line represents a value. |
{% if rougail.variable %} {{ rougail.variable }} {% endif %} |
Jinja |
params
|
Additional parameters passed to the Jinja template |
|
Variable |
variable
|
Name of the associated variable. Attention The variable must be of |
rougail.variable |
Variable |
propertyerror
|
If access to the variable is not possible due to a property
(for example Default value: |
False |
In the case of a Jinja type calculation, it is possible to have parameters.
There are two types of parameter:
the standard parameters (string, boolean, integer, null), in this case just do: “key: value”
advanced settings:
parameter via a variable
parameter via information
parameter via a suffix: in the case of a variable in a dynamic family
parameter via an index: in the case of a follower variable
Parameter’s type |
Parameter |
Comments |
Sample |
---|---|---|---|
name
|
parameter’s name |
my_param |
|
type
|
Parameter’s type, possible values are: variable, information, suffix or index |
suffix |
|
Variable |
variable
|
variable’s name |
rougail.variable |
Variable ( |
propertyerror
|
If access to the variable is not possible due to a property (for example Default value: |
False |
Variable |
optional
|
The variable may not exist depending on YAML file imports. If the optional parameter is True, the parameter will simply be deleted if the variable does not exist.
Default value: |
True |
information |
information
|
Name of the information whose value we want to retrieve. |
doc |
Samples
A Jinja-type calculated property
It is possible to write the condition in Jinja:
---
version: '1.1'
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 %}
In this case the variable is hidden if the value of the variable “rougail.condition” is hide!
and it did not hide for any other value. Be careful, always take into consideration that “rougail.condition” can be equal to None
.
The message returned by the function is visible in the error message in the event of an access problem:
>>> 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!')
It is possible to use parameters when calculating properties as for calculating the default
attribute.
A calculated property of variable type
A variable can therefore be calculated via the result of another variable. Please note, this other variable must be of boolean
type:
---
version: '1.1'
condition:
type: boolean
my_variable:
hidden:
type: variable
variable: rougail.condition
If the value of the variable “rougail.condition” is True
then the variable “rougail.my_variable” is hidden.
Redefintion
It may be that in a dictionary we decide to define a condition.
To delete the calculation from a variable, simply do in a new dictionary:
---
version: '1.1'
my_variable:
redefine: true
hidden: