Skip to content

Commit c948314

Browse files
committed
rename the rule, and some updates to rule
1 parent 81058b3 commit c948314

8 files changed

Lines changed: 52 additions & 50 deletions

File tree

crates/ruff_linter/src/checkers/ast/analyze/expression.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ pub(crate) fn expression(expr: &Expr, checker: &Checker) {
262262
if checker.is_rule_enabled(Rule::Airflow3Removal) {
263263
airflow::rules::airflow_3_removal_expr(checker, expr);
264264
}
265-
if checker.is_rule_enabled(Rule::Airflow31Removal) {
266-
airflow::rules::airflow_3_1_removal_expr(checker, expr);
265+
if checker.is_rule_enabled(Rule::Airflow31Moved) {
266+
airflow::rules::airflow_3_1_moved_expr(checker, expr);
267267
}
268268
if checker.is_rule_enabled(Rule::Airflow3SuggestedUpdate) {
269269
airflow::rules::airflow_3_0_suggested_update_expr(checker, expr);
@@ -490,8 +490,8 @@ pub(crate) fn expression(expr: &Expr, checker: &Checker) {
490490
if checker.is_rule_enabled(Rule::Airflow3Removal) {
491491
airflow::rules::airflow_3_removal_expr(checker, expr);
492492
}
493-
if checker.is_rule_enabled(Rule::Airflow31Removal) {
494-
airflow::rules::airflow_3_1_removal_expr(checker, expr);
493+
if checker.is_rule_enabled(Rule::Airflow31Moved) {
494+
airflow::rules::airflow_3_1_moved_expr(checker, expr);
495495
}
496496
if checker.is_rule_enabled(Rule::Airflow3SuggestedUpdate) {
497497
airflow::rules::airflow_3_0_suggested_update_expr(checker, expr);

crates/ruff_linter/src/codes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,7 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
11281128
(Airflow, "303") => rules::airflow::rules::Airflow3IncompatibleFunctionSignature,
11291129
(Airflow, "311") => rules::airflow::rules::Airflow3SuggestedUpdate,
11301130
(Airflow, "312") => rules::airflow::rules::Airflow3SuggestedToMoveToProvider,
1131-
(Airflow, "321") => rules::airflow::rules::Airflow31Removal,
1131+
(Airflow, "321") => rules::airflow::rules::Airflow31Moved,
11321132

11331133
// perflint
11341134
(Perflint, "101") => rules::perflint::rules::UnnecessaryListCast,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ mod tests {
2323
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_class_attribute.py"))]
2424
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_airflow_plugin.py"))]
2525
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_context.py"))]
26-
#[test_case(Rule::Airflow31Removal, Path::new("AIR321_names.py"))]
26+
#[test_case(Rule::Airflow31Moved, Path::new("AIR321_names.py"))]
2727
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_amazon.py"))]
2828
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_celery.py"))]
2929
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_common_sql.py"))]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
pub(crate) use dag_schedule_argument::*;
22
pub(crate) use function_signature_change_in_3::*;
3+
pub(crate) use moved_in_3_1::*;
34
pub(crate) use moved_to_provider_in_3::*;
45
pub(crate) use removal_in_3::*;
5-
pub(crate) use removal_in_3_1::*;
66
pub(crate) use suggested_to_move_to_provider_in_3::*;
77
pub(crate) use suggested_to_update_3_0::*;
88
pub(crate) use task_variable_name::*;
99

1010
mod dag_schedule_argument;
1111
mod function_signature_change_in_3;
12+
mod moved_in_3_1;
1213
mod moved_to_provider_in_3;
1314
mod removal_in_3;
14-
mod removal_in_3_1;
1515
mod suggested_to_move_to_provider_in_3;
1616
mod suggested_to_update_3_0;
1717
mod task_variable_name;

crates/ruff_linter/src/rules/airflow/rules/removal_in_3_1.rs renamed to crates/ruff_linter/src/rules/airflow/rules/moved_in_3_1.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,22 @@ use ruff_text_size::TextRange;
3434
/// ```
3535
#[derive(ViolationMetadata)]
3636
#[violation_metadata(preview_since = "NEXT_RUFF_VERSION")]
37-
pub(crate) struct Airflow31Removal {
37+
pub(crate) struct Airflow31Moved {
3838
deprecated: String,
3939
replacement: Replacement,
4040
}
4141

42-
impl Violation for Airflow31Removal {
42+
impl Violation for Airflow31Moved {
4343
const FIX_AVAILABILITY: FixAvailability = FixAvailability::Sometimes;
4444

4545
#[derive_message_formats]
4646
fn message(&self) -> String {
47-
let Airflow31Removal { deprecated, .. } = self;
48-
format!("`{deprecated}` is removed in Airflow 3.1")
47+
let Airflow31Moved { deprecated, .. } = self;
48+
format!("`{deprecated}` is moved in Airflow 3.1")
4949
}
5050

5151
fn fix_title(&self) -> Option<String> {
52-
let Airflow31Removal { replacement, .. } = self;
52+
let Airflow31Moved { replacement, .. } = self;
5353
match replacement {
5454
Replacement::None => None,
5555
Replacement::AttrName(name) => Some(format!("Use `{name}` instead")),
@@ -80,7 +80,7 @@ impl Violation for Airflow31Removal {
8080
}
8181

8282
/// AIR321
83-
pub(crate) fn airflow_3_1_removal_expr(checker: &Checker, expr: &Expr) {
83+
pub(crate) fn airflow_3_1_moved_expr(checker: &Checker, expr: &Expr) {
8484
if !checker.semantic().seen_module(Modules::AIRFLOW) {
8585
return;
8686
}
@@ -206,10 +206,11 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
206206
"airflow",
207207
"macros",
208208
rest @ ("ds_add" | "ds_format" | "datetime_diff_for_humans" | "ds_format_locale"),
209-
] => Replacement::SourceModuleMovedToSDK {
209+
] => Replacement::SourceModuleMovedWithMessage {
210210
module: "airflow.sdk.execution_time.macros",
211211
name: rest.to_string(),
212-
version: "1.1.0",
212+
message: "With apache-airflow-task-sdk>=1.1.0,<=1.1.6. Please import from `airflow.sdk` for apache-airflow-task-sdk>1.1.6.",
213+
suggest_fix: true,
213214
},
214215

215216
// airflow.io
@@ -242,7 +243,7 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
242243
} if *suggest_fix => (module, name.as_str()),
243244
_ => {
244245
checker.report_diagnostic(
245-
Airflow31Removal {
246+
Airflow31Moved {
246247
deprecated: qualified_name.to_string(),
247248
replacement: replacement.clone(),
248249
},
@@ -258,7 +259,7 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
258259

259260
let import_target = name.split('.').next().unwrap_or(name);
260261
let mut diagnostic = checker.report_diagnostic(
261-
Airflow31Removal {
262+
Airflow31Moved {
262263
deprecated: qualified_name.to_string(),
263264
replacement: replacement.clone(),
264265
},

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,10 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
309309
name: (*rest).to_string(),
310310
},
311311

312-
["airflow", "sensors", "base", "poke_mode_only"] => Replacement::SourceModuleMoved {
312+
["airflow", "sensors", "base", "poke_mode_only"] => Replacement::SourceModuleMovedToSDK {
313313
module: "airflow.sdk.bases.sensor",
314314
name: "poke_mode_only".to_string(),
315+
version: "1.0.0",
315316
},
316317

317318
// airflow.timetables

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,7 @@ AIR311 [*] `airflow.sensors.base.poke_mode_only` is removed in Airflow 3.0; It s
908908
119 | poke_mode_only()
909909
| ^^^^^^^^^^^^^^
910910
|
911-
help: Use `poke_mode_only` from `airflow.sdk.bases.sensor` instead.
911+
help: `poke_mode_only` has been moved to `airflow.sdk.bases.sensor` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
912912
110 | from airflow.sensors.base import (
913913
111 | BaseSensorOperator,
914914
112 | PokeReturnValue,

0 commit comments

Comments
 (0)