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