47 lines
1.3 KiB
ReStructuredText
47 lines
1.3 KiB
ReStructuredText
Let's create a custom function
|
|
==============================
|
|
|
|
We create the complementary :term:`structure file` named :file:`dict/01-function.yml` so that the `my_variable_jinja` variable is :term:`calculated`:
|
|
|
|
.. code-block:: yaml
|
|
|
|
%YAML 1.2
|
|
---
|
|
version: 1.1
|
|
|
|
my_variable_jinja:
|
|
default:
|
|
type: jinja
|
|
jinja: "{{ return_no() }}"
|
|
...
|
|
|
|
Then let's define the :func:`return_no` function in :file:`functions.py`:
|
|
|
|
.. code-block:: python
|
|
:caption: the :file:`functions.py` content
|
|
|
|
def return_no():
|
|
return 'no'
|
|
|
|
Then, let's create the :term:`Tiramisu` objects via the following script:
|
|
|
|
.. code-block:: python
|
|
:caption: the `script.py` file content
|
|
|
|
from rougail import Rougail, RougailConfig
|
|
|
|
RougailConfig['main_structural_directories'] = ['dict']
|
|
RougailConfig['extra_namespaces']['example'] = ['extras/']
|
|
RougailConfig['functions_file'] = 'functions.py'
|
|
rougail = Rougail()
|
|
config = rougail.get_config()
|
|
print(config.value.dict())
|
|
|
|
Let's execute `script.py`:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ python3 script.py
|
|
{'rougail.my_variable': 'my_value', 'rougail.my_variable_jinja': 'no', 'example.my_variable_extra': 'my_value_extra'}
|
|
|
|
The value of the `my_variable_extra` variable is calculated, and it's value comes from the :func:`return_no` function.
|