
    ^h"k                        S r SSKJrJr  SSKrSSKrSSKrSSKrSSKrSSKJ	r	  S\
" \R                  R                  S-   5      -   rS r " S S	5      r\R                   4S
 jrS rS r\S:X  a  \" \R*                  SS 5        gg)z'Usage: unparse.py <path to source file>    )print_functionunicode_literalsN)StringIO1e   c                     [        U5      n U" [        U5      5        U H  nU " 5         U" U5        M     g! [         a     gf = f)z<Call f on each item in seq, calling inter() in between.
    N)iternextStopIteration)interfseqxs       M/home/james-whalen/.local/lib/python3.13/site-packages/astunparse/unparser.py
interleaver      sI     s)C	$s) AGaD   s   7 
AAc                      \ rS rSrSr\R                  4S jrS{S jrS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S  r$S! r%S" r&S# r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1S|S. jr2S/ r3S0 r4S1 r5S2 r6S3 r7S4 r8S5 r9S6 r:S7 r;S8 r<S9 r=S: r>S; r?S< r@S= rAS> rBS? rCS@ rDSA rESB rFSC rGSD rHSE rISF rJSG rKSH rLSISJSKSLSM.rMSN rNSKSLSOSPSQSRSSSTSUSVSWSXSYSZ.rOS[ rPS\S]S^S_S`SaSbScSdSeSf.
rQSg rR\SR                  Sh\SR                  Si0rVSj rWSk rXSl rYSm rZSn r[So r\Sp r]Sq r^Sr r_Ss r`St raSu rbSv rcSw rdSx reSyrfgz)}Unparser   zMethods in this class recursively traverse an AST and
output source code for the abstract syntax; original formatting
is disregarded. c                     X l         / U l        SU l        U R                  U5        [	        SU R                   S9  U R                   R                  5         g)zKUnparser(tree, file=sys.stdout) -> None.
Print the source for tree to file.r    fileN)r   future_imports_indentdispatchprintflush)selftreer   s      r   __init__Unparser.__init__    s?      dbtvv    c                 `    U R                   R                  SSU R                  -  -   U-   5        g)zBIndent a piece of text, according to the current indentation level
z    N)r   writer   r   texts     r   fillUnparser.fill*   s%    T&--45r"   c                 b    U R                   R                  [        R                  " U5      5        g)z+Append a piece of text to the current line.N)r   r%   six	text_typer&   s     r   r%   Unparser.write.   s    S]]4()r"   c                 P    U R                  S5        U =R                  S-  sl        g)z(Print ':', and increase the indentation.:r   N)r%   r   r   s    r   enterUnparser.enter2   s    

