This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-3-test by this push:
new 07a65a69e98 [v3-3-test] Add BaseDeadlineReference and
deadline_reference to the SDK public interface (#70706) (#71208)
07a65a69e98 is described below
commit 07a65a69e98df694f27cafb9e74cdb09afa95807
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Aug 14 23:00:07 2026 +0200
[v3-3-test] Add BaseDeadlineReference and deadline_reference to the SDK
public interface (#70706) (#71208)
(cherry picked from commit 7b0eae51e0a2d99bc580c29f9c7f0a124e400980)
Co-authored-by: D. Ferruzzi <[email protected]>
---
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 984b0cd7261..5961903d9fb 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 15b7fdae8aa..bfe39fb61d5 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