From 15b87ea8be1d080972b7a689ce7be4bbca1df400 Mon Sep 17 00:00:00 2001 From: Micha Reiser Date: Mon, 26 Feb 2024 18:22:35 +0100 Subject: [PATCH] E203: Don't warn about single whitespace before tuple , (#10094) --- .../resources/test/fixtures/pycodestyle/E20.py | 6 ++++++ .../logical_lines/extraneous_whitespace.rs | 8 ++++---- ...rules__pycodestyle__tests__E203_E20.py.snap | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pycodestyle/E20.py b/crates/ruff_linter/resources/test/fixtures/pycodestyle/E20.py index 7c76aa6ed14b0..2817f2ef9b6f8 100644 --- a/crates/ruff_linter/resources/test/fixtures/pycodestyle/E20.py +++ b/crates/ruff_linter/resources/test/fixtures/pycodestyle/E20.py @@ -147,3 +147,9 @@ #: E203:1:10 ham[upper :] + +#: Okay +ham[lower +1 :, "columnname"] + +#: E203:1:13 +ham[lower + 1 :, "columnname"] diff --git a/crates/ruff_linter/src/rules/pycodestyle/rules/logical_lines/extraneous_whitespace.rs b/crates/ruff_linter/src/rules/pycodestyle/rules/logical_lines/extraneous_whitespace.rs index a4134e51cbb96..3f568cf99dc06 100644 --- a/crates/ruff_linter/src/rules/pycodestyle/rules/logical_lines/extraneous_whitespace.rs +++ b/crates/ruff_linter/src/rules/pycodestyle/rules/logical_lines/extraneous_whitespace.rs @@ -213,11 +213,11 @@ pub(crate) fn extraneous_whitespace(line: &LogicalLine, context: &mut LogicalLin diagnostic.range(), ))); context.push_diagnostic(diagnostic); - } else if iter - .peek() - .is_some_and(|token| token.kind() == TokenKind::Rsqb) - { + } else if iter.peek().is_some_and(|token| { + matches!(token.kind(), TokenKind::Rsqb | TokenKind::Comma) + }) { // Allow `foo[1 :]`, but not `foo[1 :]`. + // Or `foo[index :, 2]`, but not `foo[index :, 2]`. if let (Whitespace::Many | Whitespace::Tab, offset) = whitespace { let mut diagnostic = Diagnostic::new( diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap index d92741af055a6..01c7ebc0713f6 100644 --- a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap +++ b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap @@ -231,6 +231,8 @@ E20.py:149:10: E203 [*] Whitespace before ':' 148 | #: E203:1:10 149 | ham[upper :] | ^^ E203 +150 | +151 | #: Okay | = help: Remove whitespace before ':' @@ -240,5 +242,21 @@ E20.py:149:10: E203 [*] Whitespace before ':' 148 148 | #: E203:1:10 149 |-ham[upper :] 149 |+ham[upper:] +150 150 | +151 151 | #: Okay +152 152 | ham[lower +1 :, "columnname"] +E20.py:155:14: E203 [*] Whitespace before ':' + | +154 | #: E203:1:13 +155 | ham[lower + 1 :, "columnname"] + | ^^ E203 + | + = help: Remove whitespace before ':' +ℹ Safe fix +152 152 | ham[lower +1 :, "columnname"] +153 153 | +154 154 | #: E203:1:13 +155 |-ham[lower + 1 :, "columnname"] + 155 |+ham[lower + 1:, "columnname"]