
    &Vf                         d dl Z ddlT d dlmZ d dlmZ  G d de          Zd ee j	        j
        dz             z   Z G d	 d
e          ZdZdZeez   Z G d de          Zd ZdS )    N   )*)contextmanager	printablec                   "    e Zd ZddZd Zd ZdS )nullcontextNc                     || _         d S Nenter_result)selfr   s     J/var/www/html/software/conda/lib/python3.11/site-packages/gast/unparser.py__init__znullcontext.__init__;   s    (    c                     | j         S r   r   r   s    r   	__enter__znullcontext.__enter__>   s      r   c                     d S r    )r   excinfos     r   __exit__znullcontext.__exit__A   s    r   r   )__name__
__module____qualname__r   r   r   r   r   r   r	   r	   :   sF        ) ) ) )! ! !    r   r	   1ec                   Z    e Zd ZdZdZdZdZdZdZdZ	dZ
d	ZeZd
ZdZdZdZdZdZdZdZdZdS )_Precedencez5Precedence table that originated from python grammar.r                        	   
                        N)r   r   r   __doc__TUPLEYIELDTESTORANDNOTCMPEXPRBORBXORBANDSHIFTARITHTERMFACTORPOWERAWAITATOMr   r   r   r   r   I   sn        ??EED	
B
C
C
CD
CDDEEDFEEDDDr   r   )'")z"""z'''c                       e Zd ZdZddZd Zd Zd ZddZd	 Z	d
 Z
ed             Zedd            Zed             Zd Zd Zd Zd Zd Zd Z f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"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/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4d4 Z5d5 Z6d6 Z7d7 Z8d8 Z9d9 Z:e;dfd:Z<e;fd;Z=d< Z>d= Z?d> Z@d? ZAd@ ZBdA ZCdB ZDdC ZEdD ZFdE ZGdF ZHdG ZIdH ZJdI ZKdJ ZLdK ZMdL ZNdM ZOdN ZPdOdPdQdRdSZQeRjS        eRjT        eRjT        eRjT        dTZUdU ZVdQdRdVdWdXdYdZd[d\d]d^d_d`daZWeRjX        eRjX        eRjY        eRjY        eRjY        eRjY        eRjZ        eRjZ        eRj[        eRj\        eRj]        eRjY        eRj^        dbZ_ e`dc          Zadd Zbdedfdgdhdidjdkdldmdndo
Zcdp ZddqdrdsZeeRjf        eRjg        dtZhdu Zidv Zjdw Zkdx Zldy Zmdz Znd{ Zod| Zpd} Zqd~ Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Z xZS )	_UnparserzMethods in this class recursively traverse an AST and
    output source code for the abstract syntax; original formatting
    is disregarded.Fc                 Z    g | _         g | _        i | _        i | _        d| _        || _        d S )Nr   )_source_buffer_precedences_type_ignores_indent_avoid_backslashes)r   rL   s     r   r   z_Unparser.__init__j   s5    "4r   c                     t          |          }	  |t          |                     |D ]} |              ||           dS # t          $ r Y dS w xY w)z7Call f on each item in seq, calling inter() in between.N)iternextStopIteration)r   interfseqxs        r   
interleavez_Unparser.interleaver   s~    3ii	Ad3iiLLL   !   	 	 	DD	s   A 
AAc                      t          |          dk    r( ||d                                         d           dS                       fd||           dS )zTraverse and separate the given *items* with a comma and append it to
        the buffer. If *items* is a single item sequence, a trailing comma
        will be added.r   r   ,c                  .                          d          S N, writer   s   r   <lambda>z&_Unparser.items_view.<locals>.<lambda>       DJJt$4$4 r   N)lenr\   rU   )r   	traverseritemss   `  r   
items_viewz_Unparser.items_view~   sa     u::??IeAhJJsOOOOOOO4444iGGGGGr   c                 B    | j         r|                     d           dS dS )z8Adds a newline if it isn't the start of generated source
N)rG   r\   r   s    r   maybe_newlinez_Unparser.maybe_newline   s.    < 	JJt	 	r    c                 n    |                                   |                     d| j        z  |z              dS )zXIndent a piece of text and append it, according to the current
        indentation levelz    N)re   r\   rK   r   texts     r   fillz_Unparser.fill   s:     	

6DL(4/00000r   c                 :    | j                             |           dS )zAppend a piece of textN)rG   appendrh   s     r   r\   z_Unparser.write   s    D!!!!!r   c                 :    | j                             |           d S r   )rH   rl   rh   s     r   buffer_writerz_Unparser.buffer_writer   s    D!!!!!r   c                 l    d                     | j                  }| j                                         |S )Nrf   )joinrH   clearr   values     r   bufferz_Unparser.buffer   s.    %%r   Nc              #      K   |                      d           |r|                      |           | xj        dz  c_        dV  | xj        dz  c_        dS )a  A context manager for preparing the source for blocks. It adds
        the character':', increases the indentation on enter and decreases
        the indentation on exit. If *extra* is given, it will be directly
        appended after the colon character.
        :r   N)r\   rK   )r   extras     r   blockz_Unparser.block   s^       	

3 	JJur   c              #   f   K   |                      |           dV  |                      |           dS )zA context manager for preparing the source for expressions. It adds
        *start* to the buffer and enters, after exit it adds *end*.Nr[   )r   startends      r   delimitz_Unparser.delimit   s6      
 	

5

3r   c                 N    |r|                      ||          S t                      S r   )r|   r	   )r   rz   r{   	conditions       r   
delimit_ifz_Unparser.delimit_if   s(     	!<<s+++== r   c                 ^    |                      dd|                     |          |k              S )z,Shortcut to adding precedence related parens())r   get_precedence)r   
precedencenodes      r   require_parensz_Unparser.require_parens   s+    sC)<)<T)B)BZ)OPPPr   c                 L    | j                             |t          j                  S r   )rI   getr   r2   r   r   s     r   r   z_Unparser.get_precedence   s     $$T;+;<<<r   c                 $    |D ]}|| j         |<   d S r   )rI   )r   r   nodesr   s       r   set_precedencez_Unparser.set_precedence   s+     	1 	1D&0Dd##	1 	1r   c                 F   t          |t          t          t          t          f          rt          |j                  dk     rdS |j        d         }t          |t                    sdS |j        }t          |t                    rt          |j        t                    r|S dS dS )zIf a docstring node is found in the body of the *node* parameter,
        return that docstring node, None otherwise.

        Logic mirrored from ``_PyAST_GetDocString``.r   Nr   )
isinstanceAsyncFunctionDefFunctionDefClassDefModuler_   bodyExprrs   Constantstrr   s     r   get_raw_docstringz_Unparser.get_raw_docstring   s    
 #[(FC
 
 	^^a4y|$%% 	4zdH%% 	*TZ*E*E 	K	 	 	 	r   c                     | j                             |j                  p|j        }|d                    |          S d S )Nz # type: {})rJ   r   linenotype_commentformat)r   r   comments      r   get_type_commentz_Unparser.get_type_comment   sD    $((55J9J ''000 r   c                     t          |t                    r|D ]}|                     |           d S t          t          |                               |           d S r   )r   listtraversesuperrE   visit)r   r   item	__class__s      r   r   z_Unparser.traverse   si    dD!! 	/ $ $d####$ $ )T""((.....r   c                 n    g | _         |                     |           d                    | j                   S )zOutputs a source code string that, if converted back to an ast
        (using ast.parse) will generate an AST equivalent to *node*rf   )rG   r   rp   r   s     r   r   z_Unparser.visit   s1     dwwt|$$$r   c                     |                      |          }|r9|                     |           |                     |j        dd                     d S |                     |j                   d S )Nr   )r   _write_docstringr   r   )r   r   	docstrings      r   "_write_docstring_and_traverse_bodyz,_Unparser._write_docstring_and_traverse_body   sm    **400	 	%!!),,,MM$)ABB-(((((MM$)$$$$$r   c                     d |j         D             | _        |                     |           | j                                         d S )Nc                 N    i | ]"}|j         d                     |j                  #S )zignore{})r   r   tag).0ignores     r   
<dictcomp>z*_Unparser.visit_Module.<locals>.<dictcomp>   s<     
 
 
 M:,,VZ88
 
 
r   )type_ignoresrJ   r   rq   r   s     r   visit_Modulez_Unparser.visit_Module   sW    
 
+
 
 
 	//555  """""r   c                 
                          dd          5                        fd j        |j                   d d d            n# 1 swxY w Y                        d                                |j                   d S )Nr   r   c                  .                          d          S rY   r[   r   s   r   r]   z._Unparser.visit_FunctionType.<locals>.<lambda>      

4(( r    -> )r|   rU   r   argtypesr\   returnsr   s   ` r   visit_FunctionTypez_Unparser.visit_FunctionType   s    \\#s## 	 	OO(((($-  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	

