You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Paul Rhodes (Jira)" <ji...@apache.org> on 2020/01/07 21:32:00 UTC

[jira] [Commented] (AIRFLOW-915) Allow task context to be modified by pre_execute hook

    [ https://issues.apache.org/jira/browse/AIRFLOW-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010107#comment-17010107 ] 

Paul Rhodes commented on AIRFLOW-915:
-------------------------------------

This is no longer required since the it can be achieved by overriding the render_template_fields method in the subclass, as the example below:
{code:java}
    def render_template_fields(self, context, jinja_env=None):
        super().render_template_fields(context, jinja_env)
        context['params']['dynamic_param'] = myfunction(context['execution_date'])
 {code}

> Allow task context to be modified by pre_execute hook
> -----------------------------------------------------
>
>                 Key: AIRFLOW-915
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-915
>             Project: Apache Airflow
>          Issue Type: Improvement
>          Components: operators
>    Affects Versions: 1.8.0
>            Reporter: Jeremiah Lowin
>            Priority: Minor
>
> Currently, Operators do two things that prevent the pre_execute hook from modifying the jinja context:
> 1. the Operator templates are rendered immediately BEFORE calling pre_execute
> 2. even though a context was already generated for the operator, the context is regenerated for template rendering, meaning that modifications to the operator context wouldn't matter anyway.
> The proper course of events should be:
> 1. generate operator context
> 2. pass context to pre_execute where it could (potentially) be modified
> 3. use that context to render operator templates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)