Skip to content

Commit 0b47a1b

Browse files
committed
fixup! fixup! Optimize subclasses of DummyOperator for Scheduling
1 parent 67b5daf commit 0b47a1b

File tree

4 files changed

+8
-10
lines changed

4 files changed

+8
-10
lines changed

airflow/models/baseoperator.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,11 @@ def is_smart_sensor_compatible(self):
13711371
"""Return if this operator can use smart service. Default False."""
13721372
return False
13731373

1374+
@property
1375+
def inherits_from_dummy_operator(self):
1376+
"""Used to determine if an Operator is inherited from DummyOperator"""
1377+
return getattr(self, '_is_dummy', False)
1378+
13741379

13751380
def chain(*tasks: Union[BaseOperator, Sequence[BaseOperator]]):
13761381
r"""

airflow/models/dagrun.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ def schedule_tis(self, schedulable_tis: Iterable[TI], session: Session = None) -
724724
ti
725725
for ti in schedulable_tis
726726
if (
727-
(ti.task.task_type == "DummyOperator" or getattr(ti.task, "_is_dummy", False))
727+
ti.task.inherits_from_dummy_operator
728728
and not ti.task.on_execute_callback
729729
and not ti.task.on_success_callback
730730
)

airflow/operators/dummy_operator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class DummyOperator(BaseOperator):
2929
"""
3030

3131
ui_color = '#e8f7e4'
32+
inherits_from_dummy_operator = True
3233

3334
@apply_defaults
3435
def __init__(self, **kwargs) -> None:

airflow/serialization/serialized_objects.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from airflow.models.baseoperator import BaseOperator, BaseOperatorLink
3232
from airflow.models.connection import Connection
3333
from airflow.models.dag import DAG
34-
from airflow.operators.dummy_operator import DummyOperator
3534
from airflow.serialization.enums import DagAttributeTypes as DAT, Encoding
3635
from airflow.serialization.helpers import serialize_template_field
3736
from airflow.serialization.json_schema import Validator, load_dag_schema
@@ -353,7 +352,7 @@ def serialize_operator(cls, op: BaseOperator) -> dict:
353352
serialize_op['_task_module'] = op.__class__.__module__
354353

355354
# Used to determine if an Operator is inherited from DummyOperator
356-
serialize_op['_is_dummy'] = cls._is_inherited_from_dummy_operator(op)
355+
serialize_op['_is_dummy'] = op.inherits_from_dummy_operator
357356

358357
if op.operator_extra_links:
359358
serialize_op['_operator_extra_links'] = cls._serialize_operator_extra_links(
@@ -540,13 +539,6 @@ def _serialize_operator_extra_links(cls, operator_extra_links: Iterable[BaseOper
540539

541540
return serialize_operator_extra_links
542541

543-
@classmethod
544-
def _is_inherited_from_dummy_operator(cls, op: BaseOperator) -> bool:
545-
"""Used to determine if an Operator is inherited from DummyOperator"""
546-
if op.task_type == "DummyOperator" or isinstance(op, DummyOperator):
547-
return True
548-
return False
549-
550542

551543
class SerializedDAG(DAG, BaseSerialization):
552544
"""

0 commit comments

Comments
 (0)