6dl#####s   %A		AAc                     |                                   |                     t          j        |j                   |                     |j                   d S r   )rj   r   r   r1   rs   r   r   s     r   
visit_Exprz_Unparser.visit_Expr  sD    		K-tz:::dj!!!!!r   c                 `   |                      t          j        |          5  |                     t          j        |j        |j                   |                     |j                   |                     d           |                     |j                   d d d            d S # 1 swxY w Y   d S )Nz := )	r   r   r0   r   rA   targetrs   r   r\   r   s     r   visit_NamedExprz_Unparser.visit_NamedExpr  s      !2D99 	& 	& 0$+tzJJJMM$+&&&JJvMM$*%%%		& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A5B##B'*B'c                 z                           d                                 fd j        |j                   d S )Nzimport c                  .                          d          S rY   r[   r   s   r   r]   z(_Unparser.visit_Import.<locals>.<lambda>      

4 0 0 r   )rj   rU   r   namesr   s   ` r   visit_Importz_Unparser.visit_Import  s?    		)0000$-LLLLLr   c                                            d                                d|j        z             |j        r                     |j                                        d                                 fd j        |j                   d S )Nzfrom .z import c                  .                          d          S rY   r[   r   s   r   r]   z,_Unparser.visit_ImportFrom.<locals>.<lambda>  r   r   )rj   r\   levelmodulerU   r   r   r   s   ` r   visit_ImportFromz_Unparser.visit_ImportFrom  s    		'

3#$$$; 	$JJt{###

:0000$-LLLLLr   c                 &   |                                   |j        D ],}|                     |           |                     d           -|                     |j                   |                     |          }|r|                     |           d S d S )N = )rj   targetsr   r\   rs   r   )r   r   r   r   s       r   visit_Assignz_Unparser.visit_Assign  s    		l 	 	FMM&!!!JJudj!!!,,T22 	%JJ|$$$$$	% 	%r   c                     |                                   |                     |j                   |                     d| j        |j        j        j                 z   dz              |                     |j                   d S )N z= )	rj   r   r   r\   binopopr   r   rs   r   s     r   visit_AugAssignz_Unparser.visit_AugAssign)  sh    		dk"""

3DG$5$>??$FGGGdj!!!!!r   c                    |                                   |                     dd|j         ot          |j        t
                              5  |                     |j                   d d d            n# 1 swxY w Y   |                     d           |                     |j                   |j	        r1|                     d           |                     |j	                   d S d S )Nr   r   : r   )
rj   r   simpler   r   Namer   r\   
annotationrs   r   s     r   visit_AnnAssignz_Unparser.visit_AnnAssign/  s
   		__S#4;'X:dkSW;X;XYY 	' 	'MM$+&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'

4do&&&: 	&JJuMM$*%%%%%	& 	&s   A33A7:A7c                     |                      d           |j        r1|                     d           |                     |j                   d S d S )Nreturnr   )rj   rs   r\   r   r   s     r   visit_Returnz_Unparser.visit_Return9  sQ    		(: 	&JJsOOOMM$*%%%%%	& 	&r   c                 0    |                      d           d S )Npassrj   r   s     r   
visit_Passz_Unparser.visit_Pass?  s    		&r   c                 0    |                      d           d S )Nbreakr   r   s     r   visit_Breakz_Unparser.visit_BreakB  s    		'r   c                 0    |                      d           d S )Ncontinuer   r   s     r   visit_Continuez_Unparser.visit_ContinueE  s    		*r   c                 z                           d                                 fd j        |j                   d S )Nzdel c                  .                          d          S rY   r[   r   s   r   r]   z(_Unparser.visit_Delete.<locals>.<lambda>J  r   r   )rj   rU   r   r   r   s   ` r   visit_Deletez_Unparser.visit_DeleteH  s?    		&0000$-NNNNNr   c                     |                      d           |                     |j                   |j        r1|                     d           |                     |j                   d S d S )Nzassert rZ   )rj   r   testmsgr\   r   s     r   visit_Assertz_Unparser.visit_AssertL  sh    		)di   8 	$JJtMM$(#####	$ 	$r   c                 z                           d                                 fd j        |j                   d S )Nzglobal c                  .                          d          S rY   r[   r   s   r   r]   z(_Unparser.visit_Global.<locals>.<lambda>U  r   r   rj   rU   r\   r   r   s   ` r   visit_Globalz_Unparser.visit_GlobalS  s?    		)0000$*djIIIIIr   c                 z                           d                                 fd j        |j                   d S )Nz	nonlocal c                  .                          d          S rY   r[   r   s   r   r]   z*_Unparser.visit_Nonlocal.<locals>.<lambda>Y  r   r   r   r   s   ` r   visit_Nonlocalz_Unparser.visit_NonlocalW  s?    		+0000$*djIIIIIr   c                 X   |                      t          j        |          5  |                     d           |j        rT|                     d           |                     t          j        |j                   |                     |j                   d d d            d S # 1 swxY w Y   d S )Nawaitr   )r   r   r@   r\   rs   r   rA   r   r   s     r   visit_Awaitz_Unparser.visit_Await[        !2D99 	* 	*JJwz *

3##K$4djAAAdj)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*   A1BB#&B#c                 X   |                      t          j        |          5  |                     d           |j        rT|                     d           |                     t          j        |j                   |                     |j                   d d d            d S # 1 swxY w Y   d S )Nyieldr   )r   r   r1   r\   rs   r   rA   r   r   s     r   visit_Yieldz_Unparser.visit_Yieldc  r   r   c                 L   |                      t          j        |          5  |                     d           |j        st          d          |                     t          j        |j                   |                     |j                   d d d            d S # 1 swxY w Y   d S )Nzyield from z-Node can't be used without a value attribute.)	r   r   r1   r\   rs   
ValueErrorr   rA   r   r   s     r   visit_YieldFromz_Unparser.visit_YieldFromk  s      !2D99 	& 	&JJ}%%%: R !PQQQ 0$*===MM$*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A+BB Bc                 <   |                      d           |j        s|j        rt          d          d S |                     d           |                     |j                   |j        r1|                     d           |                     |j                   d S d S )Nraisez*Node can't use cause without an exception.r   z from )rj   exccauser   r\   r   r   s     r   visit_Raisez_Unparser.visit_Raises  s    		'x 	z O !MNNNF