3r"   c                 .    U =R                   S-  sl         g)zDecrease the indentation level.r   N)r   r0   s    r   leaveUnparser.leave7   s    r"   c                     [        U[        5      (       a  U H  nU R                  U5        M     g[        U SUR                  R
                  -   5      nU" U5        g)z:Dispatcher function, dispatching tree type T to method _T.N_)
isinstancelistr   getattr	__class____name__)r   r   tmeths       r   r   Unparser.dispatch;   sJ    dD!!a  tS!8!889T
r"   c                 L    UR                    H  nU R                  U5        M     g Nbodyr   r   r   stmts      r   _ModuleUnparser._ModuleL       IIDMM$ r"   c                 L    UR                    H  nU R                  U5        M     g rA   rB   rD   s      r   _InteractiveUnparser._InteractiveP   rH   r"   c                 :    U R                  UR                  5        g rA   )r   rC   r   r   s     r   _ExpressionUnparser._ExpressionT   s    dii r"   c                 Z    U R                  5         U R                  UR                  5        g rA   )r(   r   valuerM   s     r   _ExprUnparser._ExprX   s    		djj!r"   c                     U R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  S5        g )N(z := ))r%   r   targetrQ   rM   s     r   
_NamedExprUnparser._NamedExpr\   sD    

3dkk"

6djj!

3r"   c                 r   ^  T R                  S5        [        U 4S jT R                  UR                  5        g )Nzimport c                  &   > T R                  S5      $ N, r%   r0   s   r   <lambda>"Unparser._Import.<locals>.<lambda>e       4::d+r"   )r(   r   r   namesr   r=   s   ` r   _ImportUnparser._Importc   s$    		)+T]]AGGDr"   c                   ^  UR                   (       a<  UR                   S:X  a,  T R                  R                  S UR                   5       5        T R	                  S5        T R                  SUR                  -  5        UR                   (       a  T R                  UR                   5        T R                  S5        [        U 4S jT R                  UR                  5        g )N
__future__c              3   8   #    U  H  oR                   v   M     g 7frA   )name).0ns     r   	<genexpr>'Unparser._ImportFrom.<locals>.<genexpr>j   s     &?w!vvws   zfrom .z import c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   &Unparser._ImportFrom.<locals>.<lambda>q   ra   r"   )	moduler   extendrb   r(   r%   levelr   r   rc   s   ` r   _ImportFromUnparser._ImportFromg   s    88L0&&&?qww&??		'

3=!88JJqxx 

:+T]]AGGDr"   c                     U R                  5         UR                   H%  nU R                  U5        U R                  S5        M'     U R                  UR                  5        g )N = )r(   targetsr   r%   rQ   )r   r=   rW   s      r   _AssignUnparser._Assigns   sC    		iiFMM&!JJu   	aggr"   c                    U R                  5         U R                  UR                  5        U R                  SU R                  UR
                  R                  R                     -   S-   5        U R                  UR                  5        g )N z= )	r(   r   rW   r%   binopopr;   r<   rQ   rc   s     r   
_AugAssignUnparser._AugAssignz   sX    		ahh

3tzz!$$.."9"9::4?@aggr"   c                 Z   U R                  5         UR                  (       d:  [        UR                  [        R
                  5      (       a  U R                  S5        U R                  UR                  5        UR                  (       d:  [        UR                  [        R
                  5      (       a  U R                  S5        U R                  S5        U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g )NrU   rV   : rw   )
r(   simpler8   rW   astNamer%   r   
annotationrQ   rc   s     r   
_AnnAssignUnparser._AnnAssign   s    		xxJqxx::JJsOahhxxJqxx::JJsO

4all#77JJuMM!''" r"   c                     U R                  S5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g )Nreturnr|   )r(   rQ   r%   r   rc   s     r   _ReturnUnparser._Return   s5    		(77JJsOMM!''" r"   c                 &    U R                  S5        g )Npassr(   rc   s     r   _PassUnparser._Pass   s    		&r"   c                 &    U R                  S5        g )Nbreakr   rc   s     r   _BreakUnparser._Break   s    		'r"   c                 &    U R                  S5        g )Ncontinuer   rc   s     r   	_ContinueUnparser._Continue   s    		*r"   c                 r   ^  T R                  S5        [        U 4S jT R                  UR                  5        g )Nzdel c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   "Unparser._Delete.<locals>.<lambda>   ra   r"   )r(   r   r   rx   rc   s   ` r   _DeleteUnparser._Delete   s$    		&+T]]AIIFr"   c                     U R                  S5        U R                  UR                  5        UR                  (       a-  U R	                  S5        U R                  UR                  5        g g )Nzassert r]   )r(   r   testmsgr%   rc   s     r   _AssertUnparser._Assert   sF    		)aff55JJtMM!%%  r"   c                 R   U R                  S5        U R                  UR                  5        UR                  (       a,  U R	                  S5        U R                  UR                  5        UR
                  (       a-  U R	                  S5        U R                  UR
                  5        g g )Nzexec  in r]   )r(   r   rC   globalsr%   localsrc   s     r   _ExecUnparser._Exec   si    		'aff99JJvMM!))$88JJtMM!((# r"   c                 l   U R                  S5        SnUR                  (       a.  U R                  S5        U R                  UR                  5        SnUR                   H/  nU(       a  U R                  S5        OSnU R                  U5        M1     UR
                  (       d  U R                  S5        g g )Nzprint F>>Tr]   ,)r(   destr%   r   valuesnl)r   r=   do_commaes       r   _PrintUnparser._Print   s    		(66JJtMM!&&!HA

4(MM!  ttJJsO r"   c                 r   ^  T R                  S5        [        U 4S jT R                  UR                  5        g )Nzglobal c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   "Unparser._Global.<locals>.<lambda>   ra   r"   r(   r   r%   rb   rc   s   ` r   _GlobalUnparser._Global   s$    		)+TZZAr"   c                 r   ^  T R                  S5        [        U 4S jT R                  UR                  5        g )Nz	nonlocal c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   $Unparser._Nonlocal.<locals>.<lambda>   ra   r"   r   rc   s   ` r   	_NonlocalUnparser._Nonlocal   s$    		++TZZAr"   c                     U R                  S5        U R                  S5        UR                  (       a,  U R                  S5        U R                  UR                  5        U R                  S5        g )NrU   awaitr|   rV   r%   rQ   r   rc   s     r   _AwaitUnparser._Await   F    

3

777JJsOMM!''"

3r"   c                     U R                  S5        U R                  S5        UR                  (       a,  U R                  S5        U R                  UR                  5        U R                  S5        g )NrU   yieldr|   rV   r   rc   s     r   _YieldUnparser._Yield   r   r"   c                     U R                  S5        U R                  S5        UR                  (       a,  U R                  S5        U R                  UR                  5        U R                  S5        g )NrU   z
yield fromr|   rV   r   rc   s     r   
_YieldFromUnparser._YieldFrom   sF    

3

< 77JJsOMM!''"

3r"   c                    U R                  S5        [        R                  (       a  UR                  (       d  UR                  (       a   eg U R                  S5        U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g U R                  S5        UR                  (       a  U R                  UR                  5        UR                  (       a,  U R                  S5        U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g )Nraiser|   z from r]   )
r(   r+   PY3exccauser%   r   typeinsttbackrc   s     r   _RaiseUnparser._Raise   s    		'775577"{JJsOMM!%% ww

8$agg&  JJsOvvaff%vv

4 aff%ww

4 agg& r"   c                 Z   U R                  S5        U R                  5         U R                  UR                  5        U R	                  5         UR
                   H  nU R                  U5        M     UR                  (       aL  U R                  S5        U R                  5         U R                  UR                  5        U R	                  5         UR                  (       aM  U R                  S5        U R                  5         U R                  UR                  5        U R	                  5         g g )Ntryelsefinally)r(   r1   r   rC   r4   handlersorelse	finalbodyr   r=   exs      r   _TryUnparser._Try   s    		%

aff

**BMM" 88IIfJJLMM!((#JJL;;IIi JJLMM!++&JJL	 r"   c                    U R                  S5        U R                  5         U R                  UR                  5        U R	                  5         UR
                   H  nU R                  U5        M     UR                  (       aM  U R                  S5        U R                  5         U R                  UR                  5        U R	                  5         g g )Nr   r   )r(   r1   r   rC   r4   r   r   r   s      r   
_TryExceptUnparser._TryExcept  s    		%

aff

**BMM" 88IIfJJLMM!((#JJL	 r"   c                    [        UR                  5      S:X  aH  [        UR                  S   [        R                  5      (       a  U R                  UR                  5        OLU R                  S5        U R                  5         U R                  UR                  5        U R                  5         U R                  S5        U R                  5         U R                  UR                  5        U R                  5         g )Nr   r   r   r   )
lenrC   r8   r   	TryExceptr   r(   r1   r4   r   rc   s     r   _TryFinallyUnparser._TryFinally  s    qvv;!
166!9cmm D DMM!&&!IIeJJLMM!&&!JJL		)

akk"

r"   c                    U R                  S5        UR                  (       a,  U R                  S5        U R                  UR                  5        UR                  (       a]  U R                  S5        [
        R                  (       a  U R                  UR                  5        OU R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         g )Nexceptr|    as )
r(   r   r%   r   ri   r+   r   r1   rC   r4   rc   s     r   _ExceptHandlerUnparser._ExceptHandler$  s    		(66JJsOMM!&&!66JJvww

166"aff%

aff

r"   c                    U R                  S5        UR                   H%  nU R                  S5        U R                  U5        M'     U R                  SUR                  -   5        [
        R                  (       Gaj  U R                  S5        SnUR                   H/  nU(       a  U R                  S5        OSnU R                  U5        M1     UR                   H/  nU(       a  U R                  S5        OSnU R                  U5        M1     [        R                  S S S	:  a  UR                  (       aG  U(       a  U R                  S5        OSnU R                  S
5        U R                  UR                  5        UR                  (       aG  U(       a  U R                  S5        OSnU R                  S5        U R                  UR                  5        U R                  S5        OhUR                  (       aW  U R                  S5        UR                   H%  nU R                  U5        U R                  S5        M'     U R                  S5        U R                  5         U R                  UR                  5        U R                  5         g )Nr$   @zclass rU   Fr]   T         ***rV   )r%   decorator_listr(   r   ri   r+   r   baseskeywordssysversion_infostarargskwargsr1   rC   r4   )r   r=   decocommar   as         r   	_ClassDefUnparser._ClassDef3  s   

4$$DIIcNMM$ % 			(166/"777JJsOEWW$**T*"ea   ZZ$**T*"ea    #f,::djj."&%JJsOMM!**-88djj."&%JJt$MM!((+JJsOWW

3AMM!$JJt$ ! 

3

aff

r"   c                 (    U R                  US5        g )Ndef_Unparser__FunctionDef_helperrc   s     r   _FunctionDefUnparser._FunctionDefZ  s    !!!U+r"   c                 (    U R                  US5        g )Nz	async defr  rc   s     r   _AsyncFunctionDefUnparser._AsyncFunctionDef]  s    !!![1r"   c                 &   U R                  S5        UR                   H%  nU R                  S5        U R                  U5        M'     US-   UR                  -   S-   nU R                  U5        U R                  UR
                  5        U R                  S5        [        USS5      (       a,  U R                  S5        U R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         g )	Nr$   r   r|   rU   rV   returnsFz -> )r%   r   r(   r   ri   argsr:   r  r1   rC   r4   )r   r=   fill_suffixr   def_strs        r   __FunctionDef_helperUnparser.__FunctionDef_helper`  s    

4$$DIIcNMM$ % c/!&&(3.		'aff

31i''JJvMM!))$

aff

r"   c                 (    U R                  SU5        g )Nzfor _Unparser__For_helperrc   s     r   _ForUnparser._Forp  s    &!$r"   c                 (    U R                  SU5        g )Nz
async for r  rc   s     r   	_AsyncForUnparser._AsyncFors  s    ,*r"   c                    U R                  U5        U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         UR                  (       aM  U R                  S5        U R                  5         U R                  UR                  5        U R                  5         g g )Nr   r   )	r(   r   rW   r%   r	   r1   rC   r4   r   )r   r(   r=   s      r   __For_helperUnparser.__For_helperv  s    		$ahh

6aff

aff

88IIfJJLMM!((#JJL	 r"   c                    U R                  S5        U R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         UR                  (       Ga  [        UR                  5      S:X  a  [        UR                  S   [        R                  5      (       a  UR                  S   nU R                  S5        U R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         UR                  (       aG  [        UR                  5      S:X  a.  [        UR                  S   [        R                  5      (       a  M  UR                  (       aM  U R                  S5        U R                  5         U R                  UR                  5        U R                  5         g g )Nzif r   r   zelif r   )r(   r   r   r1   rC   r4   r   r   r8   r   Ifrc   s     r   _IfUnparser._If  s)   		%aff

aff

xxxCMQ.!((1+svv..AIIgMM!&&!JJLMM!&&!JJL xxCMQ.!((1+svv.. 88IIfJJLMM!((#JJL	 r"   c                    U R                  S5        U R                  UR                  5        U R                  5         U R                  UR                  5        U R                  5         UR                  (       aM  U R                  S5        U R                  5         U R                  UR                  5        U R                  5         g g )Nzwhile r   )r(   r   r   r1   rC   r4   r   rc   s     r   _WhileUnparser._While  sz    		(aff

aff

88IIfJJLMM!((#JJL	 r"   c                   ^  T R                  U(       a  SOS5        [        US5      (       a&  [        U 4S jT R                  UR                  5        OXT R                  UR
                  5        UR                  (       a,  T R                  S5        T R                  UR                  5        T R                  5         T R                  UR                  5        T R                  5         g )Nzasync with zwith itemsc                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   (Unparser._generic_With.<locals>.<lambda>      tzz$/r"   r   )r(   hasattrr   r   r%  context_exproptional_varsr%   r1   rC   r4   )r   r=   async_s   `  r   _generic_WithUnparser._generic_With  s    		6-w71g/HMM!..)

6"aoo.

aff

r"   c                 &    U R                  U5        g rA   r-  rc   s     r   _WithUnparser._With  s    1r"   c                 $    U R                  USS9  g )NT)r,  r0  rc   s     r   
_AsyncWithUnparser._AsyncWith  s    1T*r"   c                 L    U R                  [        UR                  5      5        g rA   )r%   reprsrc   s     r   _BytesUnparser._Bytes  s    

49r"   c                 "   [         R                  (       a%  U R                  [        UR                  5      5        g SU R
                  ;  a%  U R                  [        UR                  5      5        g [        UR                  [        5      (       a(  U R                  S[        UR                  5      -   5        g [        UR                  [        5      (       a4  U R                  [        UR                  5      R                  S5      5        g  S5       e)Nr   buzshouldn't get here)
r+   r   r%   r7  r8  r   r8   strunicodelstriprM   s     r   _StrUnparser._Str  s    77JJtDFF|$
 ")<)<<

4<(DFFC((

3dff-.DFFG,,

4<..s34222ur"   c                 0   U R                  S5        [        5       nU R                  XR                   5        UR                  5       nSU;   d  SU;   a  SS/nO/ SQnU H  nXS;  d  M
  SR	                  XSS9n  O   [        U5      nU R                  U5        g )	Nr   r$   '''""")'"rF  rE  z{quote_type}{v}{quote_type})
quote_typev)r%   r   _fstring_JoinedStrgetvalueformatr7  )r   r=   stringrJ  quote_typesrI  s         r   
_JoinedStrUnparser._JoinedStr  s    

3<<0 OO19	 %.K2K%J"188J8T &
 QA

1r"   c                     U R                  S5        [        5       nU R                  XR                   5        U R                  [        UR	                  5       5      5        g )Nr   )r%   r   rK  r7  rL  )r   r=   rN  s      r   _FormattedValueUnparser._FormattedValue  s>    

3<<0

4)*+r"   c                 ~    UR                    H-  n[        U S[        U5      R                  -   5      nU" X25        M/     g )N	_fstring_)r   r:   r   r<   )r   r=   r%   rQ   r>   s        r   rK  Unparser._fstring_JoinedStr  s3    XXE4tE{/C/C!CDD r"   c                 l    UR                   R                  SS5      R                  SS5      nU" U5        g N{z{{}z}})r8  replacer   r=   r%   rQ   s       r   _fstring_StrUnparser._fstring_Str  s*    C&..sD9er"   c                     [        UR                  [        5      (       d   eUR                  R                  SS5      R                  SS5      nU" U5        g rY  )r8   rQ   r>  r\  r]  s       r   _fstring_ConstantUnparser._fstring_Constant  sA    !''3''''T*223=er"   c                 "   U" S5        [        5       n[        UR                  U5        UR                  5       R	                  S5      nUR                  S5      (       a  U" S5        U" U5        UR                  S:w  a2  [        UR                  5      nUS;   d   eU" SR                  US95        UR                  (       aG  U" S5        [        U S	[        UR                  5      R                  -   5      nU" UR                  U5        U" S
5        g )NrZ  r$   r|   sraz!{conversion})
conversionr/   rV  r[  )r   r   rQ   rL  rstrip
startswithrf  chrrM  format_specr:   r   r<   )r   r=   r%   exprrf  r>   s         r   _fstring_FormattedValue Unparser._fstring_FormattedValue  s    c
z$}}%%d+??3#Jd<<2Q\\*J&&&/((J(?@==#J4tAMM/B/K/K!KLD&c
r"   c                 :    U R                  UR                  5        g rA   )r%   idrc   s     r   _NameUnparser._Name  s    

144r"   c                 L    U R                  [        UR                  5      5        g rA   )r%   r7  rQ   rc   s     r   _NameConstantUnparser._NameConstant  s    

4=!r"   c                 ~    U R                  S5        U R                  UR                  5        U R                  S5        g )N`r%   r   rQ   rc   s     r   _ReprUnparser._Repr  s(    

3agg

3r"   c                     [        U[        [        45      (       a/  U R                  [	        U5      R                  S[        5      5        g U R                  [	        U5      5        g )Ninf)r8   floatcomplexr%   r7  r\  INFSTR)r   rQ   s     r   _write_constantUnparser._write_constant  sA    eeW-..JJtE{**5&9:JJtE{#r"   c                   ^  UR                   n[        U[        5      (       as  T R                  S5        [	        U5      S:X  a&  T R                  US   5        T R                  S5        O[        U 4S jT R
                  U5        T R                  S5        g U[        L a  T R                  S5        g UR                  S:X  a  T R                  S5        T R                  UR                   5        g )	NrU   r   r   r   c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   $Unparser._Constant.<locals>.<lambda>"  s    4::d#3r"   rV   ...r=  )	rQ   r8   tupler%   r   r  r   Ellipsiskind)r   r=   rQ   s   `  r   	_ConstantUnparser._Constant  s    eU##JJsO5zQ$$U1X.

33T5I5I5QJJsOhJJuvv}

3  )r"   c                    [        UR                  5      n[        R                  (       a&  U R	                  UR                  S[        5      5        g UR                  S5      (       a  U R	                  S5        SU;   a(  UR                  S5      (       a  UR                  SS5      nU R	                  UR                  S[        5      5        UR                  S5      (       a  U R	                  S5        g g )Nr{  -rU   z*jjrV   )	r7  rk   r+   r   r%   r\  r~  rh  endswith)r   r=   repr_ns      r   _NumUnparser._Num+  s    acc77JJv~~eV45   %%

36??4#8#8c2JJv~~eV45  %%

3 &r"   c                    ^  T R                  S5        [        U 4S jT R                  UR                  5        T R                  S5        g )N[c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_    Unparser._List.<locals>.<lambda><  ra   r"   ])r%   r   r   eltsrc   s   ` r   _ListUnparser._List:  s.    

3+T]]AFFC

3r"   c                     U R                  S5        U R                  UR                  5        UR                   H  nU R                  U5        M     U R                  S5        g Nr  r  r%   r   elt
generatorsr   r=   gens      r   	_ListCompUnparser._ListComp?  B    

3aee<<CMM#  

3r"   c                     U R                  S5        U R                  UR                  5        UR                   H  nU R                  U5        M     U R                  S5        g )NrU   rV   r  r  s      r   _GeneratorExpUnparser._GeneratorExpF  r  r"   c                     U R                  S5        U R                  UR                  5        UR                   H  nU R                  U5        M     U R                  S5        g )NrZ  r[  r  r  s      r   _SetCompUnparser._SetCompM  r  r"   c                    U R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        UR                   H  nU R                  U5        M     U R                  S5        g )NrZ  r   r[  )r%   r   keyrQ   r  r  s      r   	_DictCompUnparser._DictCompT  s^    

3aee

4agg<<CMM#  

3r"   c                 f   [        USS5      (       a  U R                  S5        OU R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        UR
                   H%  nU R                  S5        U R                  U5        M'     g )Nis_asyncFz async for z for r    if )r:   r%   r   rW   r	   ifs)r   r=   	if_clauses      r   _comprehensionUnparser._comprehension]  s{    1j%((JJ}%JJwahh

6affIJJvMM)$ r"   c                 .   U R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  S5        g )NrU   r  z else rV   )r%   r   rC   r   r   rc   s     r   _IfExpUnparser._IfExpi  s`    

3aff

6aff

8ahh

3r"   c                    ^  UR                   (       d   eT R                  S5        [        U 4S jT R                  UR                   5        T R                  S5        g )NrZ  c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   Unparser._Set.<locals>.<lambda>u  ra   r"   r[  )r  r%   r   r   rc   s   ` r   _SetUnparser._Setr  s9    vvv

3+T]]AFFC

3r"   c                    ^ ^ T R                  S5        U 4S jmU U4S jn[        U 4S jU[        UR                  UR                  5      5        T R                  S5        g )NrZ  c                 l   > TR                  U 5        TR                  S5        TR                  U5        g Nr   )r   r%   )krJ  r   s     r   write_key_value_pair,Unparser._Dict.<locals>.write_key_value_pairz  s'    MM!JJtMM!r"   c                 j   > U u  pUc#  TR                  S5        TR                  U5        g T" X5        g )Nr   )r%   r   )itemr  rJ  r   r  s      r   
write_item"Unparser._Dict.<locals>.write_item  s1    DAy 

4 a $Q*r"   c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_    Unparser._Dict.<locals>.<lambda>  ra   r"   r[  )r%   r   zipkeysr   )r   r=   r  r  s   `  @r   _DictUnparser._Dictx  sA    

3	
	+ 	+ZQVVQXX9NO

3r"   c                 *  ^  T R                  S5        [        UR                  5      S:X  a2  UR                  S   nT R                  U5        T R                  S5        O%[	        U 4S jT R                  UR                  5        T R                  S5        g )NrU   r   r   r   c                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   !Unparser._Tuple.<locals>.<lambda>  r(  r"   rV   )r%   r   r  r   r   )r   r=   r  s   `  r   _TupleUnparser._Tuple  sb    

3qvv;!&&)CMM#JJsO/G

3r"   ~not+r  )InvertNotUAddUSubc                 b   U R                  S5        U R                  U R                  UR                  R                  R                     5        U R                  S5        [
        R                  (       a  [        UR                  [        R                  5      (       ag  [        UR                  [        R                  5      (       a>  U R                  S5        U R                  UR                  5        U R                  S5        OU R                  UR                  5        U R                  S5        g NrU   r|   rV   )r%   unopr~   r;   r<   r+   PY2r8   r   r  operandNumr   rc   s     r   _UnaryOpUnparser._UnaryOp  s    

3

499QTT^^4456

377z!$$11jCGG6T6T JJsOMM!))$JJsOMM!))$

3r"   r   r   /%z<<r   |^&z//r   )AddSubMultMatMultDivModLShiftRShiftBitOrBitXorBitAndFloorDivPowc                 8   U R                  S5        U R                  UR                  5        U R                  SU R                  UR                  R
                  R                     -   S-   5        U R                  UR                  5        U R                  S5        g r  )r%   r   leftr}   r~   r;   r<   rightrc   s     r   _BinOpUnparser._BinOp  se    

3aff

3ADDNN$;$;<<sBCagg

3r"   z==z!=<z<=>z>=iszis notinznot in)
EqNotEqLtLtEGtGtEIsIsNotInNotInc                 b   U R                  S5        U R                  UR                  5        [        UR                  UR
                  5       HN  u  p#U R                  SU R                  UR                  R                     -   S-   5        U R                  U5        MP     U R                  S5        g r  )	r%   r   r  r  opscomparatorscmpopsr;   r<   )r   r=   or   s       r   _CompareUnparser._Compare  sz    

3affq}}-DAJJsT[[)=)=>>DEMM! . 	

3r"   andorc                    ^ ^ T R                  S5        ST R                  UR                  R                     -  m[	        UU 4S jT R
                  UR                  5        T R                  S5        g )NrU   z %s c                  &   > TR                  T 5      $ rA   r^   )r8  r   s   r   r_   "Unparser._BoolOp.<locals>.<lambda>  s    4::a=r"   rV   )r%   boolopsr~   r;   r   r   r   )r   r=   r8  s   ` @r   _BoolOpUnparser._BoolOp  sI    

3T\\!$$..11($--B

3r"   c                 x   U R                  UR                  5        [        UR                  [        [        S[        [        SS 5      5      5      (       a:  [        UR                  R
                  [        5      (       a  U R                  S5        U R                  S5        U R                  UR                  5        g )NConstantr  r|   rn   )	r   rQ   r8   r:   r   rk   intr%   attrrc   s     r   
_AttributeUnparser._Attribute  sx    agg aggwsJUD8QRSSXbcdcjcjclclnqXrXrJJsO

3

166r"   c                    U R                  UR                  5        U R                  S5        SnUR                   H/  nU(       a  U R                  S5        OSnU R                  U5        M1     UR                   H/  nU(       a  U R                  S5        OSnU R                  U5        M1     [
        R                  S S S:  a  UR                  (       aG  U(       a  U R                  S5        OSnU R                  S5        U R                  UR                  5        UR                  (       aG  U(       a  U R                  S5        OSnU R                  S5        U R                  UR                  5        U R                  S	5        g )
NrU   Fr]   Tr   r   r   r   rV   )	r   funcr%   r  r   r   r   r   r   )r   r=   r   r   s       r   _CallUnparser._Call  s   aff

3Adjj&%MM!  Adjj&%MM!  BQ&(zz$**T*"e

3ajj)xx$**T*"e

4 ahh'

3r"   c                     U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  S5        g r  )r   rQ   r%   slicerc   s     r   
_SubscriptUnparser._Subscript  s8    agg

3agg

3r"   c                 \    U R                  S5        U R                  UR                  5        g )Nr   rw  rc   s     r   _StarredUnparser._Starred  s    

3aggr"   c                 &    U R                  S5        g )Nr  r^   rc   s     r   	_EllipsisUnparser._Ellipsis  s    

5r"   c                 :    U R                  UR                  5        g rA   )r   rQ   rc   s     r   _IndexUnparser._Index  s    aggr"   c                 R   UR                   (       a  U R                  UR                   5        U R                  S5        UR                  (       a  U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g )Nr/   )lowerr   r%   uppersteprc   s     r   _SliceUnparser._Slice  sb    77MM!''"

377MM!''"66JJsOMM!&&! r"   c                 P   ^  [        U 4S jT R                  UR                  5        g )Nc                  &   > T R                  S5      $ r\   r^   r0   s   r   r_   $Unparser._ExtSlice.<locals>.<lambda>  ra   r"   )r   r   dimsrc   s   ` r   	_ExtSliceUnparser._ExtSlice   s    +T]]AFFCr"   c                     U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g r  )r%   argr   r   rc   s     r   _argUnparser._arg  s:    

155<<JJtMM!,,' r"   c           	         Sn[        US/ 5      UR                  -   nS /[        U5      [        UR                  5      -
  -  UR                  -   n[	        [        X45      S5       H  u  pVUu  pxU(       a  SnOU R                  S5        U R                  U5        U(       a"  U R                  S5        U R                  U5        U[        [        USS5      5      :X  d  Mz  U R                  S5        M     UR                  (       d  [        US	S5      (       Ga(  U(       a  SnOU R                  S5        U R                  S
5        UR                  (       a  [        UR                  S5      (       aw  U R                  UR                  R                  5        UR                  R                  (       a6  U R                  S5        U R                  UR                  R                  5        OYU R                  UR                  5        [        USS 5      (       a,  U R                  S5        U R                  UR                  5        [        US	S5      (       a  [        UR                  UR                  5       H]  u  pxU(       a  SnOU R                  S5        U R                  U5      4  U(       d  M;  U R                  S5        U R                  U5        M_     UR                  (       Ga  U(       a  SnOU R                  S5        [        UR                  S5      (       a{  U R                  SUR                  R                  -   5        UR                  R                  (       a7  U R                  S5        U R                  UR                  R                  5        g g U R                  SUR                  -   5        [        USS 5      (       a-  U R                  S5        U R                  UR                   5        g g g )NTposonlyargsr   Fr]   = z, /
kwonlyargsr   r8  r   varargannotationr   kwargannotation)r:   r  r   defaults	enumerater  r%   r   varargr)  r8  r   r@  r?  kw_defaultskwargrA  )	r   r=   firstall_argsrB  indexelementsr   ds	            r   
_argumentsUnparser._arguments  s   1mR016696S]S_<=

J(X)@!DOEDAUU**T"MM!

3a GA}b9::

5!  E 88wq,66UU**T"JJsOxx188U++JJqxx||,xx**

4(ahh&9&9:JJqxx(q"4d;;

4(a&8&89 1lE**ALL!--8jj&a !1JJsOMM!$ 9 777UU**T"qww&&

4+,77%%JJt$MM!''"4"45 & 

4<(1/66JJt$MM!"3"34 7 r"   c                     UR                   c  U R                  S5        O,U R                  UR                   5        U R                  S5        U R                  UR                  5        g )Nr   r=  )r8  r%   r   rQ   rc   s     r   _keywordUnparser._keywordE  sB    55=JJtJJquuJJsOaggr"   c                     U R                  S5        U R                  S5        U R                  UR                  5        U R                  S5        U R                  UR                  5        U R                  S5        g )NrU   zlambda r   rV   )r%   r   r  rC   rc   s     r   _LambdaUnparser._LambdaN  sP    

3

9aff

4aff

3r"   c                     U R                  UR                  5        UR                  (       a  U R                  SUR                  -   5        g g Nr   )r%   ri   asnamerc   s     r   _aliasUnparser._aliasV  s2    

16688JJvahh' r"   c                     U R                  UR                  5        UR                  (       a-  U R                  S5        U R                  UR                  5        g g rU  )r   r*  r+  r%   rc   s     r   	_withitemUnparser._withitem[  s:    ann%??JJvMM!//* r"   )r   r   r   N)r   )F)gr<   
__module____qualname____firstlineno____doc__r   stdoutr    r(   r%   r1   r4   r   rF   rJ   rN   rR   rX   rd   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r  r"  r-  r1  r4  r9  rA  rP  rS  rK  r^  ra  rl  rp  rs  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r}   r  r  r
  r   AndOrr  r  r  r  r   r#  r&  r)  r/  r5  r9  rL  rO  rR  rW  rZ  __static_attributes__r>  r"   r   r   r      s@    %(JJ 6*
"  !"E
E##G!$BB',$%N,2 %+,
+3 (,

$"
$*" 

%& s3?D" s3#SPS!D#VY#D2E Ct#T!8$RF wwsvvt,G2
"D(85t(
+r"   r   c                    [         R                  (       a]  [        U S5       n[        R                  " UR
                  5      S   nS S S 5        [        U SWS9 nUR                  5       nS S S 5        O%[        U S5       nUR                  5       nS S S 5        [        WU S[        R                  SS9n[        XQ5        g ! , (       d  f       N= f! , (       d  f       NF= f! , (       d  f       NW= f)Nrbr   r)encodingexecT)dont_inherit)r+   r   opentokenizedetect_encodingreadlinereadcompiler   PyCF_ONLY_ASTr   )filenameoutputpyfilerg  sourcer   s         r   	roundtripru  a  s    
ww(D!V//@CH "(C(3v[[]F 43 (C F[[]F !68VS->->TRDT "!33 ! s#   $B?C?C!?
C
C!
C/c                     [         R                  " U 5       Vs/ s H  oR                  S5      (       d  M  UPM     nnU H  n[         R                  R	                  X5      n[         R                  R                  U5      (       a&  [        5       n[        SU-  5         [        X45        Ml  [         R                  R                  U5      (       d  M  [        U5        M     g s  snf ! [         a"  n[        S[        U5      -  5         S nAM  S nAff = f! [         a    [        SU -  [        R                  S9   g f = f)Nz.pyz
Testing %sz$  Failed to compile, exception is %szDirectory not readable: %sr   )oslistdirr  pathjoinisfiler   r   ru  	Exceptionr7  isdirtestdirOSErrorr   stderr)r   rk   rb   fullnamerr  r   s         r   r~  r~  o  s    "JJqM?MqZZ->M? Aww||A)Hww~~h''!lX-.Lh/ x((! 	 @ ! L@47JKKL  A*Q.SZZ@As>   D C#C#D  C(#D (
D2DD%D?>D?c                 n    U S   S:X  a  U SS   H  n[        U5        M     g U  H  n[        U5        M     g )Nr   z	--testdirr   )r~  ru  )r  r   s     r   mainr    s8    Aw+abAAJ  AaL r"   __main__)r_  rg   r   r   r+   r   r   rw  rk  r   r7  
float_info
max_10_expr~  r   r   r`  ru  r~  r  r<   argvr>  r"   r   <module>r     s    ) 7 
 
 
 	   
S^^..23	3D+ D+L  #zz 
"$ Z!" r"   