Есть ли способ сделать пользовательский макрос в Airflow, который сам вычисляется из других макросов?
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
dag = DAG(
'simple',
schedule_interval='0 21 * * *',
user_defined_macros={
'next_execution_date': '{{ dag.following_schedule(execution_date) }}',
},
)
task = BashOperator(
task_id='bash_op',
bash_command='echo "{{ next_execution_date }}"',
dag=dag,
)
Здесь используется обратный перенос нового макроса Airflow v1.8 next_execution_date
для работы в Airflow v1.7. К сожалению, этот шаблон отображается без расширения макроса:
$ airflow render simple bash_op 2017-08-09 21:00:00
# ----------------------------------------------------------
# property: bash_command
# ----------------------------------------------------------
echo "{{ dag.following_schedule(execution_date) }}"