3dh: 	&JJx   MM$*%%%%%	& 	&r   c                    |                      d           |                                 5  |                     |j                   d d d            n# 1 swxY w Y   |j        D ]}|                     |           |j        r[|                      d           |                                 5  |                     |j                   d d d            n# 1 swxY w Y   |j        r^|                      d           |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S d S )Ntryelsefinally)rj   rx   r   r   handlersorelse	finalbody)r   r   exs      r   	visit_Tryz_Unparser.visit_Try  s   		%ZZ\\ 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%- 	 	BMM"; 	+IIf + +dk***+ + + + + + + + + + + + + + +> 	.IIi    . .dn---. . . . . . . . . . . . . . . . . .	. 	.s5   AAA+CCCD55D9<D9c                    |                      d           |j        r/|                     d           |                     |j                   |j        r4|                     d           |                     |j        j                   |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S )Nexceptr    as )rj   typer\   r   nameidrx   r   r   s     r   visit_ExceptHandlerz_Unparser.visit_ExceptHandler  s    		(9 	%JJsOOOMM$)$$$9 	%JJvJJty|$$$ZZ\\ 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   CC
Cc                    |                                   |j        D ],}|                     d           |                     |           -|                     d|j        z              |                     dd|j        p|j                  5  d}|j        D ]1}|r|                     d           nd}|                     |           2|j        D ]1}|r|                     d           nd}|                     |           2	 d d d            n# 1 swxY w Y   | 	                                5  | 
                    |           d d d            d S # 1 swxY w Y   d S )	N@zclass r   r   )r~   FrZ   T)re   decorator_listrj   r   r  r   baseskeywordsr\   rx   r   )r   r   decocommaes        r   visit_ClassDefz_Unparser.visit_ClassDef  s   ' 	  	 DIIcNNNMM$		(TY&'''__S#4:3N_OO 	! 	!EZ ! ! !JJt$$$$ Ea    ] ! ! !JJt$$$$ Ea    !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ZZ\\ 	: 	:33D999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s%   
A5DDD+EEEc                 2    |                      |d           d S )Ndef_function_helperr   s     r   visit_FunctionDefz_Unparser.visit_FunctionDef  s    dE*****r   c                 2    |                      |d           d S )Nz	async defr  r   s     r   visit_AsyncFunctionDefz _Unparser.visit_AsyncFunctionDef  s    dK00000r   c                    |                                   |j        D ],}|                     d           |                     |           -|dz   |j        z   }|                     |           |                     dd          5  |                     |j                   d d d            n# 1 swxY w Y   |j        r/|                     d           |                     |j                   | 	                    | 
                    |                    5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr  r   r   r   r   rw   )re   r  rj   r   r  r|   argsr   r\   rx   r   r   )r   r   fill_suffixr  def_strs        r   r  z_Unparser._function_helper  s   ' 	  	 DIIcNNNMM$#di/		'\\#s## 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%< 	(JJvMM$,'''ZZd33D99Z:: 	: 	:33D999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s$   B((B,/B,D55D9<D9c                 2    |                      d|           d S )Nzfor _for_helperr   s     r   	visit_Forz_Unparser.visit_For  s    &&&&&r   c                 2    |                      d|           d S )Nz
