Skip to content

Commit b5644e8

Browse files
committed
refactor(AIR3): refactor how module and name is retrieved
1 parent 14a91bd commit b5644e8

4 files changed

Lines changed: 68 additions & 137 deletions

File tree

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

Lines changed: 19 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -938,47 +938,25 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
938938
);
939939

940940
let semantic = checker.semantic();
941-
match replacement {
942-
ProviderReplacement::AutoImport {
943-
module,
944-
name,
945-
provider: _,
946-
version: _,
947-
} => {
948-
if is_guarded_by_try_except(expr, module, name, semantic) {
949-
return;
950-
}
951-
diagnostic.try_set_fix(|| {
952-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
953-
&ImportRequest::import_from(module, name),
954-
expr.start(),
955-
checker.semantic(),
956-
)?;
957-
let replacement_edit = Edit::range_replacement(binding, ranged.range());
958-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
959-
});
960-
}
961-
ProviderReplacement::SourceModuleMovedToProvider {
962-
module,
963-
name,
964-
provider: _,
965-
version: _,
966-
} => {
967-
if is_guarded_by_try_except(expr, module, name.as_str(), semantic) {
968-
return;
969-
}
970-
diagnostic.try_set_fix(|| {
971-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
972-
&ImportRequest::import_from(module, name.as_str()),
973-
expr.start(),
974-
checker.semantic(),
975-
)?;
976-
let replacement_edit = Edit::range_replacement(binding, ranged.range());
977-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
978-
});
979-
}
980-
_ => {}
941+
if let Some((module, name)) = match &replacement {
942+
ProviderReplacement::AutoImport { module, name, .. } => Some((module, *name)),
943+
ProviderReplacement::SourceModuleMovedToProvider { module, name, .. } => {
944+
Some((module, name.as_str()))
945+
}
946+
_ => None,
947+
} {
948+
if is_guarded_by_try_except(expr, module, name, semantic) {
949+
return;
950+
}
951+
diagnostic.try_set_fix(|| {
952+
let (import_edit, binding) = checker.importer().get_or_import_symbol(
953+
&ImportRequest::import_from(module, name),
954+
expr.start(),
955+
checker.semantic(),
956+
)?;
957+
let replacement_edit = Edit::range_replacement(binding, ranged.range());
958+
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
959+
});
981960
}
982-
983961
checker.report_diagnostic(diagnostic);
984962
}

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

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -873,36 +873,23 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
873873
range,
874874
);
875875
let semantic = checker.semantic();
876-
match replacement {
877-
Replacement::AutoImport { module, name } => {
878-
if is_guarded_by_try_except(expr, module, name, semantic) {
879-
return;
880-
}
881-
diagnostic.try_set_fix(|| {
882-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
883-
&ImportRequest::import_from(module, name),
884-
expr.start(),
885-
checker.semantic(),
886-
)?;
887-
let replacement_edit = Edit::range_replacement(binding, range);
888-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
889-
});
876+
if let Some((module, name)) = match &replacement {
877+
Replacement::AutoImport { module, name } => Some((module, *name)),
878+
Replacement::SourceModuleMoved { module, name } => Some((module, name.as_str())),
879+
_ => None,
880+
} {
881+
if is_guarded_by_try_except(expr, module, name, semantic) {
882+
return;
890883
}
891-
Replacement::SourceModuleMoved { module, name } => {
892-
if is_guarded_by_try_except(expr, module, name.as_str(), semantic) {
893-
return;
894-
}
895-
diagnostic.try_set_fix(|| {
896-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
897-
&ImportRequest::import_from(module, name.as_str()),
898-
expr.start(),
899-
checker.semantic(),
900-
)?;
901-
let replacement_edit = Edit::range_replacement(binding, range);
902-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
903-
});
904-
}
905-
_ => {}
884+
diagnostic.try_set_fix(|| {
885+
let (import_edit, binding) = checker.importer().get_or_import_symbol(
886+
&ImportRequest::import_from(module, name),
887+
expr.start(),
888+
checker.semantic(),
889+
)?;
890+
let replacement_edit = Edit::range_replacement(binding, range);
891+
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
892+
});
906893
}
907894

908895
checker.report_diagnostic(diagnostic);

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

