.. index::
single: labels (tutorial)
.. _tutorial-labels:
Labels
======
Sometime it is very useful to see :term:`task` specific information in :term:`ecflow_ui`. For this we can define a :term:`label`. A :term:`label` is a string that is attached to a :term:`task` and that can be updated using the :term:`child command` :term:`ecflow_client` --label
Ecf Script
----------
We will create new family **f3** with a task **t1**. Create :term:`ecf script` :file:`$HOME/course/test/f3/t1.ecf`
.. code-block:: shell
:caption: $HOME/course/test/label/t1.ecf
%include
n=1
while [[ $n -le 5 ]] # Loop 5 times
do
msg="The date is now $(date)"
ecflow_client --label=info "$msg" # Set the label
sleep 60 # Wait a one minute
(( n = $n + 1 ))
done
ecflow_client --label=info "I have now finished my work."
%include
Text
----
.. code-block:: shell
# Definition of the suite test. Note Family f1,f2 from previous pages are omitted
suite test
edit ECF_INCLUDE "$HOME/course"
edit ECF_HOME "$HOME/course"
family label
task t1
label info ""
endfamily
endsuite
Python
------
The following section shows how to add a :py:class:`ecflow.Label` in Python. (Note: **families f1 and f2 are omitted for brevity**).
.. literalinclude:: src/labels.py
:language: python
:caption: $HOME/course/test.py
**What to do**
#. Modify the :term:`suite definition` file or python script
#. Create the new :term:`ecf script` file :file:`$HOME/course/test/f3/t1.ecf`
#. Replace the :term:`suite definition`
#. Watch in :term:`ecflow_ui`
#. Change the label colour in :ref:`ecflow_ui`, Tools > Preferences... > Appearance > Node Labels