async for r)  r   s     r   visit_AsyncForz_Unparser.visit_AsyncFor  s    t,,,,,r   c                 B   |                      |           |                     |j                   |                     d           |                     |j                   |                     |                     |                    5  |                     |j                   d d d            n# 1 swxY w Y   |j        r^|                      d           |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S d S )N in r$  r  )	rj   r   r   r\   rN   rx   r   r   r  )r   rj   r   s      r   r*  z_Unparser._for_helper  s   		$dk"""

6di   ZZd33D99Z:: 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%; 	+IIf + +dk***+ + + + + + + + + + + + + + + + + +	+ 	+s$   B//B36B3*DDDc                    |                      d           |                     |j                   |                                 5  |                     |j                   d d d            n# 1 swxY w Y   |j        rt          |j                  dk    rt          |j        d         t                    r|j        d         }|                      d           |                     |j                   |                                 5  |                     |j                   d d d            n# 1 swxY w Y   |j        r8t          |j                  dk    r t          |j        d         t                    |j        r^|                      d           |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S d S )Nzif r   r   zelif r  )	rj   r   r   rx   r   r  r_   r   Ifr   s     r   visit_Ifz_Unparser.visit_If  sa   		%di   ZZ\\ 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% k 	)c$+..!33
4;q>SU8V8V3;q>DIIgMM$)$$$ ) )di((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	 k 	)c$+..!33
4;q>SU8V8V3 ; 	+IIf + +dk***+ + + + + + + + + + + + + + + + + +	+ 	+s6   A++A/2A/D,,D03D0&GGGc                    |                      d           |                     |j                   |                                 5  |                     |j                   d d d            n# 1 swxY w Y   |j        r^|                      d           |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S d S )Nzwhile r  )rj   r   r   rx   r   r  r   s     r   visit_Whilez_Unparser.visit_While  sK   		(di   ZZ\\ 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%; 	+IIf + +dk***+ + + + + + + + + + + + + + + + + +	+ 	+s$   A++A/2A/&CCCc                 2                          d                                 fd j        |j                                                             |                    5                       |j                   d d d            d S # 1 swxY w Y   d S )Nzwith c                  .                          d          S rY   r[   r   s   r   r]   z&_Unparser.visit_With.<locals>.<lambda>  r   r   r$  rj   rU   r   ra   rx   r   r   r   s   ` r   
visit_Withz_Unparser.visit_With  s    		'0000$-LLLZZd33D99Z:: 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%   $BBBc                 2                          d                                 fd j        |j                                                             |                    5                       |j                   d d d            d S # 1 swxY w Y   d S )Nzasync with c                  .                          d          S rY   r[   r   s   r   r]   z+_Unparser.visit_AsyncWith.<locals>.<lambda>  r   r   r$  r7  r   s   ` r   visit_AsyncWithz_Unparser.visit_AsyncWith  s    		-   0000$-LLLZZd33D99Z:: 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r9  c                    fd}d                     t          |                    |}dv rd |D             }fd|D             }|s>t                    t          fd|D             d                   }dd	         |gfS rb|                    fd
           |d         d         d	         k    r1t          |d                   dk    sJ dd	         dz   d	         z   |fS )zHelper for writing string literals, minimizing escapes.
        Returns the tuple (string literal to write, possible quote types).
        c                     s| dv r| S | dk    st          d | D                       s(|                     d                              d          S | S )Nz
	\c              3   (   K   | ]}|t           v V  d S r   r   )r   ccs     r   	<genexpr>zE_Unparser._str_literal_helper.<locals>.escape_char.<locals>.<genexpr>  s&      #@#@B)O#@#@#@#@#@#@r   unicode_escapeascii)allencodedecode)cescape_special_whitespaces    r   escape_charz2_Unparser._str_literal_helper.<locals>.escape_char  sd     - fDyy#@#@a#@#@#@ @ @yxx 01188AAAHr   rf   rd   c                 $    g | ]}|t           v |S r   )_MULTI_QUOTES)r   qs     r   
<listcomp>z1_Unparser._str_literal_helper.<locals>.<listcomp>  s"    PPPQQ-=O=Oq=O=O=Or   c                     g | ]}|v|	S r   r   )r   rM  escaped_strings     r   rN  z1_Unparser._str_literal_helper.<locals>.<listcomp>  s#    QQQ.9P9P19P9P9Pr   c              3   0   K   | ]}d          |v |V  dS )r   Nr   )r   rM  strings     r   rB  z0_Unparser._str_literal_helper.<locals>.<genexpr>  s+      CCF1INN!NNNNCCr   r   r   c                 (    | d         d         k    S )Nr   rS  r   )rM  rP  s    r   r]   z/_Unparser._str_literal_helper.<locals>.<lambda>  s    qt~b7I/I r   )keyr    Nr?  )rp   mapreprrO   sortr_   )r   rR  quote_typesrI  rJ  possible_quotesquoterP  s    ` `   @r   _str_literal_helperz_Unparser._str_literal_helper   sU   	 	 	 	 	 [&!9!9::%>!!PP/PPPOQQQQoQQQ 	) &\\FCCCC[CCCVAYOOE!B$<%(( 	Q  %I%I%I%I JJJ q!!$r(:::?1-..!3333!/!4t!;nR>P!P..r   c                     |                      ||          \  }}|d         }|                     d                    ||                     dS )zKWrite string literal value with a best effort attempt to avoid backslashes.rY  r   	{0}{1}{0}N)r\  r\   r   )r   rR  rY  
quote_types       r   _write_str_avoiding_backslashesz)_Unparser._write_str_avoiding_backslashes&  sP    "66v;6WW ^


;%%j&99:::::r   c                    |                      d           | j        r7|                     || j                   |                     | j                   d S g }|j        D ]g}t          | dt          |          j	        z             } ||| j                   |
                    | j        t          |t                    f           hg }t          }|D ]5\  }}|                     |||          \  }}|
                    |           6d                    |          }|d         }|                      d                    ||                     d S )NrR   	_fstring_)rY  rI  rf   r   r_  )r\   rL   _fstring_JoinedStrrn   ra  rt   valuesgetattrr  r   rl   r   r   _ALL_QUOTESr\  rp   r   )	r   r   rt   rs   meth
