Parse complex expressions in parameters after * and **
This commit is contained in:
parent
a764f1bb3b
commit
5192ed484b
2
black.py
2
black.py
@ -1364,7 +1364,7 @@ def whitespace(leaf: Leaf) -> str: # noqa C901
|
||||
if not prevp or prevp.type == token.LPAR:
|
||||
return NO
|
||||
|
||||
elif prev.type == token.EQUAL or prev.type == token.DOUBLESTAR:
|
||||
elif prev.type in {token.EQUAL, token.STAR, token.DOUBLESTAR}:
|
||||
return NO
|
||||
|
||||
elif p.type == syms.decorator:
|
||||
|
@ -138,8 +138,8 @@ arglist: argument (',' argument)* [',']
|
||||
# that precede iterable unpackings are blocked; etc.
|
||||
argument: ( test [comp_for] |
|
||||
test '=' test |
|
||||
'**' expr |
|
||||
star_expr )
|
||||
'**' test |
|
||||
'*' test )
|
||||
|
||||
comp_iter: comp_for | comp_if
|
||||
comp_for: [ASYNC] 'for' exprlist 'in' or_test [comp_iter]
|
||||
|
Binary file not shown.
@ -117,7 +117,7 @@
|
||||
]
|
||||
slice[0]
|
||||
slice[0:1]
|
||||
@@ -121,85 +135,119 @@
|
||||
@@ -121,88 +135,122 @@
|
||||
numpy[-(c + 1):, d]
|
||||
numpy[:, l[-2]]
|
||||
numpy[:, ::-1]
|
||||
@ -184,6 +184,12 @@
|
||||
|
||||
async def f():
|
||||
await some.complicated[0].call(with_args=(True or (1 is not 1)))
|
||||
-print(* [] or [1])
|
||||
+
|
||||
+
|
||||
+print(*[] or [1])
|
||||
print(**{1: 3} if False else {x: x for x in range(3)})
|
||||
-print(* lambda x: x)
|
||||
-for x, in (1,), (2,), (3,): ...
|
||||
-for y in (): ...
|
||||
-for z in (i for i in (1, 2, 3)): ...
|
||||
@ -226,8 +232,7 @@
|
||||
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
-):
|
||||
- return True
|
||||
+
|
||||
+
|
||||
+print(*lambda x: x)
|
||||
+for (x,) in (1,), (2,), (3,):
|
||||
+ ...
|
||||
+for y in ():
|
||||
|
@ -158,6 +158,9 @@ def gen():
|
||||
|
||||
async def f():
|
||||
await some.complicated[0].call(with_args=(True or (1 is not 1)))
|
||||
print(* [] or [1])
|
||||
print(**{1: 3} if False else {x: x for x in range(3)})
|
||||
print(* lambda x: x)
|
||||
for x, in (1,), (2,), (3,): ...
|
||||
for y in (): ...
|
||||
for z in (i for i in (1, 2, 3)): ...
|
||||
@ -402,6 +405,9 @@ async def f():
|
||||
await some.complicated[0].call(with_args=(True or (1 is not 1)))
|
||||
|
||||
|
||||
print(*[] or [1])
|
||||
print(**{1: 3} if False else {x: x for x in range(3)})
|
||||
print(*lambda x: x)
|
||||
for (x,) in (1,), (2,), (3,):
|
||||
...
|
||||
for y in ():
|
||||
|
Loading…
Reference in New Issue
Block a user