Apache Airflow version
2.2.2
What happened
When I use Taskflow, and especially the @task decorator to create a task, the template files are not correctly rendered : I still have the filename inside templates_dict instead of the templated file content, even though I supplied a valid templates_exts argument (at least one which works with PythonOperator).
I do not encounter the same issue using the old PythonOperator syntax.
What you expected to happen
I expect that the behavior of the @task decorator would be the same as the PythonOperator class, or at least have a workaround explained in the documentation such as other arguments I would need to provide.
How to reproduce
Sample code below :
from airflow.decorators import task
@task(templates_dict={"query": "sql/sample.sql"}, templates_exts=[".sql"])
def aggregate_logs(**kwargs):
logging.info("query: %s", str(kwargs["templates_dict"]["query"]))
Which returns INFO - query: sql/sample.sql.
However, if I use a PythonOperator with the old syntax it works :
from airflow.operators.python import PythonOperator
def aggregate_logs(**kwargs):
logging.info("query: %s", str(kwargs["templates_dict"]["query"]))
aggregate_task = PythonOperator(
python_callable=aggregate_logs,
templates_dict={"query": "sql/sample.sql"},
templates_exts=[".sql"],
)
I get the entire templated file inside kwargs["templates_dict"]["query"], not just its name.
Operating System
AWS MWAA
Versions of Apache Airflow Providers
Not sure if relevant here since I only use Airflow packages in the example.
Deployment
MWAA
Deployment details
No response
Anything else
No response
Are you willing to submit PR?
Code of Conduct
Apache Airflow version
2.2.2
What happened
When I use Taskflow, and especially the
@taskdecorator to create a task, the template files are not correctly rendered : I still have the filename insidetemplates_dictinstead of the templated file content, even though I supplied a validtemplates_extsargument (at least one which works withPythonOperator).I do not encounter the same issue using the old
PythonOperatorsyntax.What you expected to happen
I expect that the behavior of the
@taskdecorator would be the same as thePythonOperatorclass, or at least have a workaround explained in the documentation such as other arguments I would need to provide.How to reproduce
Sample code below :
Which returns
INFO - query: sql/sample.sql.However, if I use a
PythonOperatorwith the old syntax it works :I get the entire templated file inside
kwargs["templates_dict"]["query"], not just its name.Operating System
AWS MWAA
Versions of Apache Airflow Providers
Not sure if relevant here since I only use Airflow packages in the example.
Deployment
MWAA
Deployment details
No response
Anything else
No response
Are you willing to submit PR?
Code of Conduct