From 882e77e8003f3b171d69a029cbfd33afeb76c472 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Mon, 29 Dec 2025 14:51:55 -0500 Subject: [PATCH 1/3] Added variable to fetch email on retry/failure values from conf --- airflow-core/tests/unit/serialization/dag_doc.md | 1 + task-sdk/src/airflow/sdk/bases/operator.py | 14 ++++++++------ .../sdk/definitions/_internal/abstractoperator.py | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 airflow-core/tests/unit/serialization/dag_doc.md diff --git a/airflow-core/tests/unit/serialization/dag_doc.md b/airflow-core/tests/unit/serialization/dag_doc.md new file mode 100644 index 0000000000000..da2a38a293a0d --- /dev/null +++ b/airflow-core/tests/unit/serialization/dag_doc.md @@ -0,0 +1 @@ +# MD doc file \ No newline at end of file diff --git a/task-sdk/src/airflow/sdk/bases/operator.py b/task-sdk/src/airflow/sdk/bases/operator.py index 7f6d6cf297a42..3650c5306e20e 100644 --- a/task-sdk/src/airflow/sdk/bases/operator.py +++ b/task-sdk/src/airflow/sdk/bases/operator.py @@ -50,6 +50,8 @@ DEFAULT_TRIGGER_RULE, DEFAULT_WAIT_FOR_PAST_DEPENDS_BEFORE_SKIPPING, DEFAULT_WEIGHT_RULE, + DEFAULT_EMAIL_ON_FAILURE, + DEFAULT_EMAIL_ON_RETRY, AbstractOperator, DependencyMixin, TaskStateChangeCallback, @@ -219,8 +221,8 @@ def partial(**kwargs): OPERATOR_DEFAULTS: dict[str, Any] = { "allow_nested_operators": True, "depends_on_past": False, - "email_on_failure": True, - "email_on_retry": True, + "email_on_failure": DEFAULT_EMAIL_ON_FAILURE, + "email_on_retry": DEFAULT_EMAIL_ON_RETRY, "execution_timeout": DEFAULT_TASK_EXECUTION_TIMEOUT, # "executor": DEFAULT_EXECUTOR, "executor_config": {}, @@ -826,8 +828,8 @@ def say_hello_world(**context): task_id: str owner: str = DEFAULT_OWNER email: str | Sequence[str] | None = None - email_on_retry: bool = True - email_on_failure: bool = True + email_on_retry: bool = DEFAULT_EMAIL_ON_RETRY + email_on_failure: bool = DEFAULT_EMAIL_ON_FAILURE retries: int | None = DEFAULT_RETRIES retry_delay: timedelta = DEFAULT_RETRY_DELAY retry_exponential_backoff: float = 0 @@ -984,8 +986,8 @@ def __init__( task_id: str, owner: str = DEFAULT_OWNER, email: str | Sequence[str] | None = None, - email_on_retry: bool = True, - email_on_failure: bool = True, + email_on_retry: bool = DEFAULT_EMAIL_ON_RETRY, + email_on_failure: bool = DEFAULT_EMAIL_ON_FAILURE, retries: int | None = DEFAULT_RETRIES, retry_delay: timedelta | float = DEFAULT_RETRY_DELAY, retry_exponential_backoff: float = 0, diff --git a/task-sdk/src/airflow/sdk/definitions/_internal/abstractoperator.py b/task-sdk/src/airflow/sdk/definitions/_internal/abstractoperator.py index b4503b4177b9c..6c99a72b22080 100644 --- a/task-sdk/src/airflow/sdk/definitions/_internal/abstractoperator.py +++ b/task-sdk/src/airflow/sdk/definitions/_internal/abstractoperator.py @@ -76,7 +76,8 @@ DEFAULT_TASK_EXECUTION_TIMEOUT: datetime.timedelta | None = conf.gettimedelta( "core", "default_task_execution_timeout" ) - +DEFAULT_EMAIL_ON_FAILURE: bool = conf.getboolean("email", "default_email_on_failure", fallback=True) +DEFAULT_EMAIL_ON_RETRY: bool = conf.getboolean("email", "default_email_on_retry", fallback=True) log = logging.getLogger(__name__) From 0ddfd5bb94af49ce4c577507b6fc511a37239632 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Mon, 29 Dec 2025 15:36:23 -0500 Subject: [PATCH 2/3] prek formatting --- task-sdk/src/airflow/sdk/bases/operator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/task-sdk/src/airflow/sdk/bases/operator.py b/task-sdk/src/airflow/sdk/bases/operator.py index 3650c5306e20e..e12e71995dc8e 100644 --- a/task-sdk/src/airflow/sdk/bases/operator.py +++ b/task-sdk/src/airflow/sdk/bases/operator.py @@ -38,6 +38,8 @@ from airflow.sdk import TriggerRule, timezone from airflow.sdk._shared.secrets_masker import redact from airflow.sdk.definitions._internal.abstractoperator import ( + DEFAULT_EMAIL_ON_FAILURE, + DEFAULT_EMAIL_ON_RETRY, DEFAULT_IGNORE_FIRST_DEPENDS_ON_PAST, DEFAULT_OWNER, DEFAULT_POOL_NAME, @@ -50,8 +52,6 @@ DEFAULT_TRIGGER_RULE, DEFAULT_WAIT_FOR_PAST_DEPENDS_BEFORE_SKIPPING, DEFAULT_WEIGHT_RULE, - DEFAULT_EMAIL_ON_FAILURE, - DEFAULT_EMAIL_ON_RETRY, AbstractOperator, DependencyMixin, TaskStateChangeCallback, From 275496c27c1df44b12b6f31d6a4667bd20c48274 Mon Sep 17 00:00:00 2001 From: justinpakzad Date: Mon, 29 Dec 2025 15:38:06 -0500 Subject: [PATCH 3/3] prek formatting --- airflow-core/tests/unit/serialization/dag_doc.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 airflow-core/tests/unit/serialization/dag_doc.md diff --git a/airflow-core/tests/unit/serialization/dag_doc.md b/airflow-core/tests/unit/serialization/dag_doc.md deleted file mode 100644 index da2a38a293a0d..0000000000000 --- a/airflow-core/tests/unit/serialization/dag_doc.md +++ /dev/null @@ -1 +0,0 @@ -# MD doc file \ No newline at end of file