new_bufferrY  is_constantr`  s	            r   visit_JoinedStrz_Unparser.visit_JoinedStr,  sb   

3" 	##D$*<===00===F [ 	F 	FE4tE{{/C!CDDDD*+++MM4;
5((C(CDEEEE
!"( 	% 	%E;!%!9!9;*5 ": " "E; e$$$$
## ^


;%%j%8899999r   c                     |                      d           |                     || j                   |                     | j                   d S )NrR   )r\   _fstring_FormattedValuern   ra  rt   r   s     r   visit_FormattedValuez_Unparser.visit_FormattedValueK  sF    

3$$T4+=>>>,,T[99999r   c                 |    |j         D ]3}t          | dt          |          j        z             } |||           4d S )Nrc  )re  rf  r  r   )r   r   r\   rs   rh  s        r   rd  z_Unparser._fstring_JoinedStrP  sO    [ 	 	E4tE{{/C!CDDDD	 	r   c                     t          |j        t                    st          d          |j                            dd                              dd          } ||           d S )Nz.Constants inside JoinedStr should be a string.{z{{}z}})r   rs   r   r   replace)r   r   r\   rs   s       r   _fstring_Constantz_Unparser._fstring_ConstantU  s^    $*c** 	OMNNN
""3--55c4@@er   c                     |d            t          |           d          }|                    t          j        dz   |j                   |                    |j                  }|                    d          r |d           d|v rt          d           ||           |j        dk    rEt          |j                  }|d	vrt          d
           |d
                    |                     |j        rF |d           t          | dt          |j                  j        z             } ||j        |            |d           d S )Nrq  T)rL   r   r   r?  z5Unable to avoid backslash in f-string expression partrS  srazUnknown f-string conversion.z!{}rv   rc  rr  )r  r   r   r2   rs   r   
startswithr   
conversionchrr   format_specrf  r   )r   r   r\   unparserexprrx  rh  s          r   rm  z!_Unparser._fstring_FormattedValue[  sR   c


4::666 01 4djAAA~~dj))??3 	E#JJJ4<<TUUUd?b  T_--J&& !?@@@E%,,z**+++ 	*E#JJJ4tD4D/E/E/N!NOODD!5)))c




r   c                 :    |                      |j                   d S r   )r\   r  r   s     r   
visit_Namez_Unparser.visit_Namep  s    

47r   c                     |                                   |j        dk    r|                     d           |                     |j        t
                     d S )Nur^  )rj   kindr\   ra  rs   rL  r   s     r   r   z_Unparser._write_docstrings  sL    		9JJsOOO,,TZ],SSSSSr   c                    t          |t          t          f          ri|                     t	          |                              dt                                        dd                    t                                         d S | j        r,t          |t                    r| 
                    |           d S |                     t	          |                     d S )Ninfnanz	({0}-{0}))r   floatcomplexr\   rW  rs  _INFSTRr   rL   r   ra  rr   s     r   _write_constantz_Unparser._write_constanty  s    eeW-.. 	$ JJU(( 2 27 ; ;<<    
 $ 	$E3)?)? 	$0077777JJtE{{#####r   c                    |j         }t          |t                    rL|                     dd          5  |                     | j        |           d d d            d S # 1 swxY w Y   d S |t          u r|                     d           d S |j        dk    r|                     d           |                     |j                    d S )Nr   r   ...r  )	rs   r   tupler|   rb   r  Ellipsisr\   r  )r   r   rs   s      r   visit_Constantz_Unparser.visit_Constant  s   
eU## 	-c3'' = = 4e<<<= = = = = = = = = = = = = = = = = =hJJuyC

3  ,,,,,s   AA #A c                                            dd          5                        fd j        |j                   d d d            d S # 1 swxY w Y   d S )N[]c                  .                          d          S rY   r[   r   s   r   r]   z&_Unparser.visit_List.<locals>.<lambda>  r^   r   )r|   rU   r   eltsr   s   ` r   
visit_Listz_Unparser.visit_List  s    \\#s## 	P 	POO4444dmTYOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P   %A

