Skip to content

Commit 39df309

Browse files
committed
refactor(AIR302,AIR312): get rid of ProviderReplacement::ProviderName and replace them as ProviderName::AutoImport
1 parent c3a4992 commit 39df309

File tree

4 files changed

+103
-52
lines changed

4 files changed

+103
-52
lines changed

crates/ruff_linter/src/rules/airflow/helpers.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ pub(crate) enum Replacement {
3131
#[derive(Clone, Debug, Eq, PartialEq)]
3232
pub(crate) enum ProviderReplacement {
3333
None,
34-
ProviderName {
35-
name: &'static str,
36-
provider: &'static str,
37-
version: &'static str,
38-
},
3934
AutoImport {
4035
module: &'static str,
4136
name: &'static str,

crates/ruff_linter/src/rules/airflow/rules/moved_to_provider_in_3.rs

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,7 @@ impl Violation for Airflow3MovedToProvider {
4646
ProviderReplacement::None => {
4747
format!("`{deprecated}` is removed in Airflow 3.0")
4848
}
49-
ProviderReplacement::ProviderName {
50-
name: _,
51-
provider,
52-
version: _,
53-
}
54-
| ProviderReplacement::AutoImport {
49+
ProviderReplacement::AutoImport {
5550
name: _,
5651
module: _,
5752
provider,
@@ -72,15 +67,6 @@ impl Violation for Airflow3MovedToProvider {
7267
let Airflow3MovedToProvider { replacement, .. } = self;
7368
match replacement {
7469
ProviderReplacement::None => {None}
75-
ProviderReplacement::ProviderName {
76-
name,
77-
provider,
78-
version,
79-
} => {
80-
Some(format!(
81-
"Install `apache-airflow-providers-{provider}>={version}` and use `{name}` instead."
82-
))
83-
},
8470
ProviderReplacement::AutoImport {
8571
name,
8672
module,
@@ -122,7 +108,6 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
122108
};
123109

124110
let replacement = match qualified_name.segments() {
125-
// ProviderName: for cases that only one name has been moved
126111
// apache-airflow-providers-amazon
127112
["airflow", "hooks", "S3_hook", rest @ ("S3Hook" | "provide_bucket_name")] => {
128113
ProviderReplacement::SourceModuleMovedToProvider {
@@ -238,8 +223,9 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
238223
}
239224
["airflow", "operators", "druid_check_operator", "DruidCheckOperator"]
240225
| ["airflow", "operators", "presto_check_operator", "PrestoCheckOperator"] => {
241-
ProviderReplacement::ProviderName {
242-
name: "airflow.providers.common.sql.operators.sql.SQLCheckOperator",
226+
ProviderReplacement::AutoImport {
227+
module: "airflow.providers.common.sql.operators.sql",
228+
name: "SQLCheckOperator",
243229
provider: "common-sql",
244230
version: "1.1.0",
245231
}
@@ -255,8 +241,9 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
255241
}
256242
}
257243
["airflow", "operators", "presto_check_operator", "PrestoIntervalCheckOperator"] => {
258-
ProviderReplacement::ProviderName {
259-
name: "airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator",
244+
ProviderReplacement::AutoImport {
245+
module: "airflow.providers.common.sql.operators.sql",
246+
name: "SQLIntervalCheckOperator",
260247
provider: "common-sql",
261248
version: "1.1.0",
262249
}
@@ -281,8 +268,9 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
281268
}
282269
}
283270
["airflow", "operators", "presto_check_operator", "PrestoValueCheckOperator"] => {
284-
ProviderReplacement::ProviderName {
285-
name: "airflow.providers.common.sql.operators.sql.SQLValueCheckOperator",
271+
ProviderReplacement::AutoImport {
272+
module: "airflow.providers.common.sql.operators.sql",
273+
name: "SQLValueCheckOperator",
286274
provider: "common-sql",
287275
version: "1.1.0",
288276
}
@@ -320,8 +308,9 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
320308
| ["airflow", "operators", "oracle_operator", "OracleOperator"]
321309
| ["airflow", "operators", "postgres_operator", "PostgresOperator"]
322310
| ["airflow", "operators", "sqlite_operator", "SqliteOperator"] => {
323-
ProviderReplacement::ProviderName {
324-
name: "airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator",
311+
ProviderReplacement::AutoImport {
312+
module: "airflow.providers.common.sql.operators.sql",
313+
name: "SQLExecuteQueryOperator",
325314
provider: "common-sql",
326315
version: "1.3.0",
327316
}
@@ -943,7 +932,7 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
943932
ProviderReplacement::SourceModuleMovedToProvider { module, name, .. } => {
944933
Some((module, name.as_str()))
945934
}
946-
_ => None,
935+
ProviderReplacement::None => None,
947936
} {
948937
if is_guarded_by_try_except(expr, module, name, semantic) {
949938
return;

crates/ruff_linter/src/rules/airflow/rules/suggested_to_move_to_provider_in_3.rs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,7 @@ impl Violation for Airflow3SuggestedToMoveToProvider {
4747
ProviderReplacement::None => {
4848
format!("`{deprecated}` is removed in Airflow 3.0")
4949
}
50-
ProviderReplacement::ProviderName {
51-
name: _,
52-
provider,
53-
version: _,
54-
}
55-
| ProviderReplacement::AutoImport {
50+
ProviderReplacement::AutoImport {
5651
name: _,
5752
module: _,
5853
provider,
@@ -76,15 +71,6 @@ impl Violation for Airflow3SuggestedToMoveToProvider {
7671
let Airflow3SuggestedToMoveToProvider { replacement, .. } = self;
7772
match replacement {
7873
ProviderReplacement::None => None,
79-
ProviderReplacement::ProviderName {
80-
name,
81-
provider,
82-
version,
83-
} => {
84-
Some(format!(
85-
"Install `apache-airflow-providers-{provider}>={version}` and use `{name}` instead."
86-
))
87-
},
8874
ProviderReplacement::AutoImport {
8975
module,
9076
name,
@@ -285,7 +271,7 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
285271
ProviderReplacement::SourceModuleMovedToProvider { module, name, .. } => {
286272
Some((module, name.as_str()))
287273
}
288-
_ => None,
274+
ProviderReplacement::None => None,
289275
} {
290276
if is_guarded_by_try_except(expr, module, name, semantic) {
291277
return;

crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_common_sql.py.snap

Lines changed: 87 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ AIR302_common_sql.py:114:1: AIR302 `airflow.sensors.sql_sensor.SqlSensor` is mov
289289
|
290290
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.sensors.sql.SqlSensor` instead.
291291

292-
AIR302_common_sql.py:124:1: AIR302 `airflow.operators.jdbc_operator.JdbcOperator` is moved into `common-sql` provider in Airflow 3.0;
292+
AIR302_common_sql.py:124:1: AIR302 [*] `airflow.operators.jdbc_operator.JdbcOperator` is moved into `common-sql` provider in Airflow 3.0;
293293
|
294294
122 | from airflow.operators.sqlite_operator import SqliteOperator
295295
123 |
@@ -300,7 +300,19 @@ AIR302_common_sql.py:124:1: AIR302 `airflow.operators.jdbc_operator.JdbcOperator
300300
|
301301
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
302302

303-
AIR302_common_sql.py:125:1: AIR302 `airflow.operators.mssql_operator.MsSqlOperator` is moved into `common-sql` provider in Airflow 3.0;
303+
Safe fix
304+
120 120 | from airflow.operators.oracle_operator import OracleOperator
305+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
306+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
307+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
308+
123 124 |
309+
124 |-JdbcOperator()
310+
125 |+SQLExecuteQueryOperator()
311+
125 126 | MsSqlOperator()
312+
126 127 | MySqlOperator()
313+
127 128 | OracleOperator()
314+
315+
AIR302_common_sql.py:125:1: AIR302 [*] `airflow.operators.mssql_operator.MsSqlOperator` is moved into `common-sql` provider in Airflow 3.0;
304316
|
305317
124 | JdbcOperator()
306318
125 | MsSqlOperator()
@@ -310,7 +322,20 @@ AIR302_common_sql.py:125:1: AIR302 `airflow.operators.mssql_operator.MsSqlOperat
310322
|
311323
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
312324

313-
AIR302_common_sql.py:126:1: AIR302 `airflow.operators.mysql_operator.MySqlOperator` is moved into `common-sql` provider in Airflow 3.0;
325+
Safe fix
326+
120 120 | from airflow.operators.oracle_operator import OracleOperator
327+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
328+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
329+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
330+
123 124 |
331+
124 125 | JdbcOperator()
332+
125 |-MsSqlOperator()
333+
126 |+SQLExecuteQueryOperator()
334+
126 127 | MySqlOperator()
335+
127 128 | OracleOperator()
336+
128 129 | PostgresOperator()
337+
338+
AIR302_common_sql.py:126:1: AIR302 [*] `airflow.operators.mysql_operator.MySqlOperator` is moved into `common-sql` provider in Airflow 3.0;
314339
|
315340
124 | JdbcOperator()
316341
125 | MsSqlOperator()
@@ -321,7 +346,21 @@ AIR302_common_sql.py:126:1: AIR302 `airflow.operators.mysql_operator.MySqlOperat
321346
|
322347
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
323348

324-
AIR302_common_sql.py:127:1: AIR302 `airflow.operators.oracle_operator.OracleOperator` is moved into `common-sql` provider in Airflow 3.0;
349+
Safe fix
350+
120 120 | from airflow.operators.oracle_operator import OracleOperator
351+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
352+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
353+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
354+
123 124 |
355+
124 125 | JdbcOperator()
356+
125 126 | MsSqlOperator()
357+
126 |-MySqlOperator()
358+
127 |+SQLExecuteQueryOperator()
359+
127 128 | OracleOperator()
360+
128 129 | PostgresOperator()
361+
129 130 | SqliteOperator()
362+
363+
AIR302_common_sql.py:127:1: AIR302 [*] `airflow.operators.oracle_operator.OracleOperator` is moved into `common-sql` provider in Airflow 3.0;
325364
|
326365
125 | MsSqlOperator()
327366
126 | MySqlOperator()
@@ -332,7 +371,21 @@ AIR302_common_sql.py:127:1: AIR302 `airflow.operators.oracle_operator.OracleOper
332371
|
333372
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
334373

335-
AIR302_common_sql.py:128:1: AIR302 `airflow.operators.postgres_operator.PostgresOperator` is moved into `common-sql` provider in Airflow 3.0;
374+
Safe fix
375+
120 120 | from airflow.operators.oracle_operator import OracleOperator
376+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
377+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
378+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
379+
123 124 |
380+
124 125 | JdbcOperator()
381+
125 126 | MsSqlOperator()
382+
126 127 | MySqlOperator()
383+
127 |-OracleOperator()
384+
128 |+SQLExecuteQueryOperator()
385+
128 129 | PostgresOperator()
386+
129 130 | SqliteOperator()
387+
388+
AIR302_common_sql.py:128:1: AIR302 [*] `airflow.operators.postgres_operator.PostgresOperator` is moved into `common-sql` provider in Airflow 3.0;
336389
|
337390
126 | MySqlOperator()
338391
127 | OracleOperator()
@@ -342,11 +395,39 @@ AIR302_common_sql.py:128:1: AIR302 `airflow.operators.postgres_operator.Postgres
342395
|
343396
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
344397

345-
AIR302_common_sql.py:129:1: AIR302 `airflow.operators.sqlite_operator.SqliteOperator` is moved into `common-sql` provider in Airflow 3.0;
398+
Safe fix
399+
120 120 | from airflow.operators.oracle_operator import OracleOperator
400+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
401+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
402+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
403+
123 124 |
404+
124 125 | JdbcOperator()
405+
125 126 | MsSqlOperator()
406+
126 127 | MySqlOperator()
407+
127 128 | OracleOperator()
408+
128 |-PostgresOperator()
409+
129 |+SQLExecuteQueryOperator()
410+
129 130 | SqliteOperator()
411+
412+
AIR302_common_sql.py:129:1: AIR302 [*] `airflow.operators.sqlite_operator.SqliteOperator` is moved into `common-sql` provider in Airflow 3.0;
346413
|
347414
127 | OracleOperator()
348415
128 | PostgresOperator()
349416
129 | SqliteOperator()
350417
| ^^^^^^^^^^^^^^ AIR302
351418
|
352419
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
420+
421+
Safe fix
422+
120 120 | from airflow.operators.oracle_operator import OracleOperator
423+
121 121 | from airflow.operators.postgres_operator import PostgresOperator
424+
122 122 | from airflow.operators.sqlite_operator import SqliteOperator
425+
123 |+from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
426+
123 124 |
427+
124 125 | JdbcOperator()
428+
125 126 | MsSqlOperator()
429+
126 127 | MySqlOperator()
430+
127 128 | OracleOperator()
431+
128 129 | PostgresOperator()
432+
129 |-SqliteOperator()
433+
130 |+SQLExecuteQueryOperator()

0 commit comments

Comments
 (0)