This is an automated email from the ASF dual-hosted git repository. kaxilnaik pushed a commit to branch v3-1-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 9dad4a9598c3db16bc943520ecfb147e7ab7728a Author: Kaxil Naik <[email protected]> AuthorDate: Fri Sep 19 01:14:50 2025 +0100 Add __repr__ methods to serialized classes for better debugging (#55860) (cherry picked from commit ac76ceee536cc9d265ec240ef568d51120f7a326) --- airflow-core/src/airflow/models/mappedoperator.py | 3 +++ airflow-core/src/airflow/serialization/definitions/taskgroup.py | 6 ++++++ airflow-core/src/airflow/serialization/serialized_objects.py | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/airflow-core/src/airflow/models/mappedoperator.py b/airflow-core/src/airflow/models/mappedoperator.py index 33d77215500..b29877e9228 100644 --- a/airflow-core/src/airflow/models/mappedoperator.py +++ b/airflow-core/src/airflow/models/mappedoperator.py @@ -140,6 +140,9 @@ class MappedOperator(DAGNode): is_mapped: ClassVar[bool] = True + def __repr__(self) -> str: + return f"<SerializedMappedTask({self.task_type}): {self.task_id}>" + @property def node_id(self) -> str: return self.task_id diff --git a/airflow-core/src/airflow/serialization/definitions/taskgroup.py b/airflow-core/src/airflow/serialization/definitions/taskgroup.py index fef9dad303a..4df819c97ec 100644 --- a/airflow-core/src/airflow/serialization/definitions/taskgroup.py +++ b/airflow-core/src/airflow/serialization/definitions/taskgroup.py @@ -62,6 +62,9 @@ class SerializedTaskGroup(DAGNode): is_mapped: ClassVar[bool] = False + def __repr__(self) -> str: + return f"<SerializedTaskGroup: {self.group_id}>" + @staticmethod def _iter_child(child): """Iterate over the children of this TaskGroup.""" @@ -258,6 +261,9 @@ class SerializedMappedTaskGroup(SerializedTaskGroup): is_mapped: ClassVar[bool] = True + def __repr__(self) -> str: + return f"<SerializedMappedTaskGroup: {self.group_id}>" + @methodtools.lru_cache(maxsize=None) def get_parse_time_mapped_ti_count(self) -> int: """ diff --git a/airflow-core/src/airflow/serialization/serialized_objects.py b/airflow-core/src/airflow/serialization/serialized_objects.py index d7a4007e588..ce1ce22d9ac 100644 --- a/airflow-core/src/airflow/serialization/serialized_objects.py +++ b/airflow-core/src/airflow/serialization/serialized_objects.py @@ -1339,6 +1339,9 @@ class SerializedBaseOperator(DAGNode, BaseSerialization): getattr(self, c, None) == getattr(other, c, None) for c in BaseOperator._comps ) + def __repr__(self) -> str: + return f"<SerializedTask({self.task_type}): {self.task_id}>" + @property def node_id(self) -> str: return self.task_id @@ -2410,6 +2413,9 @@ class SerializedDAG(BaseSerialization): self.tags = set() self.template_searchpath = None + def __repr__(self) -> str: + return f"<SerializedDAG: {self.dag_id}>" + @staticmethod def __get_constructor_defaults(): param_to_attr = {