AAc                     |                      dd          5  |                     |j                   |j        D ]}|                     |           	 d d d            d S # 1 swxY w Y   d S )Nr  r  r|   r   elt
generatorsr   r   gens      r   visit_ListCompz_Unparser.visit_ListComp      \\#s## 	# 	#MM$(### # #c""""#	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#   :AA#&A#c                     |                      dd          5  |                     |j                   |j        D ]}|                     |           	 d d d            d S # 1 swxY w Y   d S Nr   r   r  r  s      r   visit_GeneratorExpz_Unparser.visit_GeneratorExp  r  r  c                     |                      dd          5  |                     |j                   |j        D ]}|                     |           	 d d d            d S # 1 swxY w Y   d S )Nrq  rr  r  r  s      r   visit_SetCompz_Unparser.visit_SetComp  r  r  c                 6   |                      dd          5  |                     |j                   |                     d           |                     |j                   |j        D ]}|                     |           	 d d d            d S # 1 swxY w Y   d S )Nrq  rr  r   )r|   r   rU  r\   rs   r  r  s      r   visit_DictCompz_Unparser.visit_DictComp  s    \\#s## 	# 	#MM$(###JJtMM$*%%% # #c""""#		# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A)BBBc                    |j         r|                     d           n|                     d           |                     t          j        |j                   |                     |j                   |                     d            | j        t          j        dz   |j        g|j	        R   |                     |j                   |j	        D ],}|                     d           |                     |           -d S )Nz async for z for r/  r    if )
is_asyncr\   r   r   r0   r   r   r2   rN   ifs)r   r   	if_clauses      r   visit_comprehensionz_Unparser.visit_comprehension  s    = 	 JJ}%%%%JJwK-t{;;;dk"""

6K,q0$)GdhGGGGdi    	% 	%IJJvMM)$$$$	% 	%r   c                    |                      t          j        |          5  |                     t          j        dz   |j        |j                   |                     |j                   |                     d           |                     |j                   |                     d           |                     t          j        |j                   |                     |j                   d d d            d S # 1 swxY w Y   d S )Nr   r  z else )	r   r   r2   r   r   r   r   r\   r  r   s     r   visit_IfExpz_Unparser.visit_IfExp  s     !1488 	' 	' 01 4diKKKMM$)$$$JJvMM$)$$$JJx    0$+>>>MM$+&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   CC::C>C>c                      |j         rU                     dd          5                        fd j        |j                    d d d            d S # 1 swxY w Y   d S                      d           d S )Nrq  rr  c                  .                          d          S rY   r[   r   s   r   r]   z%_Unparser.visit_Set.<locals>.<lambda>  s    

4(8(8 r   z{*()})r  r|   rU   r   r\   r   s   ` r   	visit_Setz_Unparser.visit_Set  s    9 	 c3'' T T 8 8 8 8$-SSST T T T T T T T T T T T T T T T T T
 JJws   %AAAc           	            fd fd}                      dd          5                        fd|t          |j        |j                             d d d            d S # 1 swxY w Y   d S )Nc                                          |                                d                                |           d S Nr   r   r\   )kvr   s     r   write_key_value_pairz2_Unparser.visit_Dict.<locals>.write_key_value_pair  s?    MM!JJtMM!r   c                     | \  }}|L                     d                               t          j        |                               |           d S  ||           d S )N**)r\   r   r   r7   r   )r   r  r  r   r  s      r   
write_itemz(_Unparser.visit_Dict.<locals>.write_item  so    DAqy 

4   ##K$4a888a     $$Q*****r   rq  rr  c                  .                          d          S rY   r[   r   s   r   r]   z&_Unparser.visit_Dict.<locals>.<lambda>  r   r   )r|   rU   zipkeysre  )r   r   r  r  s   `  @r   
visit_Dictz_Unparser.visit_Dict  s    	 	 	 	 	
		+ 		+ 		+ 		+ 		+ 		+ \\#s## 	 	OO((((*c$)T[6Q6Q  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3A$$A(+A(c                     |                      dd          5  |                     | j        |j                   d d d            d S # 1 swxY w Y   d S r  )r|   rb   r   r  r   s     r   visit_Tuplez_Unparser.visit_Tuple  s    \\#s## 	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A	A	~not+-)InvertNotUAddUSub)r  r  r  r  c                    | j         |j        j        j                 }| j        |         }|                     ||          5  |                     |           |t          j        ur|                     d           | 	                    ||j
                   |                     |j
                   d d d            d S # 1 swxY w Y   d S )Nr   )unopr   r   r   unop_precedencer   r\   r   r>   r   operandr   )r   r   operatoroperator_precedences       r   visit_UnaryOpz_Unparser.visit_UnaryOp  s    9TW.78"28<  !4d;; 	( 	(JJx    #+*<<<

3 3T\BBBMM$,'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s    A.B;;B?B?r   r  /%<<>>|^&//r  )AddSubMultMatMultDivModLShiftRShiftBitOrBitXorBitAndFloorDivPow)r  r  r   r  r  r  r  r  r  r  r  r  r  )r  c                 
   | j         |j        j        j                 }| j        |         }|                     ||          5  || j        v r|dz   }|}n|}|dz   }|                     ||j                   | 	                    |j                   | 
                    d                    |                     |                     ||j                   | 	                    |j                   d d d            d S # 1 swxY w Y   d S )Nr    {} )r   r   r   r   binop_precedencer   binop_rassocr   leftr   r\   r   right)r   r   r  r  left_precedenceright_precedences         r   visit_BinOpz_Unparser.visit_BinOp!  sG   :dg/89"3H=  !4d;; 	& 	&4,,,"5"9#6  "5#6#: ;;;MM$)$$$JJv}}X../// 0$*===MM$*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s    B+C88C<?C<z==z!=<z<=>z>=iszis notinznot in)
EqNotEqLtLtEGtGtEIsIsNotInNotInc                    |                      t          j        |          5   | j        t          j        dz   |j        g|j        R   |                     |j                   t          |j        |j                  D ]J\  }}| 	                    d| j
        |j        j                 z   dz              |                     |           K	 d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r6   r   r  comparatorsr   r  opsr\   cmpopsr   r   )r   r   or  s       r   visit_Comparez_Unparser.visit_Compare?  s     $77 	! 	!D! 3TYRAQRRRRMM$)$$$DHd&677 ! !1

3Q[-A!BBSHIIIa    !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   B&CCCandor)AndOr)r  r  c                 @     j         |j        j        j                 } j        |         g fd}                     d         |          5  d                    |                                fd||j                   d d d            d S # 1 swxY w Y   d S )Nc                     dxx         dz  cc<                        d         |                                |            d S )Nr   r   )r   r   )r   r  r   s    r   increasing_level_traversez9_Unparser.visit_BoolOp.<locals>.increasing_level_traverseN  sS    """a'""" 3A 6===MM$r   r   r  c                  .                                    S r   r[   )sr   s   r   r]   z(_Unparser.visit_BoolOp.<locals>.<lambda>U  s    DJJqMM r   )	boolopsr   r   r   boolop_precedencer   r   rU   re  )r   r   r  r  r  r	  s   `   @@r   visit_BoolOpz_Unparser.visit_BoolOpJ  s   < 1 :;#5h?@	  	  	  	  	  	 
   !4Q!7>> 	[ 	[h''AOO111113LdkZZZ	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[ 	[s   6BBBc                 ~   |                      t          j        |j                   |                     |j                   t          |j        t                    r4t          |j        j        t                    r|                     d           |                     d           |                     |j	                   d S )Nr   r   )
r   r   rA   rs   r   r   r   intr\   attrr   s     r   visit_Attributez_Unparser.visit_AttributeW  s    K,dj999dj!!! dj(++ 	
4:;KS0Q0Q 	JJsOOO

3

49r   c                    |                      t          j        |j                   |                     |j                   |                     dd          5  d}|j        D ]1}|r|                     d           nd}|                     |           2|j        D ]1}|r|                     d           nd}|                     |           2	 d d d            d S # 1 swxY w Y   d S )Nr   r   FrZ   T)	r   r   rA   funcr   r|   r%  r\   r  )r   r   r  r  s       r   
visit_Callz_Unparser.visit_Callb  sC   K,di888di   \\#s## 	! 	!EY ! ! !JJt$$$$ Ea    ] ! ! !JJt$$$$ Ea    !	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   A5CC Cc                    d }|                      t          j        |j                   |                     |j                   |                     dd          5   ||j                  r&|                     | j        |j        j                   n|                     |j                   d d d            d S # 1 swxY w Y   d S )Nc                 x    t          | t                    o%| j        ot          d | j        D                        S )Nc              3   @   K   | ]}t          |t                    V  d S r   )r   Starred)r   r  s     r   rB  zE_Unparser.visit_Subscript.<locals>.is_simple_tuple.<locals>.<genexpr>|  s,      QQJsG44QQQQQQr   )r   Tupler  any)slice_values    r   is_simple_tuplez2_Unparser.visit_Subscript.<locals>.is_simple_tupleu  sH    
 ;.. R$RQQ@PQQQQQQr   r  r  )	r   r   rA   rs   r   r|   slicerb   r  )r   r   r  s      r   visit_Subscriptz_Unparser.visit_Subscriptt  s    	 	 	 	K,dj999dj!!!\\#s## 	* 	*tz** *tz????dj)))		* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AB77B;>B;c                     |                      d           |                     t          j        |j                   |                     |j                   d S )Nr   )r\   r   r   r7   rs   r   r   s     r   visit_Starredz_Unparser.visit_Starred  sF    

