From 172829c0b7ba070f61aea015b8e48d47afbe5275 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Thu, 25 Dec 2025 20:30:24 -0500 Subject: [PATCH 1/3] Updated _DAG_HASH_ATTRS to use timetable instead of schedule --- task-sdk/src/airflow/sdk/definitions/dag.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/task-sdk/src/airflow/sdk/definitions/dag.py b/task-sdk/src/airflow/sdk/definitions/dag.py index 479958b99d783..61268f16700a3 100644 --- a/task-sdk/src/airflow/sdk/definitions/dag.py +++ b/task-sdk/src/airflow/sdk/definitions/dag.py @@ -110,9 +110,7 @@ "fileloc", "template_searchpath", "last_loaded", - "schedule", - # TODO: Task-SDK: we should be hashing on timetable now, not schedule! - # "timetable", + "timetable", } ) From cff736b3a95ae89f644ddded8066d96258c7a712 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Mon, 29 Dec 2025 19:16:08 -0500 Subject: [PATCH 2/3] added @attrs.define for simple timetable classes --- task-sdk/src/airflow/sdk/definitions/timetables/simple.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/task-sdk/src/airflow/sdk/definitions/timetables/simple.py b/task-sdk/src/airflow/sdk/definitions/timetables/simple.py index 3387cb3c386fd..b51b99fd76966 100644 --- a/task-sdk/src/airflow/sdk/definitions/timetables/simple.py +++ b/task-sdk/src/airflow/sdk/definitions/timetables/simple.py @@ -17,9 +17,10 @@ from __future__ import annotations +import attrs from airflow.sdk.bases.timetable import BaseTimetable - +@attrs.define class NullTimetable(BaseTimetable): """ Timetable that never schedules anything. @@ -29,7 +30,7 @@ class NullTimetable(BaseTimetable): can_be_scheduled = False - +@attrs.define class OnceTimetable(BaseTimetable): """ Timetable that schedules the execution once as soon as possible. @@ -37,7 +38,7 @@ class OnceTimetable(BaseTimetable): This corresponds to ``schedule="@once"``. """ - +@attrs.define class ContinuousTimetable(BaseTimetable): """ Timetable that schedules continually, while still respecting start_date and end_date. From 0ab5d601cf6757448097f876a9e7e9af1d7f97b7 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Mon, 29 Dec 2025 21:29:30 -0500 Subject: [PATCH 3/3] prek fix formatting issue --- task-sdk/src/airflow/sdk/definitions/timetables/simple.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/task-sdk/src/airflow/sdk/definitions/timetables/simple.py b/task-sdk/src/airflow/sdk/definitions/timetables/simple.py index b51b99fd76966..7e00dcf9a0900 100644 --- a/task-sdk/src/airflow/sdk/definitions/timetables/simple.py +++ b/task-sdk/src/airflow/sdk/definitions/timetables/simple.py @@ -18,8 +18,10 @@ from __future__ import annotations import attrs + from airflow.sdk.bases.timetable import BaseTimetable + @attrs.define class NullTimetable(BaseTimetable): """ @@ -30,6 +32,7 @@ class NullTimetable(BaseTimetable): can_be_scheduled = False + @attrs.define class OnceTimetable(BaseTimetable): """ @@ -38,6 +41,7 @@ class OnceTimetable(BaseTimetable): This corresponds to ``schedule="@once"``. """ + @attrs.define class ContinuousTimetable(BaseTimetable): """