Skip to content

Commit 43915a9

Browse files
committed
Fix stacklevel in warnings.warn into the providers
1 parent 13b0930 commit 43915a9

31 files changed

Lines changed: 147 additions & 49 deletions

File tree

airflow/providers/amazon/aws/operators/emr.py

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,9 @@ def __init__(
716716
warnings.warn(
717717
"The parameter waiter_countdown has been deprecated to standardize "
718718
"naming conventions. Please use waiter_max_attempts instead. In the "
719-
"future this will default to None and defer to the waiter's default value."
719+
"future this will default to None and defer to the waiter's default value.",
720+
AirflowProviderDeprecationWarning,
721+
stacklevel=2,
720722
)
721723
# waiter_countdown defaults to never timing out, which is not supported
722724
# by boto waiters, so we will set it here to "a very long time" for now.
@@ -725,7 +727,9 @@ def __init__(
725727
warnings.warn(
726728
"The parameter waiter_check_interval_seconds has been deprecated to "
727729
"standardize naming conventions. Please use waiter_delay instead. In the "
728-
"future this will default to None and defer to the waiter's default value."
730+
"future this will default to None and defer to the waiter's default value.",
731+
AirflowProviderDeprecationWarning,
732+
stacklevel=2,
729733
)
730734
waiter_delay = waiter_check_interval_seconds
731735
super().__init__(**kwargs)
@@ -1024,7 +1028,9 @@ def __init__(
10241028
warnings.warn(
10251029
"The parameter waiter_check_interval_seconds has been deprecated to standardize "
10261030
"naming conventions. Please use waiter_delay instead. In the "
1027-
"future this will default to None and defer to the waiter's default value."
1031+
"future this will default to None and defer to the waiter's default value.",
1032+
AirflowProviderDeprecationWarning,
1033+
stacklevel=2,
10281034
)
10291035
if waiter_countdown is NOTSET:
10301036
waiter_max_attempts = 25 if waiter_max_attempts is NOTSET else waiter_max_attempts
@@ -1036,7 +1042,9 @@ def __init__(
10361042
warnings.warn(
10371043
"The parameter waiter_countdown has been deprecated to standardize "
10381044
"naming conventions. Please use waiter_max_attempts instead. In the "
1039-
"future this will default to None and defer to the waiter's default value."
1045+
"future this will default to None and defer to the waiter's default value.",
1046+
AirflowProviderDeprecationWarning,
1047+
stacklevel=2,
10401048
)
10411049
self.aws_conn_id = aws_conn_id
10421050
self.release_label = release_label
@@ -1205,7 +1213,9 @@ def __init__(
12051213
warnings.warn(
12061214
"The parameter waiter_check_interval_seconds has been deprecated to standardize "
12071215
"naming conventions. Please use waiter_delay instead. In the "
1208-
"future this will default to None and defer to the waiter's default value."
1216+
"future this will default to None and defer to the waiter's default value.",
1217+
AirflowProviderDeprecationWarning,
1218+
stacklevel=2,
12091219
)
12101220
if waiter_countdown is NOTSET:
12111221
waiter_max_attempts = 25 if waiter_max_attempts is NOTSET else waiter_max_attempts
@@ -1217,7 +1227,9 @@ def __init__(
12171227
warnings.warn(
12181228
"The parameter waiter_countdown has been deprecated to standardize "
12191229
"naming conventions. Please use waiter_max_attempts instead. In the "
1220-
"future this will default to None and defer to the waiter's default value."
1230+
"future this will default to None and defer to the waiter's default value.",
1231+
AirflowProviderDeprecationWarning,
1232+
stacklevel=2,
12211233
)
12221234
self.aws_conn_id = aws_conn_id
12231235
self.application_id = application_id
@@ -1408,7 +1420,9 @@ def __init__(
14081420
warnings.warn(
14091421
"The parameter waiter_check_interval_seconds has been deprecated to standardize "
14101422
"naming conventions. Please use waiter_delay instead. In the "
1411-
"future this will default to None and defer to the waiter's default value."
1423+
"future this will default to None and defer to the waiter's default value.",
1424+
AirflowProviderDeprecationWarning,
1425+
stacklevel=2,
14121426
)
14131427
if waiter_countdown is NOTSET:
14141428
waiter_max_attempts = 25 if waiter_max_attempts is NOTSET else waiter_max_attempts
@@ -1420,7 +1434,9 @@ def __init__(
14201434
warnings.warn(
14211435
"The parameter waiter_countdown has been deprecated to standardize "
14221436
"naming conventions. Please use waiter_max_attempts instead. In the "
1423-
"future this will default to None and defer to the waiter's default value."
1437+
"future this will default to None and defer to the waiter's default value.",
1438+
AirflowProviderDeprecationWarning,
1439+
stacklevel=2,
14241440
)
14251441
self.aws_conn_id = aws_conn_id
14261442
self.application_id = application_id
@@ -1569,7 +1585,9 @@ def __init__(
15691585
warnings.warn(
15701586
"The parameter waiter_check_interval_seconds has been deprecated to standardize "
15711587
"naming conventions. Please use waiter_delay instead. In the "
1572-
"future this will default to None and defer to the waiter's default value."
1588+
"future this will default to None and defer to the waiter's default value.",
1589+
AirflowProviderDeprecationWarning,
1590+
stacklevel=2,
15731591
)
15741592
if waiter_countdown is NOTSET:
15751593
waiter_max_attempts = 25 if waiter_max_attempts is NOTSET else waiter_max_attempts
@@ -1581,7 +1599,9 @@ def __init__(
15811599
warnings.warn(
15821600
"The parameter waiter_countdown has been deprecated to standardize "
15831601
"naming conventions. Please use waiter_max_attempts instead. In the "
1584-
"future this will default to None and defer to the waiter's default value."
1602+
"future this will default to None and defer to the waiter's default value.",
1603+
AirflowProviderDeprecationWarning,
1604+
stacklevel=2,
15851605
)
15861606
self.wait_for_delete_completion = wait_for_completion
15871607
# super stops the app

airflow/providers/celery/executors/celery_executor_utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
import airflow.settings as settings
4343
from airflow.configuration import conf
44-
from airflow.exceptions import AirflowException, RemovedInAirflow3Warning
44+
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
4545
from airflow.executors.base_executor import BaseExecutor
4646
from airflow.stats import Stats
4747
from airflow.utils.dag_parsing_context import _airflow_parsing_context_manager
@@ -88,7 +88,8 @@ def _get_celery_app() -> Celery:
8888
"Change it to `airflow.providers.celery.executors.celery_executor`, and "
8989
"update the `-app` flag in your Celery Health Checks "
9090
"to use `airflow.providers.celery.executors.celery_executor.app`.",
91-
RemovedInAirflow3Warning,
91+
AirflowProviderDeprecationWarning,
92+
stacklevel=2,
9293
)
9394

9495
return Celery(celery_app_name, config_source=celery_configuration)

airflow/providers/cncf/kubernetes/pod_generator.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from airflow.exceptions import (
4040
AirflowConfigException,
4141
AirflowException,
42-
RemovedInAirflow3Warning,
42+
AirflowProviderDeprecationWarning,
4343
)
4444
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
4545
POD_NAME_MAX_LENGTH,
@@ -155,7 +155,7 @@ def __init__(
155155

156156
def gen_pod(self) -> k8s.V1Pod:
157157
"""Generate pod."""
158-
warnings.warn("This function is deprecated. ", RemovedInAirflow3Warning)
158+
warnings.warn("This function is deprecated. ", AirflowProviderDeprecationWarning, stacklevel=2)
159159
result = self.ud_pod
160160

161161
result.metadata.name = add_pod_suffix(pod_name=result.metadata.name)
@@ -170,7 +170,9 @@ def add_xcom_sidecar(pod: k8s.V1Pod) -> k8s.V1Pod:
170170
"""Add sidecar."""
171171
warnings.warn(
172172
"This function is deprecated. "
173-
"Please use airflow.providers.cncf.kubernetes.utils.xcom_sidecar.add_xcom_sidecar instead"
173+
"Please use airflow.providers.cncf.kubernetes.utils.xcom_sidecar.add_xcom_sidecar instead",
174+
AirflowProviderDeprecationWarning,
175+
stacklevel=2,
174176
)
175177
pod_cp = copy.deepcopy(pod)
176178
pod_cp.spec.volumes = pod.spec.volumes or []
@@ -207,7 +209,8 @@ def from_obj(obj) -> dict | k8s.V1Pod | None:
207209
"Using a dictionary for the executor_config is deprecated and will soon be removed."
208210
'please use a `kubernetes.client.models.V1Pod` class with a "pod_override" key'
209211
" instead. ",
210-
category=RemovedInAirflow3Warning,
212+
category=AirflowProviderDeprecationWarning,
213+
stacklevel=2,
211214
)
212215
return PodGenerator.from_legacy_obj(obj)
213216
else:
@@ -386,7 +389,10 @@ def construct_pod(
386389
"""
387390
if len(pod_id) > POD_NAME_MAX_LENGTH:
388391
warnings.warn(
389-
f"pod_id supplied is longer than {POD_NAME_MAX_LENGTH} characters; truncating and adding unique suffix."
392+
f"pod_id supplied is longer than {POD_NAME_MAX_LENGTH} characters; "
393+
f"truncating and adding unique suffix.",
394+
UserWarning,
395+
stacklevel=2,
390396
)
391397
pod_id = add_pod_suffix(pod_name=pod_id, max_len=POD_NAME_MAX_LENGTH)
392398
try:
@@ -583,7 +589,8 @@ def make_unique_pod_id(pod_id: str) -> str | None:
583589
"""
584590
warnings.warn(
585591
"This function is deprecated. Use `add_pod_suffix` in `kubernetes_helper_functions`.",
586-
RemovedInAirflow3Warning,
592+
AirflowProviderDeprecationWarning,
593+
stacklevel=2,
587594
)
588595

589596
if not pod_id:

airflow/providers/dbt/cloud/operators/dbt.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ def execute(self, context: Context):
184184
warnings.warn(
185185
"Argument `wait_for_termination` is False and `deferrable` is True , hence "
186186
"`deferrable` parameter doesn't have any effect",
187+
UserWarning,
188+
stacklevel=2,
187189
)
188190
return self.run_id
189191

airflow/providers/elasticsearch/log/es_task_handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def __init__(
171171
warnings.warn(
172172
"Passing log_id_template to ElasticsearchTaskHandler is deprecated and has no effect",
173173
AirflowProviderDeprecationWarning,
174+
stacklevel=2,
174175
)
175176

176177
self.log_id_template = log_id_template # Only used on Airflow < 2.3.2.

airflow/providers/google/cloud/hooks/bigquery.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ def get_service(self) -> Resource:
145145
warnings.warn(
146146
"This method will be deprecated. Please use `BigQueryHook.get_client` method",
147147
AirflowProviderDeprecationWarning,
148+
stacklevel=2,
148149
)
149150
http_authorized = self._authorize()
150151
return build("bigquery", "v2", http=http_authorized, cache_discovery=False)
@@ -624,6 +625,7 @@ def create_external_table(
624625
"This method is deprecated. Please use `BigQueryHook.create_empty_table` method with "
625626
"passing the `table_resource` object. This gives more flexibility than this method.",
626627
AirflowProviderDeprecationWarning,
628+
stacklevel=2,
627629
)
628630
location = location or self.location
629631
src_fmt_configs = src_fmt_configs or {}
@@ -808,6 +810,7 @@ def patch_table(
808810
warnings.warn(
809811
"This method is deprecated, please use ``BigQueryHook.update_table`` method.",
810812
AirflowProviderDeprecationWarning,
813+
stacklevel=2,
811814
)
812815
table_resource: dict[str, Any] = {}
813816

@@ -958,7 +961,9 @@ def patch_dataset(self, dataset_id: str, dataset_resource: dict, project_id: str
958961
:param project_id: The Google Cloud Project ID
959962
"""
960963
warnings.warn(
961-
"This method is deprecated. Please use ``update_dataset``.", AirflowProviderDeprecationWarning
964+
"This method is deprecated. Please use ``update_dataset``.",
965+
AirflowProviderDeprecationWarning,
966+
stacklevel=2,
962967
)
963968
project_id = project_id or self.project_id
964969
if not dataset_id or not isinstance(dataset_id, str):
@@ -1007,7 +1012,9 @@ def get_dataset_tables_list(
10071012
:return: List of tables associated with the dataset
10081013
"""
10091014
warnings.warn(
1010-
"This method is deprecated. Please use ``get_dataset_tables``.", AirflowProviderDeprecationWarning
1015+
"This method is deprecated. Please use ``get_dataset_tables``.",
1016+
AirflowProviderDeprecationWarning,
1017+
stacklevel=2,
10111018
)
10121019
project_id = project_id or self.project_id
10131020
tables = self.get_client().list_tables(
@@ -1197,7 +1204,9 @@ def run_table_delete(self, deletion_dataset_table: str, ignore_if_missing: bool
11971204
:return:
11981205
"""
11991206
warnings.warn(
1200-
"This method is deprecated. Please use `delete_table`.", AirflowProviderDeprecationWarning
1207+
"This method is deprecated. Please use `delete_table`.",
1208+
AirflowProviderDeprecationWarning,
1209+
stacklevel=2,
12011210
)
12021211
return self.delete_table(table_id=deletion_dataset_table, not_found_ok=ignore_if_missing)
12031212

@@ -1250,7 +1259,11 @@ def get_tabledata(
12501259
:param start_index: zero based index of the starting row to read.
12511260
:return: list of rows
12521261
"""
1253-
warnings.warn("This method is deprecated. Please use `list_rows`.", AirflowProviderDeprecationWarning)
1262+
warnings.warn(
1263+
"This method is deprecated. Please use `list_rows`.",
1264+
AirflowProviderDeprecationWarning,
1265+
stacklevel=2,
1266+
)
12541267
rows = self.list_rows(
12551268
dataset_id=dataset_id,
12561269
table_id=table_id,
@@ -1458,6 +1471,7 @@ def cancel_query(self) -> None:
14581471
warnings.warn(
14591472
"This method is deprecated. Please use `BigQueryHook.cancel_job`.",
14601473
AirflowProviderDeprecationWarning,
1474+
stacklevel=2,
14611475
)
14621476
if self.running_job_id:
14631477
self.cancel_job(job_id=self.running_job_id)
@@ -1617,6 +1631,7 @@ def run_with_configuration(self, configuration: dict) -> str:
16171631
warnings.warn(
16181632
"This method is deprecated. Please use `BigQueryHook.insert_job`",
16191633
AirflowProviderDeprecationWarning,
1634+
stacklevel=2,
16201635
)
16211636
job = self.insert_job(configuration=configuration, project_id=self.project_id)
16221637
self.running_job_id = job.job_id
@@ -1714,6 +1729,7 @@ def run_load(
17141729
warnings.warn(
17151730
"This method is deprecated. Please use `BigQueryHook.insert_job` method.",
17161731
AirflowProviderDeprecationWarning,
1732+
stacklevel=2,
17171733
)
17181734

17191735
if not self.project_id:
@@ -1901,6 +1917,7 @@ def run_copy(
19011917
warnings.warn(
19021918
"This method is deprecated. Please use `BigQueryHook.insert_job` method.",
19031919
AirflowProviderDeprecationWarning,
1920+
stacklevel=2,
19041921
)
19051922
if not self.project_id:
19061923
raise ValueError("The project_id should be set")
@@ -1982,6 +1999,7 @@ def run_extract(
19821999
warnings.warn(
19832000
"This method is deprecated. Please use `BigQueryHook.insert_job` method.",
19842001
AirflowProviderDeprecationWarning,
2002+
stacklevel=2,
19852003
)
19862004
if not self.project_id:
19872005
raise ValueError("The project_id should be set")
@@ -2109,6 +2127,7 @@ def run_query(
21092127
warnings.warn(
21102128
"This method is deprecated. Please use `BigQueryHook.insert_job` method.",
21112129
AirflowProviderDeprecationWarning,
2130+
stacklevel=2,
21122131
)
21132132
if not self.project_id:
21142133
raise ValueError("The project_id should be set")

airflow/providers/google/cloud/hooks/cloud_storage_transfer_service.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,11 @@ def list_transfer_job(self, request_filter: dict | None = None, **kwargs) -> lis
250250
request_filter = kwargs["filter"]
251251
if not isinstance(request_filter, dict):
252252
raise ValueError(f"The request_filter should be dict and is {type(request_filter)}")
253-
warnings.warn("Use 'request_filter' instead of 'filter'", AirflowProviderDeprecationWarning)
253+
warnings.warn(
254+
"Use 'request_filter' instead of 'filter'",
255+
AirflowProviderDeprecationWarning,
256+
stacklevel=2,
257+
)
254258
else:
255259
raise TypeError("list_transfer_job missing 1 required positional argument: 'request_filter'")
256260

@@ -374,7 +378,11 @@ def list_transfer_operations(self, request_filter: dict | None = None, **kwargs)
374378
request_filter = kwargs["filter"]
375379
if not isinstance(request_filter, dict):
376380
raise ValueError(f"The request_filter should be dict and is {type(request_filter)}")
377-
warnings.warn("Use 'request_filter' instead of 'filter'", AirflowProviderDeprecationWarning)
381+
warnings.warn(
382+
"Use 'request_filter' instead of 'filter'",
383+
AirflowProviderDeprecationWarning,
384+
stacklevel=2,
385+
)
378386
else:
379387
raise TypeError(
380388
"list_transfer_operations missing 1 required positional argument: 'request_filter'"

airflow/providers/google/cloud/hooks/kubernetes_engine.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ def get_conn(self) -> container_v1.ClusterManagerClient:
102102
warnings.warn(
103103
"The get_conn method has been deprecated. You should use the get_cluster_manager_client method.",
104104
AirflowProviderDeprecationWarning,
105+
stacklevel=2,
105106
)
106107
return self.get_cluster_manager_client()
107108

@@ -111,6 +112,7 @@ def get_client(self) -> ClusterManagerClient:
111112
warnings.warn(
112113
"The get_client method has been deprecated. You should use the get_conn method.",
113114
AirflowProviderDeprecationWarning,
115+
stacklevel=2,
114116
)
115117
return self.get_conn()
116118

0 commit comments

Comments
 (0)