This is an automated email from the ASF dual-hosted git repository.
potiuk 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 ee5f3798e8d Emit GCSListObjectsOperator delimiter deprecation warning
after rendering (#70533)
ee5f3798e8d is described below
commit ee5f3798e8df366f11cb3571ba3f23b8438a92dc
Author: Yuseok Jo <[email protected]>
AuthorDate: Thu Jul 30 19:43:20 2026 +0900
Emit GCSListObjectsOperator delimiter deprecation warning after rendering
(#70533)
---
.../src/airflow/providers/google/cloud/operators/gcs.py | 13 ++++++++-----
.../google/tests/unit/google/cloud/operators/test_gcs.py | 4 +++-
scripts/ci/prek/validate_operators_init_exemptions.txt | 1 -
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git
a/providers/google/src/airflow/providers/google/cloud/operators/gcs.py
b/providers/google/src/airflow/providers/google/cloud/operators/gcs.py
index 056d16c6c23..b55709c309e 100644
--- a/providers/google/src/airflow/providers/google/cloud/operators/gcs.py
+++ b/providers/google/src/airflow/providers/google/cloud/operators/gcs.py
@@ -228,18 +228,21 @@ class GCSListObjectsOperator(GoogleCloudBaseOperator):
super().__init__(**kwargs)
self.bucket = bucket
self.prefix = prefix
- if delimiter:
+ self.delimiter = delimiter
+ self.gcp_conn_id = gcp_conn_id
+ self.impersonation_chain = impersonation_chain
+ self.match_glob = match_glob
+
+ def _warn_on_deprecated_template_fields(self) -> None:
+ if self.delimiter:
warnings.warn(
"Usage of 'delimiter' is deprecated, please use 'match_glob'
instead. Planned removal date: October 5, 2026.",
AirflowProviderDeprecationWarning,
stacklevel=2,
)
- self.delimiter = delimiter
- self.gcp_conn_id = gcp_conn_id
- self.impersonation_chain = impersonation_chain
- self.match_glob = match_glob
def execute(self, context: Context) -> list:
+ self._warn_on_deprecated_template_fields()
hook = GCSHook(
gcp_conn_id=self.gcp_conn_id,
impersonation_chain=self.impersonation_chain,
diff --git a/providers/google/tests/unit/google/cloud/operators/test_gcs.py
b/providers/google/tests/unit/google/cloud/operators/test_gcs.py
index f48aaddba75..664308cd291 100644
--- a/providers/google/tests/unit/google/cloud/operators/test_gcs.py
+++ b/providers/google/tests/unit/google/cloud/operators/test_gcs.py
@@ -25,6 +25,7 @@ from unittest import mock
import pytest
from google.cloud.exceptions import GoogleCloudError
+from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.providers.common.compat.openlineage.facet import (
Dataset,
LifecycleStateChange,
@@ -255,7 +256,8 @@ class TestGoogleCloudStorageListOperator:
operator = GCSListObjectsOperator(
task_id=TASK_ID, bucket=TEST_BUCKET, prefix=PREFIX,
delimiter=DELIMITER
)
- files = operator.execute(context=mock.MagicMock())
+ with pytest.warns(AirflowProviderDeprecationWarning, match="Usage of
'delimiter' is deprecated"):
+ files = operator.execute(context=mock.MagicMock())
mock_hook.return_value.list.assert_called_once_with(
bucket_name=TEST_BUCKET, prefix=PREFIX, delimiter=DELIMITER,
match_glob=None
)
diff --git a/scripts/ci/prek/validate_operators_init_exemptions.txt
b/scripts/ci/prek/validate_operators_init_exemptions.txt
index 4cab009b46b..345248323f5 100644
--- a/scripts/ci/prek/validate_operators_init_exemptions.txt
+++ b/scripts/ci/prek/validate_operators_init_exemptions.txt
@@ -18,7 +18,6 @@
providers/google/src/airflow/providers/google/cloud/operators/dataproc.py::Datap
providers/google/src/airflow/providers/google/cloud/operators/dataproc.py::DataprocSubmitJobOperator
providers/google/src/airflow/providers/google/cloud/operators/functions.py::CloudFunctionDeployFunctionOperator
providers/google/src/airflow/providers/google/cloud/operators/gcs.py::GCSFileTransformOperator
-providers/google/src/airflow/providers/google/cloud/operators/gcs.py::GCSListObjectsOperator
providers/google/src/airflow/providers/google/cloud/sensors/bigquery_dts.py::BigQueryDataTransferServiceTransferRunSensor
providers/google/src/airflow/providers/google/cloud/sensors/cloud_composer.py::CloudComposerExternalTaskSensor
providers/google/src/airflow/providers/google/cloud/transfers/azure_fileshare_to_gcs.py::AzureFileShareToGCSOperator