f ddlZddlTddlmZmZddlmZmZmZdKdddd Z d Z dLdd d Z dZ dZ dMdZdZdZdNdZdZdZdddZdZGddeZGddeZeeds(dZd Zeeee_eeee_Gd!d"e Z!d#Z"Gd$d%ee!&Z#Gd'd(ee!&Z$Gd)d*ee!&Z%Gd+d,ee!&Z&Gd-d.ee!&Z'e#e(e)e*fe$e+fe%e,fe&e de-fe'e d/fiZ.e#e-fiZ/e-d,e dd,e(d%e)d%e*d%e+d(e,d*e d/d.iZ0Gd0d1e1Z2Gd2d3e2Z3Gd4d5e2Z4ee5d6sd7Z6d8Z7ee6e7e5_8Gd9d:e9Z:Gd;de;Z=Gd?d@e;Z>dAe?ej@jAdzzZBeeGdBdCZCdDZDdEZEgeDeERZFGdFdGeZGdHZHdIZIeJdJkr eIdSdS)ON)*)contextmanager nullcontext)IntEnumauto _simple_enum execF) type_commentsfeature_versionc t}|r |tz}t|tr|\}}|}n|d}t |||||S)N)_feature_version) PyCF_ONLY_ASTPyCF_TYPE_COMMENTS isinstancetuplecompile)sourcefilenamemoder r flagsmajorminors */opt/alt/python311/lib64/python3.11/ast.pyparser!sp E$ ##/5))& u   68T5$3 5 5 55c t|tr$t|dd}t|tr|j}dfdfdfd|S)Nz evalrcfd}t|ddx}r|d|z }t|d|z)Nzmalformed node or stringlinenoz on line : )getattr ValueError)nodemsglnos r_raise_malformed_nodez+literal_eval.._raise_malformed_nodeCsL($$// /3 % $s$$ $C}D}},---rct|tr(t|jtt t fvr ||jSN)rConstanttypevalueintfloatcomplex)r&r)s r _convert_numz"literal_eval.._convert_numHsJ$)) (T$*-=-=c5RYEZ-Z-Z ! !$ ' ' 'zrct|trQt|jttfr0|j}t|jtr| S| S|Sr+)rUnaryOpopUAddUSuboperand)r&r8r2s r_convert_signed_numz)literal_eval.._convert_signed_numLsq dG $ $ !DGdD\)J)J !"l4<00G$'4(( ! y  y |D!!!rc t|tr|jSt|tr"t t |jSt|tr"tt |jSt|tr"tt |jSt|trRt|j tr8|j jdkr(|j|jcxkrgkrnntSt|t"rxt%|jt%|jkr |t+t-t |jt |jSt|t.rt|jt2t4fru|j}|j}t|t:t<fr9t|t>r$t|jt2r||zS||z S|S)Nset) rr,r.TuplermapeltsListlistSetr;CallfuncNameidargskeywordsDictlenkeysvaluesdictzipBinOpr5AddSubleftrightr/r0r1)r&rQrR_convertr2r9r)s rrSzliteral_eval.._convertTs* dH % % (:  e $ $ (Xty1122 2 d # # (Hdi0011 1 c " " (s8TY//00 0t$$ (DIt)D)D (ile## T](H(H(H(Hb(H(H(H(H(H55L d # # (49~~T[!1!111%%d+++C$)44$+668899 9 e $ $ (DGc3Z)H)H (&&ty11D L,,E$e -- (*UG2L2L (dgs++(%<'%<'""4(((r)rstrrlstrip Expressionbody)node_or_stringrSr2r9r)s @@@@r literal_evalrY6s.#&&J~44U;;&III.*---',... """""))))))))4 8N # ##rT)indentc dfd t|tstd|jjztt sdz|dS)Nrcdz dzz}dzz}nd}d}t|trzt|}g}d} }|jD]} t ||} n#t $rd}Y"wxYw| t ||dd}< | \} } |o| }|r||d| l||  rt|jrm|jD]e} t ||} n#t $rY wxYw| t ||d8 | \} } |o| }||d| f|r;t|d kr(|j j d d |d | fS|j j d || |d d fSt|tr.|sd Sd|| fd|Ddd fSt|dfS)N z, , T.=()F)z[]T[c3<K|]}|dVdSrN).0x_formatlevels r z(dump.._format..s4/S/S50A0A!0D/S/S/S/S/S/Sr])rASTr-_fieldsr$AttributeErrorappend _attributesrI __class____name__joinr@repr)r&rlprefixsepclsrF allsimplerGnamer.simplerkannotate_fieldsinclude_attributesrZs ` rrkzdump.._format}s   QJEFUN*F&5.(CCFC dC % \t**CDI&H  ' '#D$//EE%#HH=WS$%<%<%D#H 'u 5 5 v%0& 'KK444 78888KK&&&&! 9d&6 9 , 9 9D! 'd 3 3)!!! !}dC)@)@)H $+GE5$9$9ME6 ) 4fIKK444 78888 WSYY!^^#'>#:#:#:DIIdOOOOLRVhVV!%!8!8!8&&#((4....QSXX X d # # \ "!z "%vsxx/S/S/S/S/Sd/S/S/S'S'S'S'STV[[ [Dzz4s$A%% A43A4&C77 DDzexpected AST, got %r )r)rro TypeErrorrtrurT)r&r~rrZrks ```@rdumprqs . . . . . . . . . ` dC J.1HHIII *VS"9"9v 74== rc dD]]}||jvrR||jvrIt||d}|%t||r&|drt |||^|S)N)r" col_offset end_linenoend_col_offsetend_)rsr$hasattr startswithsetattr)new_nodeold_nodeattrr.s r copy_locationrsG// 8' ' 'DH4H,H,HHdD11E $''!,0OOF,C,C!$... Orc2 fd|dddd|S)Ncd|jvrt|ds||_n|j}d|jvr t|dd||_n|j}d|jvrt|ds||_n|j}d|jvr t|dd||_n|j}t|D]}|||||dS)Nr"rrr)rsrr"r$rrriter_child_nodes)r&r"rrrchild_fixs rrz#fix_missing_locations.._fixs t' ' '4** %$  4+ + +t\4008",!_ 4+ + +4.. -",!_ t/ / /t-t44<&4##!%!4%d++ H HE D J G G G G H Hrr]rrh)r&rs @rfix_missing_locationsrsEHHHHH. Dq!Q Krr]c t|D]y}t|trt|dd|z|_1d|jvrt|dd|z|_d|jvrt|ddx} ||z|_z|S)Nr"rr)walkr TypeIgnorer$r"rsr)r&nrrs rincrement_linenors d . . eZ ( ( "5(A66:EL  u( ( ("5(A66:EL E- - -&ulA>>>K)A~E  Krc#jK |jD]'} |t||fV#t$rY$wxYwdSr+)rpr$rq)r&fields r iter_fieldsrsk u--- - - - -    D s # 00c#K t|D]R\}}t|tr|Vt|tr|D]}t|tr|VSdSr+)rrror@)r&r|ritems rrr s#4(( e eS ! ! KKKK t $ $   dC((JJJ rc t|ttttfst d|jjz|jr t|jdtsdS|jdj }t|tr|j }n9t|tr"t|j tr|j }ndS|rddl}||}|S)Nz%r can't have docstringsr)rAsyncFunctionDef FunctionDefClassDefModulerrtrurWExprr.Strsr,rTinspectcleandoc)r&cleantextrs r get_docstringrs d-{HfM N NN2T^5LLMMM 9DIaL$77t 9Q< D$v D( # # 4:s(C(Czt &%% KrcF d}g}d}|t|kro||}||z }|dz }|dkr)|t|kr||dkr |dz }|dz }|dvr||d}|t|ko|r|||S)Nrr_r] r^z )rIrr)ridxlines next_linecs r_splitlines_no_ffr3s C EI F   3KQ  q 99s6{{**vc{d/B/B  I 1HC ;; LL # # #I F    Y Lrc4 d}|D]}|dvr||z } |dz }|S)Nr_z rrh)rresultrs r_pad_whitespacerLs=A F  ;; aKFF cMFF Mr)paddedc |j|jdS|jdz }|jdz }|j}|j}n#t$rYdSwxYwt |}||kr4||||S|rBt||d|}nd}||||dz} ||d|} ||dz|}| d| | | d |S)Nr]r_r) rrr"rrqrencodedecoderinsertrrrv) rr&rr"rrrrpaddingfirstlasts rget_source_segmentrWs ? "d&9&A4q_q( _ , tt f % %EVV}##%%j&?@GGIII !%-"6"6"8"8*"E"L"L"N"NOO eFm**,,Z[[9@@BB BE   # # % %o~o 6 = = ? ?D &(:% &E LLE LL 775>>s6"6 AAc#K ddlm}||g}|r>|}|t ||V|*>sB*G*GHHH"   uu %%c4000sA.. A<;A<N)rurrrrrhrrrrs5PPP 1 1 1 1 1rrc|D]R}||jvr |j|}|t|krt|jd|S|t vr t |i|St j|g|Ri|S)Nz" got multiple values for argument )rpindexrIrrurr,__new__)rzrFkwargskeyposs r_newr"sXX ck ! ! k$$ T??s|VVsVVWW W  l((((  C 1$ 1 1 1& 1 11rceZdZdZeZdS)Num)rNrurrrprrrhrrrr.GGGGrr) metaclassceZdZdZeZdS)rrNrrhrrrr2rrrceZdZdZeZdS)BytesrNrrhrrrr6rrrceZdZeZdS) NameConstantN)rurrrrrhrrrr:sGGGrrceZdZdZdZdS)Ellipsisrhc^|turtdg|Ri|Stj|g|Ri|S)N.)rr,r)rzrFrs rrzEllipsis.__new__@sJ (??C1$111&11 15d555f555rN)rurrrprrhrrrr=s(G66666rr.ceZdZdS)sliceNrurrrhrrrr[s$$rrceZdZ dZdS)Indexc |Sr+rh)rzr.rs rrz Index.__new__`s rNrurrrrhrrr r ^s&Jrr ceZdZ ddZdS)ExtSlicerhc Ptt|tfi|Sr+)r<r@Load)rzdimsrs rrzExtSlice.__new__es$T$ZZ226222rN)rhr rhrrrrcs+;333333rrrc |jSr+r>rs r _dims_getterrms +yrc||_dSr+rrs r _dims_setterrqs  rceZdZdS)SuiteNr rhrrrrv99rrceZdZdS)AugLoadNr rhrrrryrrrceZdZdS)AugStoreNr rhrrrr|rrrceZdZdS)ParamNr rhrrr r rrr 1eceZdZ eZeZeZeZeZeZ eZ eZ eZ e Z eZeZeZeZeZeZeZeZeZdZdS) _PrecedencecX ||dzS#t$r|cYSwxYwNr])rtr%rs rnextz_Precedence.nextsA >>$(++ +   KKK s  ))N)rurrr NAMED_EXPRTUPLEYIELDTESTORANDNOTCMPEXPRBORBXORBANDSHIFTARITHTERMFACTORPOWERAWAITATOMr&rhrrr#r#s?J DFFE DFFE 466D B $&&C $&&C $&&C 466D C 466D 466D DFFE DFFE 466D TVVF DFFE DFFE 466Drr#)'")z"""'''ceZdZ dddZdZdZdZddZd Ze dd Z e d d d Z e dZ dZ dZdZdZdZdZfdZdZdZdZdZdZdZdZdZdZdZd Zd!Zd"Z d#Z!d$Z"d%Z#d&Z$d'Z%d(Z&d)Z'd*Z(d+Z)d,Z*d-Z+d.Z,d/Z-d0Z.d1Z/d2Z0d3Z1d4Z2d5Z3d6Z4d7Z5d8Z6d9Z7d:Z8d;Z9e:dd<d=Z;e:d>d?ZdBZ?dCZ@dDZAdEZBdFZCdGZDdHZEdIZFdJZGdKZHdLZIdMZJdNZKdOZLdPZMdQdRdSdTdUZNeOjPeOjQeOjQeOjQdVZRdWZSdSdTdXdYdZd[d\d]d^d_d`dadbdc ZTeOjUeOjUeOjVeOjVeOjVeOjVeOjWeOjWeOjXeOjYeOjZeOjVeOj[dd Z\e]deZ^dfZ_dgdhdidjdkdldmdndodpdq Z`drZadsdtduZbeOjceOjddvZedwZfdxZgdyZhdzZid{Zjd|Zkd}Zld~ZmdZndZodZpdZqdZrdZsdZtdZudZvdZwdZxdZydZzdZ{dZ|xZ}S) _UnparserF_avoid_backslashescZg|_i|_i|_d|_||_d|_dS)NrF)_source _precedences _type_ignores_indentr@ _in_try_star)rr@s rrz_Unparser.__init__s6  "4!rc t|} |t||D]}|||dS#t$rYdSwxYwr+)iterr& StopIteration)rinterfseqrjs r interleavez_Unparser.interleavesE3ii  Ad3iiLLL  !      DD sA AAc t|dkr(||dddSfd||dS)Nr]r,c.dSNr`writersrz&_Unparser.items_view..DJJt$4$4r)rIrSrM)r traverserrs` r items_viewz_Unparser.items_viewsf  u::?? IeAh    JJsOOOOO OO4444i G G G G GrcD |jr|ddSdS)Nr^)rBrSrs r maybe_newlinez_Unparser.maybe_newlines1F <  JJt       rr_cp ||d|jz|zdS)Nz )rYrSrErrs rfillz_Unparser.fills=   6DL(4/00000rc< |j|dSr+)rBrr[s rrSz_Unparser.writes!" D!!!!!rNc#DK|g}|j}||_|V||_dSr+)rB)rbufferoriginal_sources rbufferedz_Unparser.buffereds2 >F,  & rextrac#K |d|r|||xjdz c_dV|xjdzc_dS)N:r])rSrE)rrcs rblockz_Unparser.blocksc 3   JJu        rc#hK ||dV||dSr+rR)rstartends rdelimitz_Unparser.delimits< G 5  3rcN|r|||StSr+)rjr)rrhri conditions r delimit_ifz_Unparser.delimit_ifs(  !<<s++ +== rc` |dd|||kSNrcrd)rmget_precedence)r precedencer&s rrequire_parensz_Unparser.require_parenss.:sC)<)$((55J9J  (w(( (  rct|tr|D]}||dSt|dSr+)rr@traversesuperr)rr&rrts rrz_Unparser.traverse$sa dD ! !  $ $ d#### $ $ GGMM$     rcp g|_||d|jS)Nr_)rBrrvrts rrz_Unparser.visit.s5 G  dwwt|$$$rc||x}r9||||jdddS||jdSr%)ry_write_docstringrrW)rr& docstrings r"_write_docstring_and_traverse_bodyz,_Unparser._write_docstring_and_traverse_body5sm//55 5I %  ! !) , , , MM$)ABB- ( ( ( ( ( MM$) $ $ $ $ $rcd|jD|_|||jdS)Nc.i|]}|jd|jS)ignore)r"tag)rirs r z*_Unparser.visit_Module..=s7    M0FJ00   r) type_ignoresrDrclearrts r visit_Modulez_Unparser.visit_Module<sW  +    //555   """""rc dd5fdj|jdddn #1swxYwYd|jdS)Nrcrdc.dSrQrRrsrrTz._Unparser.visit_FunctionType..G 4((r -> )rjrMrargtypesrSreturnsrts` rvisit_FunctionTypez_Unparser.visit_FunctionTypeDs \\#s # #   OO(((($-                   6 dl#####s%A  A A c||tj|j||jdSr+)r\rwr#r)r.rrts r visit_Exprz_Unparser.visit_ExprMsD  K-tz::: dj!!!!!rc`|tj|5|tj|j|j||j|d||jddddS#1swxYwYdS)Nz := ) rrr#r'rwr9targetr.rrSrts rvisit_NamedExprz_Unparser.visit_NamedExprRs  !7 > > & &    0$+tz J J J MM$+ & & & JJv    MM$* % % %  & & & & & & & & & & & & & & & & & &sA5B##B'*B'czdfdj|jdS)Nzimport c.dSrQrRrsrrTz(_Unparser.visit_Import..[ 4 0 0r)r\rMrnamesrts` r visit_Importz_Unparser.visit_ImportYs? ) 0000$-LLLLLrc$dd|jpdz|jr|jdfdj|jdS)Nzfrom .rz import c.dSrQrRrsrrTz,_Unparser.visit_ImportFrom..crr)r\rSrlmodulerMrrrts` rvisit_ImportFromz_Unparser.visit_ImportFrom]s ' 3$*/*+++ ; $ JJt{ # # # : 0000$-LLLLLrcf||jD]L}|tj||||dM||j||x}r||dSdS)N = ) r\targetsrwr#r(rrSr.r})rr&rr{s r visit_Assignz_Unparser.visit_Assignes l  F    16 : : : MM& ! ! ! JJu     dj!!!0066 6< % JJ| $ $ $ $ $ % %rc|||j|d|j|jjjzdz||jdS)Nrz= ) r\rrrSbinopr5rtrur.rts rvisit_AugAssignz_Unparser.visit_AugAssignosh  dk""" 3DG$5$>??$FGGG dj!!!!!rc||dd|j ot|jt 5||jdddn #1swxYwY|d||j|j r1|d||j dSdS)Nrcrdr#r) r\rmr}rrrDrrS annotationr.rts rvisit_AnnAssignz_Unparser.visit_AnnAssignus  __S#4;'X:dkSW;X;X Y Y ' ' MM$+ & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 4 do&&& : & JJu    MM$* % % % % % & &s A33A7:A7c|d|jr1|d||jdSdS)Nreturnr)r\r.rSrrts r visit_Returnz_Unparser.visit_ReturnsQ ( : & JJsOOO MM$* % % % % % & &rc0|ddS)Npassr\rts r visit_Passz_Unparser.visit_Passs &rc0|ddS)Nbreakrrts r visit_Breakz_Unparser.visit_Breaks 'rc0|ddS)Ncontinuerrts rvisit_Continuez_Unparser.visit_Continues *rczdfdj|jdS)Nzdel c.dSrQrRrsrrTz(_Unparser.visit_Delete..rr)r\rMrrrts` r visit_Deletez_Unparser.visit_Deletes? & 0000$-NNNNNrc|d||j|jr1|d||jdSdS)Nzassert r`)r\rtestr'rSrts r visit_Assertz_Unparser.visit_Assertsh ) di   8 $ JJt    MM$( # # # # # $ $rczdfdj|jdS)Nzglobal c.dSrQrRrsrrTz(_Unparser.visit_Global..rrr\rMrSrrts` r visit_Globalz_Unparser.visit_Globals? ) 0000$*djIIIIIrczdfdj|jdS)Nz nonlocal c.dSrQrRrsrrTz*_Unparser.visit_Nonlocal..rrrrts` rvisit_Nonlocalz_Unparser.visit_Nonlocals? + 0000$*djIIIIIrcX|tj|5|d|jrT|d|tj|j||jddddS#1swxYwYdS)Nawaitr)rrr#r8rSr.rwr9rrts r visit_Awaitz_Unparser.visit_Await  !2D 9 9 * * JJw   z * 3##K$4djAAA dj)))  * * * * * * * * * * * * * * * * * *A1BB#&B#cX|tj|5|d|jrT|d|tj|j||jddddS#1swxYwYdS)Nyieldr)rrr#r)rSr.rwr9rrts r visit_Yieldz_Unparser.visit_YieldrrcL|tj|5|d|jst d|tj|j||jddddS#1swxYwYdS)Nz yield from z-Node can't be used without a value attribute.) rrr#r)rSr.r%rwr9rrts rvisit_YieldFromz_Unparser.visit_YieldFroms  !2D 9 9 & & JJ} % % %: R !PQQQ    0$* = = = MM$* % % %  & & & & & & & & & & & & & & & & & &sA+BB Bc<|d|js|jrtddS|d||j|jr1|d||jdSdS)Nraisez*Node can't use cause without an exception.rz from )r\exccauser%rSrrts r visit_Raisez_Unparser.visit_Raises 'x z P !NOOO F 3 dh : & JJx MM$* % % % % % & &rc|d|5||jdddn #1swxYwY|jD]}|||jr[|d|5||jdddn #1swxYwY|jr^|d|5||jddddS#1swxYwYdSdS)Ntryelsefinally)r\rfrrWhandlersorelse finalbody)rr&exs r do_visit_tryz_Unparser.do_visit_trys % ZZ\\ % % MM$) $ $ $ % % % % % % % % % % % % % % %-  B MM"     ; + IIf    + + dk*** + + + + + + + + + + + + + + + > . IIi  . . dn--- . . . . . . . . . . . . . . . . . . . .s5AAA+CCC D55D9<D9ct|j} d|_||||_dS#||_wxYw)NFrFrrr&prev_in_try_stars r visit_Tryz_Unparser.visit_TrysO, 1 %D    d # # # 0D    0D  0 0 0 0. 7ct|j} d|_||||_dS#||_wxYw)NTrrs r visit_TryStarz_Unparser.visit_TryStarsO, 1 $D    d # # # 0D    0D  0 0 0 0rc||jrdnd|jr/|d||j|jr/|d||j|5||jddddS#1swxYwYdS)Nzexcept*exceptr as )r\rFr-rSrr|rfrWrts rvisit_ExceptHandlerz_Unparser.visit_ExceptHandlers t0>))h??? 9 % JJsOOO MM$) $ $ $ 9 " JJv    JJty ! ! ! ZZ\\ % % MM$) $ $ $ % % % % % % % % % % % % % % % % % %sCC C c||jD],}|d||-|d|jz|dd|jp|j5d}|jD]1}|r|dnd}||2|jD]1}|r|dnd}||2 dddn #1swxYwY| 5| |ddddS#1swxYwYdS) N@zclass rcrd)rlFr`T) rYdecorator_listr\rr|rmbasesrGrSrfr)rr&decocommaes rvisit_ClassDefz_Unparser.visit_ClassDefs '  D IIcNNN MM$     (TY&''' __S#4:3N_ O O ! !EZ ! !!JJt$$$$ E a    ] ! !!JJt$$$$ E a     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !ZZ\\ : :  3 3D 9 9 9 : : : : : : : : : : : : : : : : : :s% A5D  DD+EEEc2||ddS)Ndef_function_helperrts rvisit_FunctionDefz_Unparser.visit_FunctionDefs dE*****rc2||ddS)Nz async defrrts rvisit_AsyncFunctionDefz _Unparser.visit_AsyncFunctionDef s dK00000rc||jD],}|d||-|dz|jz}|||dd5||jdddn #1swxYwY|jr/|d||j| | |5| |ddddS#1swxYwYdS)Nrrrcrdrrb) rYrr\rr|rjrFrrSrfr}r)rr& fill_suffixrdef_strs rrz_Unparser._function_helper s '  D IIcNNN MM$    #di/ ' \\#s # # % % MM$) $ $ $ % % % % % % % % % % % % % % % < ( JJv    MM$, ' ' ' ZZd33D99Z : : : :  3 3D 9 9 9 : : : : : : : : : : : : : : : : : :s$B((B,/B,D55D9<D9c2|d|dS)Nzfor  _for_helperrts r visit_Forz_Unparser.visit_Fors &&&&&rc2|d|dS)Nz async for rrts rvisit_AsyncForz_Unparser.visit_AsyncFors t,,,,,rc|||tj|j||j|d||j|| |5||j dddn #1swxYwY|j r^|d|5||j ddddS#1swxYwYdSdS)N in rbr) r\rwr#r(rrrSrHrfr}rWr)rr\r&s rrz_Unparser._for_helper"s $ K-t{;;; dk""" 6 di   ZZd33D99Z : : % % MM$) $ $ $ % % % % % % % % % % % % % % % ; + IIf    + + dk*** + + + + + + + + + + + + + + + + + + + +s$-CCCD77D;>D;c|d||j|5||jdddn #1swxYwY|jrt |jdkrt|jdtr|jd}|d||j|5||jdddn #1swxYwY|jr8t |jdkr t|jdt|jr^|d|5||jddddS#1swxYwYdSdS)Nzif r]rzelif r) r\rrrfrWrrIrIfrts rvisit_Ifz_Unparser.visit_If/sa % di   ZZ\\ % % MM$) $ $ $ % % % % % % % % % % % % % % %k )c$+..!33 4;q>SU8V8V3;q>D IIg    MM$) $ $ $ ) ) di((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) k )c$+..!33 4;q>SU8V8V3 ; + IIf    + + dk*** + + + + + + + + + + + + + + + + + + + +s6A++A/2A/D,,D03D0&GGGc|d||j|5||jdddn #1swxYwY|jr^|d|5||jddddS#1swxYwYdSdS)Nzwhile r)r\rrrfrWrrts r visit_Whilez_Unparser.visit_WhileAsK ( di   ZZ\\ % % MM$) $ $ $ % % % % % % % % % % % % % % % ; + IIf    + + dk*** + + + + + + + + + + + + + + + + + + + +s$A++A/2A/&CCCc2dfdj|j|5|jddddS#1swxYwYdS)Nzwith c.dSrQrRrsrrTz&_Unparser.visit_With..Mrrrbr\rMrrrfr}rWrts` r visit_Withz_Unparser.visit_WithKs ' 0000$-LLL ZZd33D99Z : : % % MM$) $ $ $ % % % % % % % % % % % % % % % % % %$B  BBc2dfdj|j|5|jddddS#1swxYwYdS)Nz async with c.dSrQrRrsrrTz+_Unparser.visit_AsyncWith..Srrrbr rts` rvisit_AsyncWithz_Unparser.visit_AsyncWithQs -    0000$-LLL ZZd33D99Z : : % % MM$) $ $ $ % % % % % % % % % % % % % % % % % %r quote_typesescape_special_whitespacec fd}dt||}dvr d|D}fd|D}|s>ttfd|Dd}dd |gfSrG|fd  |ddd krdd d zd z|fS) Ncs|dvr|S|dks|s(|ddS|S)Nz \unicode_escapeascii) isprintablerr)rrs r escape_charz2_Unparser._str_literal_helper..escape_char]sU- fDyy yxx 01188AAAHrr_r^c$g|] }|tv |Srh) _MULTI_QUOTES)riqs r z1_Unparser._str_literal_helper..js"PPPQQ-=O=Oq=O=O=Orcg|]}|v| Srhrh)rirescaped_strings rr z1_Unparser._str_literal_helper..ks#QQQ.9P9P19P9P9Prc30K|]}d|v |VdSrgrh)rirstrings rrmz0_Unparser._str_literal_helper..qs+CCF1INN!NNNNCCrrr]rc(|ddkS)Nrrrh)rr"s rrTz/_Unparser._str_literal_helper..usqt~b7I/Ir)rr)rvr=rwr&sort)rr$rrrpossible_quotesquoter"s ` ` @r_str_literal_helperz_Unparser._str_literal_helperWs<      [&!9!9::% > ! !PP/PPPOQQQQoQQQ )&\\FCCCC[CCCVAYOOE!B$<%( (  Q  %I%I%I%I J J Jq!!$r(:::!/!4t!;nR>P!P..rrc |||\}}|d}||||dS)Nr*r)r)rS)rr$r quote_types r_write_str_avoiding_backslashesz)_Unparser._write_str_avoiding_backslashes}sSY"66v;6WW  ^  j6&6*6677777rcB|d|jri|5}||dddn #1swxYwY|d|Sg}|jD]}|5}||dddn #1swxYwY|d|t|tfg}tt}d}|D]]\}}| |||\}} ||t| |rd}n| }^|r]dg}||D]C\}}t!d|z}d} ||t#| d Dd|}|d } || || dS) NrKr_FrTr<r;z'"rr)rSr@ra_write_fstring_innerr-rvrKrrrr,r@ _ALL_QUOTESr)r; isdisjointrrwrI) rr&r_ fstring_partsr.new_fstring_partsrfallback_to_repr is_constantnew_quote_typesexpected_prefixr,s rvisit_JoinedStrz_Unparser.visit_JoinedStrs 3  " I 0F))$/// 0 0 0 0 0 0 0 0 0 0 0 0 0 0 077HH H [  E 1F))%000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  *UH"="=>    ;''  "/ * * E;%)%=%='*5&>&& "E?  $ $U + + +?##..{;; #' )KK  I!'K  # # % % %&3 I I"{S5[))"'!((s?/C/CB/F)GHHHH)** ^  j5%55566666s#AAA%CC C ct|tr!|jD]}||dSt|tr`t|jt rF|jdddd}||dSt|tr| |dStd|)N{z{{}z}}z"Unexpected node inside JoinedStr, ) r JoinedStrrKr/r,r.rTreplacerSFormattedValuevisit_FormattedValuer%rr&r.s rr/z_Unparser._write_fstring_inners dI & & L 1 1))%0000 1 1 h ' ' LJtz3,G,G LJ&&sD1199#tDDE JJu      n - - L  % %d + + + + +J$JJKK Krc fd}dd5||j}d|vrtd|drd||jdkr*dt |j|jr/d |jddddS#1swxYwYdS) Nctd}|tj|||S)NTr?)r-rwr#r*r&r)innerunparserrs r unparse_innerz5_Unparser.visit_FormattedValue..unparse_innersR!tDzzT:::H  # #K$4$9$9$;$;U C C C>>%(( (rr:r;rz5Unable to avoid backslash in f-string expression partrr!re) rjr.r%rrS conversionchr format_specr/)rr&rEexprs` rr?z_Unparser.visit_FormattedValues_ ) ) ) ) ) \\#s # # < < =,,Dt|| Ks##  3 JJt   "$$ 5s4?3355666 < 3))$*:;;; < < < < < < < < < < < < < < < < < .rUr)rjrMrr>rts` r visit_Listz_Unparser.visit_Lists \\#s # # P P OO4444dmTY O O O P P P P P P P P P P P P P P P P P P%A  AAc|dd5||j|jD]}|| ddddS#1swxYwYdS)Nrernrjrelt generatorsrr&gens rvisit_ListCompz_Unparser.visit_ListComp \\#s # # # # MM$( # # # # # c"""" # # # # # # # # # # # # # # # # # # #:AA#&A#c|dd5||j|jD]}|| ddddS#1swxYwYdSror]r`s rvisit_GeneratorExpz_Unparser.visit_GeneratorExprcrdc|dd5||j|jD]}|| ddddS#1swxYwYdS)Nr:r;r]r`s r visit_SetCompz_Unparser.visit_SetComp rcrdc6|dd5||j|d||j|jD]}|| ddddS#1swxYwYdS)Nr:r;r#)rjrrrSr.r_r`s rvisit_DictCompz_Unparser.visit_DictComps \\#s # # # # MM$( # # # JJt    MM$* % % % # # c"""" #  # # # # # # # # # # # # # # # # # #sA)BBBc|jr|dn|d|tj|j||j|d|jtj|j g|j R||j |j D],}|d||-dS)Nz async for z for r if ) is_asyncrSrwr#r(rrr*r&rHifs)rr& if_clauses rvisit_comprehensionz_Unparser.visit_comprehensions = JJ} % % % % JJw    K-t{;;; dk""" 6K,1133TYJJJJJ di    % %I JJv    MM) $ $ $ $ % %rc,|tj|5|tj|j|j||j|d||j|d|tj|j ||j ddddS#1swxYwYdS)Nrlz else ) rrr#r*rwr&rWrrrSrrts r visit_IfExpz_Unparser.visit_IfExp(s%  !14 8 8 ' '    0 5 5 7 7DI N N N MM$) $ $ $ JJv    MM$) $ $ $ JJx    0$+ > > > MM$+ & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sCD  D D c|jrUdd5fdj|jddddS#1swxYwYdSddS)Nr:r;c.dSrQrRrsrrTz%_Unparser.visit_Set..5s 4(8(8rz{*()})r>rjrMrrSrts` r visit_Setz_Unparser.visit_Set2s 9 c3'' T T 8 8 8 8$-SSS T T T T T T T T T T T T T T T T T T JJw     s%AAAc fdfd}dd5fd|t|j|jddddS#1swxYwYdS)Nc|d|dSNr#rrS)kvrs rwrite_key_value_pairz2_Unparser.visit_Dict..write_key_value_pair<s? MM!    JJt    MM!     rc|\}}|Ldtj||dS||dS)N**)rSrwr#r/r)rrzr{rr|s r write_itemz(_Unparser.visit_Dict..write_itemAsoDAqy 4   ##K$4a888 a     $$Q*****rr:r;c.dSrQrRrsrrTz&_Unparser.visit_Dict..Nrr)rjrMrMrJrK)rr&rr|s` @r visit_Dictz_Unparser.visit_Dict;s      + + + + + +\\#s # #   OO((((*c$)T[6Q6Q                     s3A$$A(+A(c|ddt|jdkp"||tjk5||j|jddddS#1swxYwYdS)Nrcrdr)rmrIr>rpr#r(rWrrts r visit_Tuplez_Unparser.visit_TupleQs __    NNa  P4#6#6t#<#<{?P#P   6 6 OODM49 5 5 5  6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s!A??BB~not+rS)InvertNotr6r7)rrrrSc|j|jjj}|j|}|||5|||tjur|d| ||j | |j ddddS#1swxYwYdSNr) unopr5rtruunop_precedencerrrSr#r6rwr8r)rr&operatoroperator_precedences r visit_UnaryOpz_Unparser.visit_UnaryOpas9TW.78"28<  !4d ; ; ( ( JJx #+*<<< 3    3T\ B B B MM$, ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sA.B;;B?B?rr/%<<>>|^&//r~) rOrPMultMatMultDivModLShiftRShiftBitOrBitXorBitAndFloorDivPow) rrSrrrrrrrrrrr~)r~c(|j|jjj}|j|}|||5||jvr|}|}n|}|}|||j | |j | d|d|||j | |j ddddS#1swxYwYdSr) rr5rtrubinop_precedencerr binop_rassocr&rwrQrrSrR)rr&rrleft_precedenceright_precedences r visit_BinOpz_Unparser.visit_BinOpsQ:dg/89"3H=  !4d ; ; & &4,,,"5":":"<"<#6  "5#6#;#;#=#=    ; ; ; MM$) $ $ $ JJ8 ' ' '    0$* = = = MM$* % % % & & & & & & & & & & & & & & & & & &sB:DD D z==z!=z>=iszis notinznot in) EqNotEqLtLtEGtGtEIsIsNotInNotInc|tj|5|jtj|jg|jR||jt|j |jD]J\}}| d|j |j j zdz||K ddddS#1swxYwYdSr)rrr#r.rwr&rQ comparatorsrrMopsrScmpopsrtru)rr&ors r visit_Comparez_Unparser.visit_Compares&  $ 7 7 ! ! D   4 4 6 6 UDDT U U U U MM$) $ $ $DHd&677 ! !1 3Q[-A!BBSHIII a     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sB5C$$C(+C(andor)AndOr)rrcj|jjj}j|fd}|5d|dfd||jddddS#1swxYwYdS)Nc||dSr+)r&rwr)r&rrs rincreasing_level_traversez9_Unparser.visit_BoolOp..increasing_level_traversesD"5":":"<"<     3T : : : MM$     rrc.Sr+rR)rrsrrTz(_Unparser.visit_BoolOp..sDJJqMMr)boolopsr5rtruboolop_precedencerrrMrK)rr&rrrrs` @@r visit_BoolOpz_Unparser.visit_BoolOps < 1 :;"4X>       !4d ; ; [ [HA OO111113Ldk Z Z Z [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [s 'A==BBc~|tj|j||jt |jt r4t |jjtr|d|d||j dS)Nrr) rwr#r9r.rrr,r/rSrrts rvisit_Attributez_Unparser.visit_Attributes K,dj999 dj!!! dj( + +  4:;KS0Q0Q  JJsOOO 3 49rc|tj|j||j|dd5d}|jD]1}|r|dnd}||2|jD]1}|r|dnd}||2 ddddS#1swxYwYdS)NrcrdFr`T) rwr#r9rCrrjrFrSrG)rr&rrs r visit_Callz_Unparser.visit_CallsC K,di888 di   \\#s # # ! !EY ! !!JJt$$$$ E a    ] ! !!JJt$$$$ E a     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sA5CC Ccd}|tj|j||j|dd5||jr&||j|jjn||jddddS#1swxYwYdS)Nc:t|to|jSr+)rr<r>) slice_values ris_non_empty_tuplez5_Unparser.visit_Subscript..is_non_empty_tuples;..%$ rrern) rwr#r9r.rrjrrWr>)rr&rs rvisit_Subscriptz_Unparser.visit_Subscripts    K,dj999 dj!!! \\#s # # * *!!$*-- * tz???? dj)))  * * * * * * * * * * * * * * * * * *sAB77B;>B;c|d|tj|j||jdS)Nr)rSrwr#r/r.rrts r visit_Starredz_Unparser.visit_StarredsF 3 K,dj999 dj!!!!!rc0|ddS)NrWrRrts rvisit_Ellipsisz_Unparser.visit_Ellipsiss 5rc$|jr||j|d|jr||j|jr1|d||jdSdS)Nre)lowerrrSuppersteprts r visit_Slicez_Unparser.visit_Slices : & MM$* % % % 3 : & MM$* % % % 9 % JJsOOO MM$) $ $ $ $ $ % %rc|d||j|5|jD]}|| ddddS#1swxYwYdS)Nzmatch )r\rsubjectrfcases)rr&cases r visit_Matchz_Unparser.visit_Matchs ( dl### ZZ\\ $ $  $ $ d#### $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s A22A69A6c||j|jr1|d||jdSdSrx)rSargrrrts r visit_argz_Unparser.visit_arg sV 48 ? + JJt    MM$/ * * * * * + +rc8d}|j|jz}dgt|t|jz z|jz}t t ||dD]\}}|\}}|rd}n|d|||r*|d|||t|jkr|d|js|j r|rd}n|d|d|jr_||jj |jj r4|d||jj |j rvt |j |j D][\}}|d|||r*|d||\|j r~|rd}n|d|d |j j z|j j r8|d||j j dSdSdS) NTr]Fr`raz, /rr#r~) posonlyargsrFrIdefaults enumeraterMrSrvararg kwonlyargsrr kw_defaultskwarg) rr&rall_argsrrelementsads rvisit_argumentsz_Unparser.visit_argumentss#di/6S]]S-?-??@4=P(Xx)@)@!DD " "OE8DAq ! 4   MM!    ! 3 a   D,---- 5!!! ; :$/ : ! 4   JJsOOO{ : 4;?+++;):JJt$$$MM$+"8999 ? %DOT-=>> % %1 4    a   %JJsOOOMM!$$$ : 5 ! 4   JJtdjn, - - -z$ 5 4    dj344444 5 5  5 5rc|j|dn/||j|d||jdS)Nr~ra)rrSrr.rts r visit_keywordz_Unparser.visit_keywordDs\ 8  JJt     JJtx JJsOOO dj!!!!!rc|tj|5|d|5}||jdddn #1swxYwY|r|jdg|R|d|tj|j||jddddS#1swxYwYdS)Nlambdarr#) rrr#r*rSrarrFrwrW)rr&r_s r visit_Lambdaz_Unparser.visit_LambdaLsh  !14 8 8 % % JJx  )F di((( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 3((((( JJt       0$) < < < MM$) $ $ $ % % % % % % % % % % % % % % % % % %s6*C. A2& C.2A6 6C.9A6 :A'C..C25C2c||j|jr|d|jzdSdSNr)rSr|asnamerts r visit_aliasz_Unparser.visit_aliasWsI 49 ; - JJv + , , , , , - -rc||j|jr1|d||jdSdSr)r context_expr optional_varsrSrts rvisit_withitemz_Unparser.visit_withitem\sY d'(((   . JJv    MM$, - - - - - . .rc^|d||j|jr/|d||j|5||jddddS#1swxYwYdS)Nzcase rl)r\rpatternguardrSrfrWrts rvisit_match_casez_Unparser.visit_match_casebs ' dl### : & JJv    MM$* % % % ZZ\\ % % MM$) $ $ $ % % % % % % % % % % % % % % % % % %s:B""B&)B&c:||jdSr+)rr.rts rvisit_MatchValuez_Unparser.visit_MatchValueks dj!!!!!rc:||jdSr+)rUr.rts rvisit_MatchSingletonz_Unparser.visit_MatchSingletonns TZ(((((rcdd5fdj|jddddS#1swxYwYdS)Nrernc.dSrQrRrsrrTz/_Unparser.visit_MatchSequence..trr)rjrMrpatternsrts` rvisit_MatchSequencez_Unparser.visit_MatchSequenceqs \\#s # #   OO(((($-                     r[cL|j}|d}|d|dS)N_r)r|rS)rr&r|s rvisit_MatchStarz_Unparser.visit_MatchStarws1y <D :t::rc Lfd}dd5|j}fd|t||jd|j}|/|rdd|ddddS#1swxYwYdS) Nc|\}}|d|dSrxry)pairrzprs rwrite_key_pattern_pairz<_Unparser.visit_MatchMapping..write_key_pattern_pair~sHDAq MM!    JJt    MM!     rr:r;c.dSrQrRrsrrTz._Unparser.visit_MatchMapping..rrTstrictr`r~)rjrJrMrMrrestrS)rr&rrJrs` rvisit_MatchMappingz_Unparser.visit_MatchMapping}s      \\#s # # ( (9D OO((((&D$-555    9D%JJt$$$ ;;;''' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sA/BB Bc tj|j|jdd5|j}fdj||j}|rKfd}|r dfd|t||j dddddS#1swxYwYdS) Nrcrdc.dSrQrRrsrrTz,_Unparser.visit_MatchClass..rrcl|\}}|d|dS)Nra)rSr)r rrrs rwrite_attr_patternz6_Unparser.visit_MatchClass..write_attr_patterns<$(MD'JJ$zzz***MM'*****rr`c.dSrQrRrsrrTz,_Unparser.visit_MatchClass..sDJJt,,rTr) rwr#r9rzrrjrrM kwd_attrsrSrM kwd_patterns)rr&rattrsrs` rvisit_MatchClassz_Unparser.visit_MatchClasssY K,dh777 dh \\#s # #  }H OO(((($-   NE +++++ %JJt$$$,,,,&t0>>>                  sA;CC#&C#c|j}|j}||ddS|||jdS|tj|5|tj|j||j|d|jddddS#1swxYwYdS)Nr r) r|rrSrrr#r*rwr0r)rr&r|rs r visit_MatchAsz_Unparser.visit_MatchAssy, < JJsOOOOO _ JJty ! ! ! ! !$$[%5t<< / /##KOT\BBB dl+++ -$)--... / / / / / / / / / / / / / / / / / /s&ACCCc tj|5jtjg|jRfdj|jddddS#1swxYwYdS)Nc.dS)Nz | rRrsrrTz)_Unparser.visit_MatchOr..sDJJu$5$5r)rrr#r0rwr&rrMrrts` r visit_MatchOrz_Unparser.visit_MatchOrs  $ 7 7 U U D   4 4 6 6 G G G G G OO5555t}dm T T T U U U U U U U U U U U U U U U U U UsABB B)r_r+)~rurrrrMrWrYr\rSrrarfrjrmrrrprwryr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrr0r)r-r8r/r?rLrrUrrZrbrfrhrjrprrrurrrr#r-r6rrrr4r5r3r0r1r2r7r frozensetrrrrrr,r+rrrrrrrrrrrrrrrrrrrr rrrr" __classcell__)rts@rr>r>s.3"""""   HHH 1111 """'''^'#    ^ ^!!! QQQ===111 )))      %%%%%%###$$$""" &&&MMMMMM%%%""" &&&&&& OOO$$$JJJJJJ******&&& & & & . . .111111 % % %:::0+++111 : : :'''--- + + ++++$+++%%% %%%&1E$/$/$/$/$/LFQ88888 171717f L L L<<<,TTT $ $ $ - - -PPP### ### ### ### % % %'''   ,666%c B BD       O ( ( (  E"            _     9W%%L&&&$  F!!!4((G +{~FF [ [ [   !!!$*** """ %%%$$$+++ 151515f""" % % %--- ... %%%""")))  ((((. / / /UUUUUUUrr>cHt}||Sr+)r>r)ast_objrDs runparser's{{H >>' " ""rcddl}|d}|d|dddd |d d d dd|dddd|dddd|ddtdd|}|j5}|}dddn #1swxYwYt||jj |j |j }tt||j|j!dS)"Nrz python -m ast)proginfilerbr ?rSz$the file to parse; defaults to stdin)r-nargsdefaulthelpz-mz--moder )r singler func_typez(specify what kind of code must be parsed)r.choicesr/z--no-type-commentsT store_falsez)don't add information about type comments)r.actionr/z-az--include-attributes store_truez:include attributes such as line numbers and column offsets)r4r/z-iz--indentrbz'indentation of nodes (number of spaces))r-r.r/)r )rrZ)argparseArgumentParser add_argumentFileTyper/ parse_argsr*readrr|rno_type_commentsprintrrrZ)r6parserrFr*rtrees rmainr@sOOO  $ $/ $ : :F x'8'8d'8'C'C3 #CEEE h GGIII ,d=HJJJ 4\./// jsAFHHH     D  )49DDY Z Z ZD $t(? T T TUUUUUsC00C47C4__main__)r r )TF)r])T)Ksys_ast contextlibrrenumrrrrrYrrrrrrrrrrrobjectrrrr,rrpropertyrrr-rrrrrrrr/r0r1rTbytesboolrrrrorr rr<rrrmodr expr_contextrrr rw float_info max_10_exprTr#_SINGLE_QUOTESrr0r>r'r@rurhrrrOsC4 22222222,,,,,,,,,,5t55555*8$8$8$v@@@@@@F"   F.      4205"""""J   7(7(7(7(7(&7(7(7(t88888k888xwx ,'7++HJ'7++HJ111114111( 2 2 2(d(dH8t66666x46666#ug # E844::t$ ttCyyl  $  .DJJ 5 U 7DIIz %%%%%C%%%E 33333u333 wuf 6, 55EJ:::::C::::::::l::::::::|::::::::L::: cn/!344 4 g> //// MUMUMUMUMU MUMUMU^ ### VVV0 zDFFFFFr