Lines changed: 17 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -280,46 +280,25 @@ fn check_names_moved_to_provider(checker: &Checker, expr: &Expr, ranged: TextRan
280280
);
281281

282282
let semantic = checker.semantic();
283-
match replacement {
284-
ProviderReplacement::AutoImport {
285-
module,
286-
name,
287-
provider: _,
288-
version: _,
289-
} => {
290-
if is_guarded_by_try_except(expr, module, name, semantic) {
291-
return;
292-
}
293-
diagnostic.try_set_fix(|| {
294-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
295-
&ImportRequest::import_from(module, name),
296-
expr.start(),
297-
checker.semantic(),
298-
)?;
299-
let replacement_edit = Edit::range_replacement(binding, ranged.range());
300-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
301-
});
283+
if let Some((module, name)) = match &replacement {
284+
ProviderReplacement::AutoImport { module, name, .. } => Some((module, *name)),
285+
ProviderReplacement::SourceModuleMovedToProvider { module, name, .. } => {
286+
Some((module, name.as_str()))
302287
}
303-
ProviderReplacement::SourceModuleMovedToProvider {
304-
module,
305-
name,
306-
provider: _,
307-
version: _,
308-
} => {
309-
if is_guarded_by_try_except(expr, module, name.as_str(), semantic) {
310-
return;
311-
}
312-
diagnostic.try_set_fix(|| {
313-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
314-
&ImportRequest::import_from(module, name.as_str()),
315-
expr.start(),
316-
checker.semantic(),
317-
)?;
318-
let replacement_edit = Edit::range_replacement(binding, ranged.range());
319-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
320-
});
288+
_ => None,
289+
} {
290+
if is_guarded_by_try_except(expr, module, name, semantic) {
291+
return;
321292
}
322-
_ => {}
293+
diagnostic.try_set_fix(|| {
294+
let (import_edit, binding) = checker.importer().get_or_import_symbol(
295+
&ImportRequest::import_from(module, name),
296+
expr.start(),
297+
checker.semantic(),
298+
)?;
299+
let replacement_edit = Edit::range_replacement(binding, ranged.range());
300+
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
301+
});
323302
}
324303

325304
checker.report_diagnostic(diagnostic);

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

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -292,36 +292,23 @@ fn check_name(checker: &Checker, expr: &Expr, range: TextRange) {
292292
);
293293

294294
let semantic = checker.semantic();
295-
match replacement {
296-
Replacement::AutoImport { module, name } => {
297-
if is_guarded_by_try_except(expr, module, name, semantic) {
298-
return;
299-
}
300-
diagnostic.try_set_fix(|| {
301-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
302-
&ImportRequest::import_from(module, name),
303-
expr.start(),
304-
checker.semantic(),
305-
)?;
306-
let replacement_edit = Edit::range_replacement(binding, range);
307-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
308-
});
309-
}
310-
Replacement::SourceModuleMoved { module, name } => {
311-
if is_guarded_by_try_except(expr, module, name.as_str(), semantic) {
312-
return;
313-
}
314-
diagnostic.try_set_fix(|| {
315-
let (import_edit, binding) = checker.importer().get_or_import_symbol(
316-
&ImportRequest::import_from(module, name.as_str()),
317-
expr.start(),
318-
checker.semantic(),
319-
)?;
320-
let replacement_edit = Edit::range_replacement(binding, range);
321-
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
322-
});
295+
if let Some((module, name)) = match &replacement {
296+
Replacement::AutoImport { module, name } => Some((module, *name)),
297+
Replacement::SourceModuleMoved { module, name } => Some((module, name.as_str())),
298+
_ => None,
299+
} {
300+
if is_guarded_by_try_except(expr, module, name, semantic) {
301+
return;
323302
}
324-
_ => {}
303+
diagnostic.try_set_fix(|| {
304+
let (import_edit, binding) = checker.importer().get_or_import_symbol(
305+
&ImportRequest::import_from(module, name),
306+
expr.start(),
307+
checker.semantic(),
308+
)?;
309+
let replacement_edit = Edit::range_replacement(binding, range);
310+
Ok(Fix::safe_edits(import_edit, [replacement_edit]))
311+
});
325312
}
326313

327314
checker.report_diagnostic(diagnostic);

0 commit comments

Comments
 (0)