Skip to content

Commit

Permalink
fix: In subscripts, treat walruses just like other binary operators
Browse files Browse the repository at this point in the history
Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com>
  • Loading branch information
cobaltt7 committed Dec 13, 2023
1 parent 35ce37d commit 578f33e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@

<!-- Changes that affect Black's preview style -->

- Fix bug where spaces were not added around parenthesized walruses in subscripts,
unlike other binary operators (#4109)

### Configuration

<!-- Changes to how Black can be configured -->
Expand Down
6 changes: 5 additions & 1 deletion src/black/lines.py
Original file line number Diff line number Diff line change
Expand Up @@ -446,8 +446,12 @@ def is_complex_subscript(self, leaf: Leaf) -> bool:

if subscript_start.type == syms.subscriptlist:
subscript_start = child_towards(subscript_start, leaf)

test_decendants = TEST_DESCENDANTS
if Preview.walrus_subscript in self.mode:
test_decendants.add(syms.namedexpr_test)
return subscript_start is not None and any(
n.type in TEST_DESCENDANTS for n in subscript_start.pre_order()
n.type in test_decendants for n in subscript_start.pre_order()
)

def enumerate_with_length(
Expand Down
4 changes: 2 additions & 2 deletions tests/data/cases/preview_pep_572.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
x[:(a:=0)]

# output
x[(a := 0):]
x[:(a := 0)]
x[(a := 0) :]
x[: (a := 0)]

0 comments on commit 578f33e

Please sign in to comment.