You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "hussein-awala (via GitHub)" <gi...@apache.org> on 2023/07/12 20:39:43 UTC

[GitHub] [airflow] hussein-awala opened a new pull request, #32569: Fix a bug in the ShortCircuitOperator

hussein-awala opened a new pull request, #32569:
URL: https://github.com/apache/airflow/pull/32569

   <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
   
      http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
    -->
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of an existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   closes: #32553
   
   Currently when we the python callable in the short circuit operator returns an non empty list or dict (truthy object), we return it without skipping the downstream tasks. And when it returns a falsy object like an empty dict, we evaluate it as a False and we skip the downstream tasks, but we return nothing, which is similar to return `None`.
   
   This returned `None` raise an exception when we use the decorator with `multiple_outputs=True`, the only way to skip the downstream tasks is returning an empty dict, but the returned `None` brakes the post-processing method which push the returned Xcom. This PR returns the callable result as it is to fix this problem and to avoid any future problem.
   
   ---
   **^ Add meaningful description above**
   
   Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)** for more information.
   In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in a newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
   


-- 
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


[GitHub] [airflow] hussein-awala commented on a diff in pull request #32569: Fix a bug in the ShortCircuitOperator

Posted by "hussein-awala (via GitHub)" <gi...@apache.org>.
hussein-awala commented on code in PR #32569:
URL: https://github.com/apache/airflow/pull/32569#discussion_r1261778712


##########
tests/operators/test_python.py:
##########
@@ -617,7 +617,7 @@ def test_xcom_push(self):
 
         tis = dr.get_task_instances()
         assert tis[0].xcom_pull(task_ids=short_op_push_xcom.task_id, key="return_value") == "signature"
-        assert tis[0].xcom_pull(task_ids=short_op_no_push_xcom.task_id, key="return_value") is None
+        assert tis[0].xcom_pull(task_ids=short_op_no_push_xcom.task_id, key="return_value") is False

Review Comment:
   Is this considered a breaking change? If yes, how do you think we can handle it?



-- 
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


[GitHub] [airflow] potiuk merged pull request #32569: Fix returned value when ShortCircuitOperator condition is falsy

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #32569:
URL: https://github.com/apache/airflow/pull/32569


-- 
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


[GitHub] [airflow] uranusjr commented on pull request #32569: Fix a bug in the ShortCircuitOperator

Posted by "uranusjr (via GitHub)" <gi...@apache.org>.
uranusjr commented on PR #32569:
URL: https://github.com/apache/airflow/pull/32569#issuecomment-1633686588

   I’m not saying this change is wrong, but maybe `multiple_outputs=True` should know how to handle `None`. Also this could use a better title since it appears in the version changelog.


-- 
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


[GitHub] [airflow] potiuk commented on pull request #32569: Fix a bug in the ShortCircuitOperator

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #32569:
URL: https://github.com/apache/airflow/pull/32569#issuecomment-1636696196

   > I’m not saying this change is wrong, but maybe `multiple_outputs=True` should know how to handle `None`. Also this could use a better title since it appears in the version changelog.
   
   Agree with the title, but maybe the "multiple-outputs"= None should be a separate thing- this one seems to to fix the problem with very small fix to make it more likely to get into maybe even 2.6.4


-- 
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


[GitHub] [airflow] potiuk commented on pull request #32569: Fix returned value when ShortCircuitOperator condition is falsy

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #32569:
URL: https://github.com/apache/airflow/pull/32569#issuecomment-1636697371

   Added issue for it https://github.com/apache/airflow/issues/32622 


-- 
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