diff --git a/crates/ruff_linter/src/codes.rs b/crates/ruff_linter/src/codes.rs index 3bde1d732a614..276536f2f00df 100644 --- a/crates/ruff_linter/src/codes.rs +++ b/crates/ruff_linter/src/codes.rs @@ -297,7 +297,7 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> { #[allow(deprecated)] (Pylint, "R6301") => (RuleGroup::Nursery, rules::pylint::rules::NoSelfUse), (Pylint, "W0108") => (RuleGroup::Preview, rules::pylint::rules::UnnecessaryLambda), - (Pylint, "W0117") => (RuleGroup::Preview, rules::pylint::rules::NanComparison), + (Pylint, "W0177") => (RuleGroup::Preview, rules::pylint::rules::NanComparison), (Pylint, "W0120") => (RuleGroup::Stable, rules::pylint::rules::UselessElseOnLoop), (Pylint, "W0127") => (RuleGroup::Stable, rules::pylint::rules::SelfAssigningVariable), (Pylint, "W0128") => (RuleGroup::Preview, rules::pylint::rules::RedeclaredAssignedName), diff --git a/crates/ruff_linter/src/rule_redirects.rs b/crates/ruff_linter/src/rule_redirects.rs index 369a41b4ca5dd..ca6d44608c7e1 100644 --- a/crates/ruff_linter/src/rule_redirects.rs +++ b/crates/ruff_linter/src/rule_redirects.rs @@ -109,5 +109,7 @@ static REDIRECTS: Lazy> = Lazy::new(|| { // Test redirect by prefix #[cfg(feature = "test-rules")] ("RUF96", "RUF95"), + // See: https://github.com/astral-sh/ruff/issues/10791 + ("PLW0117", "PLW0177"), ]) }); diff --git a/crates/ruff_linter/src/rules/pylint/rules/nan_comparison.rs b/crates/ruff_linter/src/rules/pylint/rules/nan_comparison.rs index 8f0cb708ac333..a095adb76ec4f 100644 --- a/crates/ruff_linter/src/rules/pylint/rules/nan_comparison.rs +++ b/crates/ruff_linter/src/rules/pylint/rules/nan_comparison.rs @@ -47,7 +47,7 @@ impl Violation for NanComparison { } } -/// PLW0117 +/// PLW0177 pub(crate) fn nan_comparison(checker: &mut Checker, left: &Expr, comparators: &[Expr]) { for expr in std::iter::once(left).chain(comparators.iter()) { if let Some(qualified_name) = checker.semantic().resolve_qualified_name(expr) { diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0117_nan_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0117_nan_comparison.py.snap deleted file mode 100644 index f9046fb384fa0..0000000000000 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0117_nan_comparison.py.snap +++ /dev/null @@ -1,82 +0,0 @@ ---- -source: crates/ruff_linter/src/rules/pylint/mod.rs ---- -nan_comparison.py:11:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -10 | # PLW0117 -11 | if x == float("nan"): - | ^^^^^^^^^^^^ PLW0117 -12 | pass - | - -nan_comparison.py:15:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -14 | # PLW0117 -15 | if x == float("NaN"): - | ^^^^^^^^^^^^ PLW0117 -16 | pass - | - -nan_comparison.py:19:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -18 | # PLW0117 -19 | if x == float("NAN"): - | ^^^^^^^^^^^^ PLW0117 -20 | pass - | - -nan_comparison.py:23:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -22 | # PLW0117 -23 | if x == float("Nan"): - | ^^^^^^^^^^^^ PLW0117 -24 | pass - | - -nan_comparison.py:27:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -26 | # PLW0117 -27 | if x == math.nan: - | ^^^^^^^^ PLW0117 -28 | pass - | - -nan_comparison.py:31:9: PLW0117 Comparing against a NaN value; use `math.isnan` instead - | -30 | # PLW0117 -31 | if x == bad_val: - | ^^^^^^^ PLW0117 -32 | pass - | - -nan_comparison.py:35:9: PLW0117 Comparing against a NaN value; use `np.isnan` instead - | -34 | # PLW0117 -35 | if y == np.NaN: - | ^^^^^^ PLW0117 -36 | pass - | - -nan_comparison.py:39:9: PLW0117 Comparing against a NaN value; use `np.isnan` instead - | -38 | # PLW0117 -39 | if y == np.NAN: - | ^^^^^^ PLW0117 -40 | pass - | - -nan_comparison.py:43:9: PLW0117 Comparing against a NaN value; use `np.isnan` instead - | -42 | # PLW0117 -43 | if y == np.nan: - | ^^^^^^ PLW0117 -44 | pass - | - -nan_comparison.py:47:9: PLW0117 Comparing against a NaN value; use `np.isnan` instead - | -46 | # PLW0117 -47 | if y == npy_nan: - | ^^^^^^^ PLW0117 -48 | pass - | diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap new file mode 100644 index 0000000000000..5630820c7aabb --- /dev/null +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap @@ -0,0 +1,82 @@ +--- +source: crates/ruff_linter/src/rules/pylint/mod.rs +--- +nan_comparison.py:11:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +10 | # PLW0117 +11 | if x == float("nan"): + | ^^^^^^^^^^^^ PLW0177 +12 | pass + | + +nan_comparison.py:15:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +14 | # PLW0117 +15 | if x == float("NaN"): + | ^^^^^^^^^^^^ PLW0177 +16 | pass + | + +nan_comparison.py:19:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +18 | # PLW0117 +19 | if x == float("NAN"): + | ^^^^^^^^^^^^ PLW0177 +20 | pass + | + +nan_comparison.py:23:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +22 | # PLW0117 +23 | if x == float("Nan"): + | ^^^^^^^^^^^^ PLW0177 +24 | pass + | + +nan_comparison.py:27:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +26 | # PLW0117 +27 | if x == math.nan: + | ^^^^^^^^ PLW0177 +28 | pass + | + +nan_comparison.py:31:9: PLW0177 Comparing against a NaN value; use `math.isnan` instead + | +30 | # PLW0117 +31 | if x == bad_val: + | ^^^^^^^ PLW0177 +32 | pass + | + +nan_comparison.py:35:9: PLW0177 Comparing against a NaN value; use `np.isnan` instead + | +34 | # PLW0117 +35 | if y == np.NaN: + | ^^^^^^ PLW0177 +36 | pass + | + +nan_comparison.py:39:9: PLW0177 Comparing against a NaN value; use `np.isnan` instead + | +38 | # PLW0117 +39 | if y == np.NAN: + | ^^^^^^ PLW0177 +40 | pass + | + +nan_comparison.py:43:9: PLW0177 Comparing against a NaN value; use `np.isnan` instead + | +42 | # PLW0117 +43 | if y == np.nan: + | ^^^^^^ PLW0177 +44 | pass + | + +nan_comparison.py:47:9: PLW0177 Comparing against a NaN value; use `np.isnan` instead + | +46 | # PLW0117 +47 | if y == npy_nan: + | ^^^^^^^ PLW0177 +48 | pass + | diff --git a/ruff.schema.json b/ruff.schema.json index 198970035e1f5..c236c4a936f29 100644 --- a/ruff.schema.json +++ b/ruff.schema.json @@ -3382,8 +3382,6 @@ "PLW01", "PLW010", "PLW0108", - "PLW011", - "PLW0117", "PLW012", "PLW0120", "PLW0127", @@ -3392,6 +3390,8 @@ "PLW013", "PLW0131", "PLW0133", + "PLW017", + "PLW0177", "PLW02", "PLW021", "PLW0211",