uranusjr commented on code in PR #28097:
URL: https://github.com/apache/airflow/pull/28097#discussion_r1062158484
##########
airflow/sensors/external_task.py:
##########
@@ -140,21 +140,30 @@ def __init__(
f"`{self.allowed_states}` and failed states
`{self.failed_states}`"
)
- if external_task_id is not None and external_task_ids is not None:
+ if external_task_id and external_task_ids:
raise ValueError(
"Only one of `external_task_id` or `external_task_ids` may "
- "be provided to ExternalTaskSensor; not both."
+ "be provided to ExternalTaskSensor; "
+ "Use external_task_id or external_task_ids or
external_task_group_id."
)
- if external_task_id is not None:
- external_task_ids = [external_task_id]
+ if external_task_group_id and external_task_id:
+ raise ValueError(
+ "Only one of `external_task_group_id` or `external_task_id`
may "
+ "be provided to ExternalTaskSensor; "
+ "Use external_task_id or external_task_ids or
external_task_group_id."
+ )
if external_task_group_id and external_task_ids:
raise ValueError(
- "Values for `external_task_group_id` and `external_task_id` or
`external_task_ids` "
- "can't be set at the same time"
+ "Only one of `external_task_group_id` or `external_task_ids`
may "
+ "be provided to ExternalTaskSensor; "
+ "Use external_task_id or external_task_ids or
external_task_group_id."
)
Review Comment:
There are some weird edge cases to consider when you rely on truthiness. For
example, `external_task_id=""` is an invalid input that would now fail
differently, and arguably passing it through the sensor (and never actually
trigger) could be a better behaviour. And `external_task_ids=[]` is arguably a
valid-ish input that could be useful for dynamically generated DAGs.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]