This is an automated email from the ASF dual-hosted git repository.

ferruzzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 7b0eae51e0a Add BaseDeadlineReference and deadline_reference to the 
SDK public interface (#70706)
7b0eae51e0a is described below

commit 7b0eae51e0a2d99bc580c29f9c7f0a124e400980
Author: D. Ferruzzi <[email protected]>
AuthorDate: Wed Aug 5 16:14:31 2026 -0700

    Add BaseDeadlineReference and deadline_reference to the SDK public 
interface (#70706)
---
 airflow-core/docs/howto/deadline-alerts.rst      |  3 +--
 task-sdk/docs/api.rst                            |  4 ++++
 task-sdk/src/airflow/sdk/__init__.py             | 11 ++++++++++-
 task-sdk/src/airflow/sdk/definitions/deadline.py |  6 +++---
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/airflow-core/docs/howto/deadline-alerts.rst 
b/airflow-core/docs/howto/deadline-alerts.rst
index ac07047f345..7eb9ec76cf2 100644
--- a/airflow-core/docs/howto/deadline-alerts.rst
+++ b/airflow-core/docs/howto/deadline-alerts.rst
@@ -431,8 +431,7 @@ choose a different time.
 
     from sqlalchemy.orm import Session
 
-    from airflow.sdk import DeadlineReference
-    from airflow.sdk.definitions.deadline import BaseDeadlineReference, 
deadline_reference
+    from airflow.sdk import BaseDeadlineReference, DeadlineReference, 
deadline_reference
     from airflow.sdk.timezone import datetime
 
 
diff --git a/task-sdk/docs/api.rst b/task-sdk/docs/api.rst
index 51aa275b90b..2c9bbe3f4db 100644
--- a/task-sdk/docs/api.rst
+++ b/task-sdk/docs/api.rst
@@ -116,6 +116,10 @@ Deadline Alerts
 
 .. autoclass:: airflow.sdk.DeadlineReference
 
+.. autoclass:: airflow.sdk.BaseDeadlineReference
+
+.. autofunction:: airflow.sdk.deadline_reference
+
 Connections & Variables
 -----------------------
 .. autoapiclass:: airflow.sdk.Connection
diff --git a/task-sdk/src/airflow/sdk/__init__.py 
b/task-sdk/src/airflow/sdk/__init__.py
index 807019eade8..6cff747fccc 100644
--- a/task-sdk/src/airflow/sdk/__init__.py
+++ b/task-sdk/src/airflow/sdk/__init__.py
@@ -31,6 +31,7 @@ __all__ = [
     "AsyncCallback",
     "BaseAsyncOperator",
     "BaseBranchOperator",
+    "BaseDeadlineReference",
     "BaseHook",
     "BaseNotifier",
     "BaseOperator",
@@ -105,6 +106,7 @@ __all__ = [
     "conf",
     "cross_downstream",
     "dag",
+    "deadline_reference",
     "get_current_context",
     "get_parsing_context",
     "literal",
@@ -151,7 +153,12 @@ if TYPE_CHECKING:
     from airflow.sdk.definitions.connection import Connection
     from airflow.sdk.definitions.context import Context, get_current_context, 
get_parsing_context
     from airflow.sdk.definitions.dag import DAG, dag
-    from airflow.sdk.definitions.deadline import DeadlineAlert, 
DeadlineReference
+    from airflow.sdk.definitions.deadline import (
+        BaseDeadlineReference,
+        DeadlineAlert,
+        DeadlineReference,
+        deadline_reference,
+    )
     from airflow.sdk.definitions.decorators import result, setup, task, 
teardown
     from airflow.sdk.definitions.decorators.task_group import task_group
     from airflow.sdk.definitions.edges import EdgeModifier, Label
@@ -234,6 +241,7 @@ __lazy_imports: dict[str, str] = {
     "AsyncCallback": ".definitions.callback",
     "BaseAsyncOperator": ".bases.operator",
     "BaseBranchOperator": ".bases.branch",
+    "BaseDeadlineReference": ".definitions.deadline",
     "BaseHook": ".bases.hook",
     "BaseNotifier": ".bases.notifier",
     "BaseOperator": ".bases.operator",
@@ -308,6 +316,7 @@ __lazy_imports: dict[str, str] = {
     "conf": ".configuration",
     "cross_downstream": ".bases.operator",
     "dag": ".definitions.dag",
+    "deadline_reference": ".definitions.deadline",
     "NEVER_EXPIRE": ".execution_time.context",
     "get_current_context": ".definitions.context",
     "get_parsing_context": ".definitions.context",
diff --git a/task-sdk/src/airflow/sdk/definitions/deadline.py 
b/task-sdk/src/airflow/sdk/definitions/deadline.py
index ab01a9213aa..6b895c2164e 100644
--- a/task-sdk/src/airflow/sdk/definitions/deadline.py
+++ b/task-sdk/src/airflow/sdk/definitions/deadline.py
@@ -42,11 +42,11 @@ class BaseDeadlineReference(ABC):
     """
     Base class for all Deadline Reference implementations.
 
-    This is a lightweight SDK class for DAG authoring. It only handles 
serialization.
-    The actual evaluation logic (_evaluate_with) is in Core's 
SerializedReferenceModels.
+    This is a lightweight SDK class for Dag authoring. It only handles 
serialization.
+    The actual evaluation logic (``_evaluate_with``) is in Core's 
``SerializedReferenceModels``.
 
     For custom deadline references, users should inherit from this class and 
implement
-    _evaluate_with() with deferred Core imports (imports inside the method 
body).
+    ``_evaluate_with()`` with deferred Core imports (imports inside the method 
body).
     """
 
     @property

Reply via email to