This is an automated email from the ASF dual-hosted git repository.
onikolas 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 d2638d7d1f4 Additional usages of timezone in AWS Provider (#53986)
d2638d7d1f4 is described below
commit d2638d7d1f4712f69e2460df832288347d258133
Author: Niko Oliveira <[email protected]>
AuthorDate: Thu Jul 31 11:18:59 2025 -0700
Additional usages of timezone in AWS Provider (#53986)
---
.../amazon/aws/executors/utils/exponential_backoff_retry.py | 5 ++++-
.../amazon/src/airflow/providers/amazon/aws/hooks/sagemaker.py | 6 +++++-
.../unit/amazon/aws/executors/aws_lambda/test_lambda_executor.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/hooks/test_appflow.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/operators/test_appflow.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/operators/test_athena.py | 9 ++++++---
.../amazon/tests/unit/amazon/aws/operators/test_base_aws.py | 6 +++++-
.../tests/unit/amazon/aws/operators/test_cloud_formation.py | 6 +++++-
.../amazon/tests/unit/amazon/aws/operators/test_datasync.py | 9 ++++++---
providers/amazon/tests/unit/amazon/aws/operators/test_dms.py | 6 +++++-
.../amazon/tests/unit/amazon/aws/operators/test_emr_add_steps.py | 6 +++++-
.../tests/unit/amazon/aws/operators/test_emr_create_job_flow.py | 6 +++++-
.../tests/unit/amazon/aws/operators/test_emr_modify_cluster.py | 7 +++++--
providers/amazon/tests/unit/amazon/aws/operators/test_rds.py | 6 +++++-
.../tests/unit/amazon/aws/operators/test_sagemaker_base.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/sensors/test_ecs.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/sensors/test_rds.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/sensors/test_s3.py | 6 +++++-
providers/amazon/tests/unit/amazon/aws/transfers/test_base.py | 6 +++++-
.../tests/unit/amazon/aws/transfers/test_dynamodb_to_s3.py | 6 +++++-
.../amazon/tests/unit/amazon/aws/transfers/test_mongo_to_s3.py | 6 +++++-
22 files changed, 111 insertions(+), 27 deletions(-)
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py
b/providers/amazon/src/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py
index 1255f56f043..16a309ab448 100644
---
a/providers/amazon/src/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py
+++
b/providers/amazon/src/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py
@@ -20,7 +20,10 @@ import logging
from collections.abc import Callable
from datetime import datetime, timedelta
-from airflow.utils import timezone
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
log = logging.getLogger(__name__)
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker.py
b/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker.py
index fad70bc4002..05c37763604 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker.py
@@ -36,7 +36,11 @@ from airflow.providers.amazon.aws.hooks.base_aws import
AwsBaseHook
from airflow.providers.amazon.aws.hooks.logs import AwsLogsHook
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
from airflow.providers.amazon.aws.utils.tags import format_tags
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
class LogState:
diff --git
a/providers/amazon/tests/unit/amazon/aws/executors/aws_lambda/test_lambda_executor.py
b/providers/amazon/tests/unit/amazon/aws/executors/aws_lambda/test_lambda_executor.py
index a2def0b86a8..de012562522 100644
---
a/providers/amazon/tests/unit/amazon/aws/executors/aws_lambda/test_lambda_executor.py
+++
b/providers/amazon/tests/unit/amazon/aws/executors/aws_lambda/test_lambda_executor.py
@@ -31,7 +31,11 @@ from airflow.models.taskinstancekey import TaskInstanceKey
from airflow.providers.amazon.aws.executors.aws_lambda import lambda_executor
from airflow.providers.amazon.aws.executors.aws_lambda.lambda_executor import
AwsLambdaExecutor
from airflow.providers.amazon.aws.executors.aws_lambda.utils import
CONFIG_GROUP_NAME, AllLambdaConfigKeys
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import TaskInstanceState
from airflow.version import version as airflow_version_str
diff --git a/providers/amazon/tests/unit/amazon/aws/hooks/test_appflow.py
b/providers/amazon/tests/unit/amazon/aws/hooks/test_appflow.py
index 71949ae4b20..b8ba2d927cd 100644
--- a/providers/amazon/tests/unit/amazon/aws/hooks/test_appflow.py
+++ b/providers/amazon/tests/unit/amazon/aws/hooks/test_appflow.py
@@ -24,7 +24,11 @@ from unittest.mock import ANY
import pytest
from airflow.providers.amazon.aws.hooks.appflow import AppflowHook
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
FLOW_NAME = "flow0"
EXECUTION_ID = "ex_id"
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_appflow.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_appflow.py
index 49c49e8c514..1f2b188997f 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_appflow.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_appflow.py
@@ -31,7 +31,11 @@ from airflow.providers.amazon.aws.operators.appflow import (
AppflowRunFullOperator,
AppflowRunOperator,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
CONN_ID = "aws_default"
DAG_ID = "dag_id"
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_athena.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_athena.py
index 8a343a0be68..6bee0fd332e 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_athena.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_athena.py
@@ -38,16 +38,19 @@ from airflow.providers.common.compat.openlineage.facet
import (
SymlinksDatasetFacet,
)
from airflow.providers.openlineage.extractors import OperatorLineage
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
-from airflow.utils.timezone import datetime
from airflow.utils.types import DagRunType
from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
TEST_DAG_ID = "unit_tests"
-DEFAULT_DATE = datetime(2018, 1, 1)
+DEFAULT_DATE = timezone.datetime(2018, 1, 1)
ATHENA_QUERY_ID = "eac29bf8-daa1-4ffc-b19a-0db31dc3b784"
MOCK_DATA = {
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py
index 53f033c4d6c..3cddb55eaa0 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_base_aws.py
@@ -23,7 +23,11 @@ import pytest
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
from airflow.providers.amazon.version_compat import BaseHook
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
TEST_CONN = "aws_test_conn"
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_cloud_formation.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_cloud_formation.py
index bbcd41f2176..5643eb9c48b 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_cloud_formation.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_cloud_formation.py
@@ -27,7 +27,11 @@ from airflow.providers.amazon.aws.operators.cloud_formation
import (
CloudFormationCreateStackOperator,
CloudFormationDeleteStackOperator,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_datasync.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_datasync.py
index 50101edad03..9bc8f69ffab 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_datasync.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_datasync.py
@@ -28,16 +28,19 @@ from airflow.models.serialized_dag import SerializedDagModel
from airflow.providers.amazon.aws.hooks.datasync import DataSyncHook
from airflow.providers.amazon.aws.links.datasync import DataSyncTaskLink
from airflow.providers.amazon.aws.operators.datasync import DataSyncOperator
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
-from airflow.utils.timezone import datetime
from airflow.utils.types import DagRunType
from tests_common.test_utils.version_compat import AIRFLOW_V_3_0_PLUS
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
TEST_DAG_ID = "unit_tests"
-DEFAULT_DATE = datetime(2018, 1, 1)
+DEFAULT_DATE = timezone.datetime(2018, 1, 1)
SOURCE_HOST_NAME = "airflow.host"
SOURCE_SUBDIR = "airflow_subdir"
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_dms.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_dms.py
index 3418019ee77..5cf3a8d707c 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_dms.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_dms.py
@@ -45,7 +45,11 @@ from airflow.providers.amazon.aws.triggers.dms import (
DmsReplicationDeprovisionedTrigger,
DmsReplicationTerminalStatusTrigger,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_add_steps.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_add_steps.py
index 0cfa38014d1..59a88abd677 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_add_steps.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_add_steps.py
@@ -30,7 +30,11 @@ from airflow.models import DAG, DagRun, TaskInstance
from airflow.models.serialized_dag import SerializedDagModel
from airflow.providers.amazon.aws.operators.emr import EmrAddStepsOperator
from airflow.providers.amazon.aws.triggers.emr import EmrAddStepsTrigger
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_create_job_flow.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_create_job_flow.py
index 686f40c1037..68c6462d95d 100644
---
a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_create_job_flow.py
+++
b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_create_job_flow.py
@@ -32,7 +32,11 @@ from airflow.models.serialized_dag import SerializedDagModel
from airflow.providers.amazon.aws.operators.emr import EmrCreateJobFlowOperator
from airflow.providers.amazon.aws.triggers.emr import EmrCreateJobFlowTrigger
from airflow.providers.amazon.aws.utils.waiter import
WAITER_POLICY_NAME_MAPPING, WaitPolicy
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_modify_cluster.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_modify_cluster.py
index e9d7ccb50c3..7b8b83cd7f1 100644
---
a/providers/amazon/tests/unit/amazon/aws/operators/test_emr_modify_cluster.py
+++
b/providers/amazon/tests/unit/amazon/aws/operators/test_emr_modify_cluster.py
@@ -1,4 +1,3 @@
-#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -24,7 +23,11 @@ import pytest
from airflow.exceptions import AirflowException
from airflow.models.dag import DAG
from airflow.providers.amazon.aws.operators.emr import EmrModifyClusterOperator
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
diff --git a/providers/amazon/tests/unit/amazon/aws/operators/test_rds.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_rds.py
index 565780db09a..b807799c8f8 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_rds.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_rds.py
@@ -43,7 +43,11 @@ from airflow.providers.amazon.aws.operators.rds import (
RdsStopDbOperator,
)
from airflow.providers.amazon.aws.triggers.rds import RdsDbAvailableTrigger,
RdsDbStoppedTrigger
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_sagemaker_base.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_sagemaker_base.py
index 9c9515d4f88..dd922fba2ac 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_sagemaker_base.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_sagemaker_base.py
@@ -31,7 +31,11 @@ from airflow.providers.amazon.aws.operators.sagemaker import
(
SageMakerBaseOperator,
SageMakerCreateExperimentOperator,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git a/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py
b/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py
index 9c6b66537b0..128e5981e94 100644
--- a/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py
+++ b/providers/amazon/tests/unit/amazon/aws/sensors/test_base_aws.py
@@ -23,7 +23,11 @@ import pytest
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
from airflow.providers.amazon.aws.sensors.base_aws import AwsBaseSensor
from airflow.providers.amazon.version_compat import BaseHook
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
TEST_CONN = "aws_test_conn"
diff --git a/providers/amazon/tests/unit/amazon/aws/sensors/test_ecs.py
b/providers/amazon/tests/unit/amazon/aws/sensors/test_ecs.py
index 9a5e9313b66..282d37f3f7d 100644
--- a/providers/amazon/tests/unit/amazon/aws/sensors/test_ecs.py
+++ b/providers/amazon/tests/unit/amazon/aws/sensors/test_ecs.py
@@ -35,7 +35,11 @@ from airflow.providers.amazon.aws.sensors.ecs import (
EcsTaskStates,
EcsTaskStateSensor,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.types import NOTSET
_Operator = TypeVar("_Operator")
diff --git a/providers/amazon/tests/unit/amazon/aws/sensors/test_rds.py
b/providers/amazon/tests/unit/amazon/aws/sensors/test_rds.py
index 3bdd8f673bf..2768c04efed 100644
--- a/providers/amazon/tests/unit/amazon/aws/sensors/test_rds.py
+++ b/providers/amazon/tests/unit/amazon/aws/sensors/test_rds.py
@@ -31,7 +31,11 @@ from airflow.providers.amazon.aws.sensors.rds import (
RdsSnapshotExistenceSensor,
)
from airflow.providers.amazon.aws.utils.rds import RdsDbType
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from unit.amazon.aws.utils.test_template_fields import validate_template_fields
diff --git a/providers/amazon/tests/unit/amazon/aws/sensors/test_s3.py
b/providers/amazon/tests/unit/amazon/aws/sensors/test_s3.py
index aecaf0b91a5..08d7b0941f4 100644
--- a/providers/amazon/tests/unit/amazon/aws/sensors/test_s3.py
+++ b/providers/amazon/tests/unit/amazon/aws/sensors/test_s3.py
@@ -30,7 +30,11 @@ from airflow.models.serialized_dag import SerializedDagModel
from airflow.models.variable import Variable
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
from airflow.providers.amazon.aws.sensors.s3 import S3KeySensor,
S3KeysUnchangedSensor
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git a/providers/amazon/tests/unit/amazon/aws/transfers/test_base.py
b/providers/amazon/tests/unit/amazon/aws/transfers/test_base.py
index eb03cace7ea..ba3690182ec 100644
--- a/providers/amazon/tests/unit/amazon/aws/transfers/test_base.py
+++ b/providers/amazon/tests/unit/amazon/aws/transfers/test_base.py
@@ -23,7 +23,11 @@ from airflow import DAG
from airflow.models import DagRun, TaskInstance
from airflow.models.serialized_dag import SerializedDagModel
from airflow.providers.amazon.aws.transfers.base import AwsToAwsBaseOperator
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git
a/providers/amazon/tests/unit/amazon/aws/transfers/test_dynamodb_to_s3.py
b/providers/amazon/tests/unit/amazon/aws/transfers/test_dynamodb_to_s3.py
index 34519383b6c..88a17294800 100644
--- a/providers/amazon/tests/unit/amazon/aws/transfers/test_dynamodb_to_s3.py
+++ b/providers/amazon/tests/unit/amazon/aws/transfers/test_dynamodb_to_s3.py
@@ -31,7 +31,11 @@ from airflow.providers.amazon.aws.transfers.dynamodb_to_s3
import (
DynamoDBToS3Operator,
JSONEncoder,
)
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType
diff --git
a/providers/amazon/tests/unit/amazon/aws/transfers/test_mongo_to_s3.py
b/providers/amazon/tests/unit/amazon/aws/transfers/test_mongo_to_s3.py
index 5401e557be7..7c590cb7306 100644
--- a/providers/amazon/tests/unit/amazon/aws/transfers/test_mongo_to_s3.py
+++ b/providers/amazon/tests/unit/amazon/aws/transfers/test_mongo_to_s3.py
@@ -24,7 +24,11 @@ import pytest
from airflow.models import DAG, DagRun, TaskInstance
from airflow.models.serialized_dag import SerializedDagModel
from airflow.providers.amazon.aws.transfers.mongo_to_s3 import
MongoToS3Operator
-from airflow.utils import timezone
+
+try:
+ from airflow.sdk import timezone
+except ImportError:
+ from airflow.utils import timezone # type: ignore[attr-defined,no-redef]
from airflow.utils.state import DagRunState
from airflow.utils.types import DagRunType