You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2022/04/28 18:21:16 UTC

[GitHub] [airflow] tirkarthi commented on issue #23333: airflow should show where it's looking for templated file when jinja raises the exception jinja2.exceptions.TemplateNotFound:

tirkarthi commented on issue #23333:
URL: https://github.com/apache/airflow/issues/23333#issuecomment-1112524103

   jinja doesn't include searchpath in the error message. The exception probably needs to be caught at Airflow side to reraise with searchpath appended.
   
   ```diff
   diff --git a/airflow/models/abstractoperator.py b/airflow/models/abstractoperator.py
   index 2c53a8b75..e70b37001 100644
   --- a/airflow/models/abstractoperator.py
   +++ b/airflow/models/abstractoperator.py
   @@ -382,7 +382,13 @@ class AbstractOperator(LoggingMixin, DAGNode):
    
            if isinstance(value, str):
                if any(value.endswith(ext) for ext in self.template_ext):  # A filepath.
   -                template = jinja_env.get_template(value)
   +                from jinja2.exceptions import TemplateNotFound
   +
   +                try:
   +                    template = jinja_env.get_template(value)
   +                except TemplateNotFound as e:
   +                    message = f"{value} not found in search path {jinja_env.loader.searchpath}"
   +                    raise TemplateNotFound(message)
                else:
                    template = jinja_env.from_string(value)
                dag = self.get_dag()
   ```
   
   ```
   jinja2.exceptions.TemplateNotFound: /tmp/a/python_template_exts.txt not found in search path ['/opt/airflow/tests/operators', '/']
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org