From 5192ed484bdbe507a8dd03dc31f93e4efec95b19 Mon Sep 17 00:00:00 2001 From: Zsolt Dollenstein Date: Tue, 17 Apr 2018 09:04:35 +0100 Subject: [PATCH 1/1] Parse complex expressions in parameters after * and ** --- black.py | 2 +- blib2to3/Grammar.txt | 4 ++-- blib2to3/Grammar3.6.5.final.0.pickle | Bin 15152 -> 15143 bytes tests/expression.diff | 11 ++++++++--- tests/expression.py | 6 ++++++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/black.py b/black.py index c3610c7..7c487f6 100644 --- a/black.py +++ b/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: diff --git a/blib2to3/Grammar.txt b/blib2to3/Grammar.txt index 4905c91..c9cb3a7 100644 --- a/blib2to3/Grammar.txt +++ b/blib2to3/Grammar.txt @@ -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] diff --git a/blib2to3/Grammar3.6.5.final.0.pickle b/blib2to3/Grammar3.6.5.final.0.pickle index 3a8d93d064336eeef658656eb2916ca35a9089ca..e9d5fabf717b9731ad6cd3524b4d09419a08cd78 100644 GIT binary patch delta 3404 zcmZuzdu*Fm70+?L)Q>n1zmnKV>^f;;H));6@~E38EnT|N-llmpZI|WgCQjnhq#3c> zt!!OZ9+f6O2~F1%5&~8b5)U!x6aj*N7*Y`uNNfX%A*P`+1_kk~1{z}&IOpEaS)%cW z&-w1}oclZXJihDi=H)M4Hl8w`t$V@vuA{j`!1cViPsui6yPi)^=S7<+zMfA_=i{PX z8M>s$AF_#V>2%IRj~opLJWXs+F1@@<^vGA-A^E(sXCoqMj>rHNeNKwv)1vC&oYluy z-Ql$*epWVva~C$wm#azD-%+xnLLrm~?a&T|(=KntP*2oEika4J5gyAZMrfk^@whdG z8Fdadg4~p8D?(g!s?c5XMp9hC}6E&HKfY%zBfMl+Syw zK}NRunn<<;+vUf7y}ti5k@6*9FAbjEKS{E}7qLIh5eKEY{({IWdUNbB}Mz=ee&=5nQ4w#W8-ye9jtao2LPeE!s|0M_=0<42)dSdJ zS?IzLbb$!EJ_KDGf-a4qpgV)655yGxLYmzRI0*9dv83SxJR!#$I?kTc(JFMb0N|7c zoEoSCOz!}y0Wa?WY59NyPj(g^6XSu2NpYEKvf z@|orcJ=GdbfD!rno@is-#?9bfa1t@V0S#1YAPzVpqfLR02@PBAX#rf(fR$z|)n^B= z4{$>Re$BKW@L3I1Yajvm83n`zxd=je650U2pxtV;TRY&_ZAJ2YJjh8I9aKJ*MO||P z{7@cl4)p&*`&&or0(`@w`j6Mbtp8 z1`YyN$i7%dSG|VoG<*oKR|EAL=%-QBKv)9a} zUDe(R?R^yR(l);t??<$`M4JZzpCev~E7DAmEp`QH;pR zRxf;$%mlQ<+F$DOREz2pue-|t(!+>@}ztdDT zK_kJP90Bya9~}h@DU{uK7sH%Tv@ zS$zVZleX^FGfC>=AyG>opL^+(vxWX2+Qj|T^Fg}DkBMgSfankpin#co*e{OLN9GCo z;t^t>I4N4ikf^86LqFZ^VY=Jv=xz_t-5wE>@>cib8;<$4)kkI**Vgl*%QSN7_0_!S zHtma-F3vBc7wPNUbdYg2n_JE0MX%|6G?QDlRtLr1?WKAg>x?4?XDO@Gd& zgUK{JV%q5}%tD_Zrc)iAyomg?=~$z<+B9z3wTaGu#x(R{rY&%d&N*YcQrRmP=V!AU zDz917F~5?^W>v;>rgI@ZzqX#rr5ExdW!f`~R>J2^M{fO!wU{?uk1l6c($;dpbXmLB w*0Xt$Hp_H`twJuEr3-60;+(yhTBXF6R2Uz};o>iw&TKBV&XwDIsW(;pKa2<-FaQ7m delta 3296 zcmZ`*TX36K5!T9bbhCVuY+14`S$1qIjxEQIe2e2acA6CDG)aAlbG04SmMv|qI9N*4 z&;}>dHV^IpKsaKU;enLP=?D(OMxjZlhRHnKnS$#p7YC% z2YAr#*>7)W_v|_Pzy8RJkJv8TzSR7Z?fVX~Q^3`{hzl#xPEm9WG$~b=TQ@RmNkK(YG@yjw|Veq9+yA$SJixt>}!RlZwttXG!a6wKfZ(qbYQD zPFQI37M7D{mEw$YODOt~q63QdD>|>}f}%-9cd1r9S5jTE$g(PANu55*i#D=GzZmd|7W;#bEBeLwZB)LtC}<}!$f0z7Bp`> zD}{Mu9ZyXGr8vqX&cj2~%hbX#`7kYFi~PXT13j{(GzKa8=ZctoqVy;3!fZ#yq?{vCQX9v#D~8Y^q0bM4>%a0nY=xfn5q}4eW~C-V^jb~&p2%I~ zcg^9qifOqV2vkk04p?|A8?zOcUkQZmaWyxcl572CAVMi_2i9mV$WlBg9}70Q)S7S0 z9{G)6h^o99Y;%qC!7(^4?*@Bee7(EYY9;5MdL)bM_1vG=>SJ_TAJ+HLdRr(&YkEuM z=@7!u`pwWg0ME*6;l7w1QeV527bOC+SM!G)kopcu^x&}Mgw*#wm0XZ|P5L5jws$Y( zqw-*+eUe`QaYVp*vMqtsKgrgkJw1^6grrg}l>%0R#X@d;=Q%oilmRv=R8(uTa=;Gx zY9tWfX&TdY7IeJ@U2Z{_TF{jibfM|J05MCypbk_CcmU*%_K^HmxYp(cd_aoEt`jG8 z@G>2|3UF2fbP2h*YQUvUfFJPDO+XFc=QU8FT>^kl5g-E%_m2euU((7}t*ixnWfM>b z`06I09`NQSAO!d`-uOss81N0P%IIhffNyJ{QUejdk2Z=dZUnpo@~yT;c_!9W+yq!+ zRT4Fzcq^day3vkiz=(WfYh$|t}Fz}2?`?$toK2BLry3W$m-YHdKbb{pU+ZDyWP z8{k+sweV+C zA=WhDx9`!K8IA#d_rKBOREthv<~;#;Ljw&u<4M5Z$dTCornfa5(eP=&_ceeTm;t;^ zcKU#30q-hdOJ`eUQL!3{Ms0Tn(7is|`8qiE!C@*i0@Bg-p8QAG$og>iTd?*AvKA%y zCuSaehgm7U%d8Cl!mJ!`F{{A8GONT7nR)ReWltP20mtQzky^W$A+HTZ940sMqn z5Mc|kS}bB#hsDh5(SC|~2%XHr=w{Y{9%d0NW7deZ%sOzC*(4rjHjBy+agL=7W|(~r zKg;YAUS{?TP1K!u=IEes(YIl(7!ljVKG7!bqwj?MbaV&kQNLfbh|h>FF(#topy&`n z#KZ%1w1-4H{ZVYEKZ<(#Wb@IB9-