3K,dj999dj!!!!!r   c                 0    |                      d           d S )Nr  r[   r   s     r   visit_Ellipsisz_Unparser.visit_Ellipsis  s    

5r   c                 $   |j         r|                     |j                    |                     d           |j        r|                     |j                   |j        r1|                     d           |                     |j                   d S d S )Nrv   )lowerr   r\   upperstepr   s     r   visit_Slicez_Unparser.visit_Slice  s    : 	&MM$*%%%

3: 	&MM$*%%%9 	%JJsOOOMM$)$$$$$	% 	%r   c                     |                      d           |                     |j                   |                                 5  |j        D ]}|                     |           	 d d d            d S # 1 swxY w Y   d S )Nzmatch )rj   r   subjectrx   cases)r   r   cases      r   visit_Matchz_Unparser.visit_Match  s    		(dl###ZZ\\ 	$ 	$
 $ $d####$	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s    A22A69A6c                     |                      |j        j                   |j        r1|                      d           |                     |j                   d S d S r  )r\   argr  r   r   r   s     r   	visit_argz_Unparser.visit_arg  sX    

48;? 	+JJtMM$/*****	+ 	+r   c                 8   d}|j         |j        z   }d gt          |          t          |j                  z
  z  |j        z   }t	          t          ||          d          D ]\  }}|\  }}|rd}n|                     d           |                     |           |r*|                     d           |                     |           |t          |j                   k    r|                     d           |j        s|j	        r|rd}n|                     d           |                     d           |j        r_|                     |j        j
                   |j        j        r4|                     d           |                     |j        j                   |j	        rvt          |j	        |j                  D ][\  }}|                     d           |                     |           |r*|                     d           |                     |           \|j        r~|rd}n|                     d           |                     d	|j        j
        z              |j        j        r8|                     d           |                     |j        j                   d S d S d S )
NTr   FrZ   =z, /r   r   r  )posonlyargsr%  r_   defaults	enumerater  r\   r   vararg
kwonlyargsr  r   kw_defaultskwarg)	r   r   firstall_argsr2  indexelementsads	            r   visit_argumentsz_Unparser.visit_arguments  s   #di/6S]]S-?-??@4=P(Xx)@)@!DD 	" 	"OE8DAq !

4   MM! !

3a   D,----

5!!! ; 
	:$/ 
	: !

4   JJsOOO{ :

4;>***;) :JJt$$$MM$+"8999 ? 	%DOT-=>> % %1

4   a    %JJsOOOMM!$$$ : 	5 !

4   JJtdjm+,,,z$ 5

4   dj344444	5 	55 5r   c                     |j         |                     d           n/|                     |j                    |                     d           |                     |j                   d S )Nr  r0  )r-  r\   r   rs   r   s     r   visit_keywordz_Unparser.visit_keyword  s\    8JJtJJtx   JJsOOOdj!!!!!r   c                 ~   |                      t          j        |          5  |                     d           |                     |j                   |                     d           |                     t          j        |j                   |                     |j                   d d d            d S # 1 swxY w Y   d S )Nzlambda r   )r   r   r2   r\   r   r%  r   r   r   s     r   visit_Lambdaz_Unparser.visit_Lambda  s      !1488 	% 	%JJy!!!MM$)$$$JJt 0$)<<<MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   BB22B69B6c                     |                      |j                   |j        r|                      d|j        z              d S d S Nr  )r\   r  asnamer   s     r   visit_aliasz_Unparser.visit_alias  sI    

49; 	-JJv+,,,,,	- 	-r   c                     |                      |j                   |j        r1|                     d           |                      |j                   d S d S rD  )r   context_exproptional_varsr\   r   s     r   visit_withitemz_Unparser.visit_withitem  sY    d'((( 	.JJvMM$,-----	. 	.r   c                 ^   |                      d           |                     |j                   |j        r/|                     d           |                     |j                   |                                 5  |                     |j                   d d d            d S # 1 swxY w Y   d S )Nzcase r  )rj   r   patternguardr\   rx   r   r   s     r   visit_match_casez_Unparser.visit_match_case  s    		'dl###: 	&JJvMM$*%%%ZZ\\ 	% 	%MM$)$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   :B""B&)B&c                 :    |                      |j                   d S r   )r   rs   r   s     r   visit_MatchValuez_Unparser.visit_MatchValue  s    dj!!!!!r   c                 :    |                      |j                   d S r   )r  rs   r   s     r   visit_MatchSingletonz_Unparser.visit_MatchSingleton   s    TZ(((((r   c                                            dd          5                        fd j        |j                   d d d            d S # 1 swxY w Y   d S )Nr  r  c                  .                          d          S rY   r[   r   s   r   r]   z/_Unparser.visit_MatchSequence.<locals>.<lambda>  r   r   )r|   rU   r   patternsr   s   ` r   visit_MatchSequencez_Unparser.visit_MatchSequence  s    \\#s## 	 	OO(((($-  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 l    |j         }|d}|                     d                    |                     d S )N_z*{})r  r\   r   )r   r   r  s      r   visit_MatchStarz_Unparser.visit_MatchStar	  s7    y<D

5<<%%&&&&&r   c           
      l     fd}                      dd          5  |j        }                      fd|t          ||j        d                     |j        }|?|r                     d                                d                    |                     d d d            d S # 1 swxY w Y   d S )	Nc                     | \  }}                     |                               d                                |           d S r  r  )pairr  pr   s      r   write_key_pattern_pairz<_Unparser.visit_MatchMapping.<locals>.write_key_pattern_pair  sH    DAqMM!JJtMM!r   rq  rr  c                  .                          d          S rY   r[   r   s   r   r]   z._Unparser.visit_MatchMapping.<locals>.<lambda>  r   r   TstrictrZ   z**{})r|   r  rU   r  rU  restr\   r   )r   r   r^  r  rb  s   `    r   visit_MatchMappingz_Unparser.visit_MatchMapping  s   	 	 	 	 	 \\#s## 	0 	09DOO((((&D$-555  
 9D %JJt$$$

6==..///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   A?B))B-0B-c           
                                t          j        |j                                        |j                                        dd          5  |j        }                      fd j        |           |j        }|rK fd}|r 	                    d                                 fd|t          ||j        d                     d d d            d S # 1 swxY w Y   d S )	Nr   r   c                  .                          d          S rY   r[   r   s   r   r]   z,_Unparser.visit_MatchClass.<locals>.<lambda>)  r   r   c                     | \  }}                     d                    |                                         |           d S )Nz{}=)r\   r   r   )r\  r  rL  r   s      r   write_attr_patternz6_Unparser.visit_MatchClass.<locals>.write_attr_pattern-  sB    $(MD'JJu||D11222MM'*****r   rZ   c                  .                          d          S rY   r[   r   s   r   r]   z,_Unparser.visit_MatchClass.<locals>.<lambda>5  s    DJJt,, r   Tr`  )r   r   rA   clsr   r|   rU  rU   	kwd_attrsr\   r  kwd_patterns)r   r   rU  attrsrg  s   `    r   visit_MatchClassz_Unparser.visit_MatchClass#  sY   K,dh777dh\\#s## 	 	}HOO(((($-   NE + + + + +
  %JJt$$$,,,,&t0>>>  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A;CC#&C#c                    |j         }|j        }||                     d           d S ||                     |j                    d S |                     t          j        |          5  |                     t          j        |j                   |                     |j                   |                     d	                    |j                              d d d            d S # 1 swxY w Y   d S )NrX  z as {})
r  rL  r\   r   r   r2   r   r8   r   r   )r   r   r  rL  s       r   visit_MatchAsz_Unparser.visit_MatchAs:  s   y,<JJsOOOOO_JJty!!!!!$$[%5t<< 7 7##KOT\BBBdl+++

8??49556667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   &A-C  C$'C$c                                           t          j        |          5    j        t          j        dz   g|j        R                         fd j        |j                   d d d            d S # 1 swxY w Y   d S )Nr   c                  .                          d          S )Nz | r[   r   s   r   r]   z)_Unparser.visit_MatchOr.<locals>.<lambda>J  s    DJJu$5$5 r   )r   r   r8   r   rU  rU   r   r   s   ` r   visit_MatchOrz_Unparser.visit_MatchOrG  s      $77 	U 	UD! 3DdmDDDDOO5555t}dmTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Us   AA44A8;A8)F)rf   r   )r   r   r   r/   r   rU   rb   re   rj   r\   rn   propertyrt   r   rx   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   r  r  r  r  r   r"  r  r+  r-  r*  r2  r4  r8  r<  rg  r\  ra  rk  rn  rd  rt  rm  r~  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r5   r>   r  r  r   r<   r=   r;   r8   r9   r:   r?   r  	frozensetr  r  r  r   r
  r4   r3   r  r  r  r  r  r  r!  r&  r+  r.  r>  r@  rB  rF  rJ  rN  rP  rR  rV  rY  rc  rm  ro  rr  __classcell__)r   s   @r   rE   rE   e   s        5 5 5 5
 
 
H H H  
1 1 1 1" " "" " "   X
    ^   ^! ! !Q Q Q= = =1 1 1   1 1 1
/ / / / /% % %% % %# # #$ $ $" " "
& & &M M MM M M% % %" " "& & && & &      O O O$ $ $J J JJ J J* * ** * *& & &
& 
& 
&. . .	% 	% 	%: : :0+ + +1 1 1: : :' ' '- - -
+ 
+ 
++ + +$+ + +% % %% % % #.$/ $/ $/ $/L CN ; ; ; ;: : :>: : :
  
    *  T T T$ $ $
- 
- 
-P P P# # ## # ## # ## # #% % %' ' '       ,6 6 6 %cBBD	 O
( 
( 
(  E" _   9W%%L& & &$  F! ! ! 4((G +{~FF[ [ [	 	 	! ! !$* * *&" " "
  % % %$ $ $+ + +15 15 15f" " "% % %- - -
. . .% % %" " ") ) )  ' ' '0 0 0(  .7 7 7U U U U U U Ur   rE   c                 H    t                      }|                    |           S r   )rE   r   )ast_objr{  s     r   unparserx  L  s    {{H>>'"""r   )sysrf   
contextlibr   rR  r   objectr	   rW  
float_info
max_10_expr  r   _SINGLE_QUOTESrL  rg  NodeVisitorrE   rx  r   r   r   <module>r     s  h 


  % % % % % %          &    cn/!344
4    &   0 },eU eU eU eU eU eU eU eUN# # # # #r   