Skip to content

Commit 942d6ee

Browse files
committed
Stabilize A004 (#14480)
1 parent 4ccacc8 commit 942d6ee

5 files changed

+25
-69
lines changed

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

+1-25
Original file line numberDiff line numberDiff line change
@@ -591,18 +591,7 @@ pub(crate) fn statement(stmt: &Stmt, checker: &mut Checker) {
591591
if checker.enabled(Rule::NonAsciiImportName) {
592592
pylint::rules::non_ascii_module_import(checker, alias);
593593
}
594-
// TODO(charlie): Remove when stabilizing A004.
595-
if let Some(asname) = &alias.asname {
596-
if checker.settings.preview.is_disabled()
597-
&& checker.enabled(Rule::BuiltinVariableShadowing)
598-
{
599-
flake8_builtins::rules::builtin_variable_shadowing(
600-
checker,
601-
asname,
602-
asname.range(),
603-
);
604-
}
605-
}
594+
606595
if checker.enabled(Rule::Debugger) {
607596
if let Some(diagnostic) =
608597
flake8_debugger::rules::debugger_import(stmt, None, &alias.name)
@@ -912,19 +901,6 @@ pub(crate) fn statement(stmt: &Stmt, checker: &mut Checker) {
912901
stmt.range(),
913902
));
914903
}
915-
} else {
916-
// TODO(charlie): Remove when stabilizing A004.
917-
if let Some(asname) = &alias.asname {
918-
if checker.settings.preview.is_disabled()
919-
&& checker.enabled(Rule::BuiltinVariableShadowing)
920-
{
921-
flake8_builtins::rules::builtin_variable_shadowing(
922-
checker,
923-
asname,
924-
asname.range(),
925-
);
926-
}
927-
}
928904
}
929905
if checker.enabled(Rule::RelativeImports) {
930906
if let Some(diagnostic) = flake8_tidy_imports::rules::banned_relative_import(

crates/ruff_linter/src/codes.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,7 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> {
313313
(Flake8Builtins, "001") => (RuleGroup::Stable, rules::flake8_builtins::rules::BuiltinVariableShadowing),
314314
(Flake8Builtins, "002") => (RuleGroup::Stable, rules::flake8_builtins::rules::BuiltinArgumentShadowing),
315315
(Flake8Builtins, "003") => (RuleGroup::Stable, rules::flake8_builtins::rules::BuiltinAttributeShadowing),
316-
// TODO(charlie): When stabilizing, remove preview gating for A001's treatment of imports.
317-
(Flake8Builtins, "004") => (RuleGroup::Preview, rules::flake8_builtins::rules::BuiltinImportShadowing),
316+
(Flake8Builtins, "004") => (RuleGroup::Stable, rules::flake8_builtins::rules::BuiltinImportShadowing),
318317
(Flake8Builtins, "005") => (RuleGroup::Preview, rules::flake8_builtins::rules::BuiltinModuleShadowing),
319318
(Flake8Builtins, "006") => (RuleGroup::Preview, rules::flake8_builtins::rules::BuiltinLambdaArgumentShadowing),
320319

crates/ruff_linter/src/rules/flake8_builtins/rules/builtin_import_shadowing.rs

+23
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,31 @@ use crate::rules::flake8_builtins::helpers::shadows_builtin;
1616
/// Builtins can be marked as exceptions to this rule via the
1717
/// [`lint.flake8-builtins.builtins-ignorelist`] configuration option.
1818
///
19+
/// ## Example
20+
/// ```python
21+
/// from rich import print
22+
///
23+
/// print("Some message")
24+
/// ```
25+
///
26+
/// Use instead:
27+
/// ```python
28+
/// from rich import print as rich_print
29+
///
30+
/// rich_print("Some message")
31+
/// ```
32+
///
33+
/// or:
34+
/// ```python
35+
/// import rich
36+
///
37+
/// rich.print("Some message")
38+
/// ```
39+
///
1940
/// ## Options
2041
/// - `lint.flake8-builtins.builtins-ignorelist`
42+
/// - `target-version`
43+
///
2144
#[violation]
2245
pub struct BuiltinImportShadowing {
2346
name: String,

crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py.snap

-26
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,6 @@
22
source: crates/ruff_linter/src/rules/flake8_builtins/mod.rs
33
snapshot_kind: text
44
---
5-
A001.py:1:16: A001 Variable `sum` is shadowing a Python builtin
6-
|
7-
1 | import some as sum
8-
| ^^^ A001
9-
2 | from some import other as int
10-
3 | from directory import new as dir
11-
|
12-
13-
A001.py:2:27: A001 Variable `int` is shadowing a Python builtin
14-
|
15-
1 | import some as sum
16-
2 | from some import other as int
17-
| ^^^ A001
18-
3 | from directory import new as dir
19-
|
20-
21-
A001.py:3:30: A001 Variable `dir` is shadowing a Python builtin
22-
|
23-
1 | import some as sum
24-
2 | from some import other as int
25-
3 | from directory import new as dir
26-
| ^^^ A001
27-
4 |
28-
5 | print = 1
29-
|
30-
315
A001.py:5:1: A001 Variable `print` is shadowing a Python builtin
326
|
337
3 | from directory import new as dir

crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py_builtins_ignorelist.snap

-16
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,6 @@
22
source: crates/ruff_linter/src/rules/flake8_builtins/mod.rs
33
snapshot_kind: text
44
---
5-
A001.py:1:16: A001 Variable `sum` is shadowing a Python builtin
6-
|
7-
1 | import some as sum
8-
| ^^^ A001
9-
2 | from some import other as int
10-
3 | from directory import new as dir
11-
|
12-
13-
A001.py:2:27: A001 Variable `int` is shadowing a Python builtin
14-
|
15-
1 | import some as sum
16-
2 | from some import other as int
17-
| ^^^ A001
18-
3 | from directory import new as dir
19-
|
20-
215
A001.py:5:1: A001 Variable `print` is shadowing a Python builtin
226
|
237
3 | from directory import new as dir

0 commit comments

Comments
 (0)