[ https://issues.apache.org/jira/browse/AIRFLOW-6170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bjorn Olsen updated AIRFLOW-6170: --------------------------------- Issue Type: Bug (was: Improvement) > BranchPythonOperator does not do XCom push of returned value > ------------------------------------------------------------ > > Key: AIRFLOW-6170 > URL: https://issues.apache.org/jira/browse/AIRFLOW-6170 > Project: Apache Airflow > Issue Type: Bug > Components: operators > Affects Versions: 1.10.6 > Reporter: Bjorn Olsen > Assignee: Bjorn Olsen > Priority: Minor > > BranchPythonOperator subclasses PythonOperator and this means that after it > has selected a branch we get a message like this: > [2019-12-04 08:39:59,960] \{python_operator.py:114} INFO - Done. Returned > value was: chosen_task > > This returned value is from the execute() method. A user would expect the > returned value from this to be pushed to an XCOM but this does not happen due > to no return value from the BranchPythonOperator's execute method. > > > {code:java} > def execute(self, context: Dict): > branch = super().execute(context) > self.skip_all_except(context['ti'], branch) > {code} > > If we do an XCOM push of the result then we can use the decision made by > BranchPythonOperator in downstream tasks. > Eg consider this dependency chain: > get >> branch >> [ create, update ]>> join >> execute > The 'execute' task might need to know whether the 'branch' decided to create > a new thing to run, or whether to use the existing one from the 'get'. > Without an XCOM push from the branch return value, it is difficult to pick up > the correct value later on. -- This message was sent by Atlassian Jira (v8.3.4#803005)