Task display name#
Note
This feature is only available for Airflow >= 2.9.
In Airflow, task_id
does not support non-ASCII characters. Therefore, if users wish to use non-ASCII characters (such as their native language) as display names while keeping task_id
in ASCII, they can use the display_name
parameter.
To work with projects that use non-ASCII characters in model names, the normalize_task_id
field of RenderConfig
can be utilized.
Example:
You can provide a function to convert the model name to an ASCII-compatible format. The function’s output is used as the TaskID, while the display name on Airflow remains as the original model name.
from slugify import slugify
def normalize_task_id(node):
return slugify(node.name)
from cosmos import DbtTaskGroup, RenderConfig
jaffle_shop = DbtTaskGroup(
render_config=RenderConfig(normalize_task_id=normalize_task_id)
)
Note
Although the slugify example often works, it may not be suitable for use in actual production. Since slugify performs conversions based on pronunciation, there may be cases where task_id is not unique due to homophones and similar issues.