o
    DDiŸ                     @   s
  U d dl mZmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN d dlOmPZPmQZQ d dlRmSZS d d	lTmUZU d d
lVmWZW d dlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZb d dlcmdZd d dlemfZfmgZgmhZh ee+e'e%e e&eeee$e)e(e"dZieejee f ekd< eUdddeWdee defddZleUdddeWdee defddZmeUdddeWdee defddZneUdddeWdee defd d!ZoeUd"ddeWdee defd#d$ZpeUd%d&deWdee defd'd(ZqeUd)d*d+d,eUd)d-d.d,eUd/d0deWdee defd1d2ZreUd3d4d5d,eUd3d6d7d,deWdee defd8d9ZseUd:d;d<d,eUd:d=d>d,deWdee defd?d@ZteUdAdBdeWdee defdCdDZueUdEdFdeWdee defdGdHZveUdIdJdeWdee defdKdLZweUdMdNdeWdee defdOdPZxeUdQdRdeWdee defdSdTZyeUdUdVdWd,eUdUdXd7d,deWdee defdYdZZzeUd[d\deWdee defd]d^Z{eUd_d`deWdee defdadbZ|eUdcdddeWdee defdedfZ}eUdgdhdeWdee defdidjZ~eUdkdldeWdee defdmdnZeUdodpdeWdee defdqdrZeUdsdtdeWdee defdudvZeUdwdxdeWdee defdydzZdeWdee de_fd{d|ZeUd}d~deWdee defddZeUdddeWdee defddZdeWdee deeD fddZeUdddeWdee defddZeUdddeWdee defddZeUdddeWdee defddZeUdddeWdee defddZeUdddWd,eUddd7d,deWdee defddZeUdddWd,eUddd7d,deWdee defddZeUdddeWdee defddZeUdddWd,eUddd7d,deWdee defddZeUdddeWdee defddZeUdddeWdee defddZeUdddeWdee defddZeUdddd,eUdddd,deWdee defddZeUdddeWdee defddZdeWdee deeeP ee ef fddÄZeUddd<d,eUddd>d,deWdee defddȄZeUddɃdeWdee defdd˄ZeUdd̓deWdee defddτZeUddуdeWdee defddӄZeUddՃdeWdee defddׄZeUddكdeWdee defddۄZeUdd݃deWdee defdd߄ZeUdddeWdee defddZeUddd<d,eUddd>d,deWdee defddZeUdddeWdee defddZeUdddeWdee defddZdS )    )AnyDictListOptionalSequenceTupleType)PartialParserSyntaxError)MaybeSentinel)
AnnotationArgAsynchronous	AttributeCallFrom	LeftParenNameParam
Parameters
RightParen)	AddAssignAssignEqual	BaseAugOpBitAndAssignBitOrAssignBitXorAssignCommaDivideAssignDotFloorDivideAssign
ImportStarLeftShiftAssignMatrixMultiplyAssignModuloAssignMultiplyAssignPowerAssignRightShiftAssign	SemicolonSubtractAssign)"	AnnAssignAsNameAssertAssignAssignTarget	AugAssignBreakClassDefContinue	DecoratorDelElseExceptHandlerExprFinallyForFunctionDefGlobalIfImportImportAlias
ImportFromIndentedBlockNameItemNonlocalPassRaiseReturnSimpleStatementLineSimpleStatementSuiteTryWhileWithWithItem)	EmptyLineSimpleWhitespace)grouper)with_production)ParserConfig)
AnnAssignPartialAssignPartialAugAssignPartialDecoratorPartialExceptClausePartialFuncdefPartialImportPartialImportRelativePartialSimpleStatementPartialWithLeadingWhitespace)Token)parse_empty_lines parse_parenthesizable_whitespaceparse_simple_whitespace)z+=z-=z*=z@=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=AUGOP_TOKEN_LUT
stmt_inputzstmt ENDMARKERconfigchildrenreturnc                 C   s   |\}}|S N )r`   ra   child	endmarkerrd   rd   ]/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_parser/conversions/statement.pyconvert_stmt_inputy   s   rh   stmtz simple_stmt_line | compound_stmtc                 C   
   |\}|S rc   rd   r`   ra   re   rd   rd   rg   convert_stmt      rl   simple_stmt_partialz*small_stmt (';' small_stmt)* [';'] NEWLINEc           	      C   s   |^ }}t |d }g }tt|dD ]9\}\}}|d ur@||d kr1tt| |jtdd}ntt| |jt| |jd}ntj	}|
|jj|d qt||d j|dS )N       whitespace_beforewhitespace_after)	semicolonr   )rs   trailing_whitespace)len	enumeraterM   r'   r]   rs   rL   rt   r
   DEFAULTappendvaluewith_changesrX   )	r`   ra   
statementsrv   	last_stmtbodyi	stmt_bodysemird   rd   rg   convert_simple_stmt_partial   s6   
	r   simple_stmt_linec                 C       |\}t |jt| |j|jdS )z\
    This function is similar to convert_simple_stmt_suite, but yields a different type
    )leading_linesrv   )rE   r   r[   rs   rv   r`   ra   partialrd   rd   rg   convert_simple_stmt_line      
r   simple_stmt_suitec                 C   r   )z[
    This function is similar to convert_simple_stmt_line, but yields a different type
    )leading_whitespacerv   )rF   r   r]   rs   rv   r   rd   rd   rg   convert_simple_stmt_suite   r   r   
small_stmtzexpr_stmt | del_stmt | pass_stmt | break_stmt | continue_stmt | return_stmt| raise_stmt | yield_stmt | import_stmt | global_stmt | nonlocal_stmt| assert_stmtc                 C   rj   rc   rd   )r`   ra   small_stmt_bodyrd   rd   rg   convert_small_stmt   s   r   	expr_stmtz5testlist_star_expr (annassign | augassign | assign* )z>=3.6)versionz)testlist_star_expr (augassign | assign* )z<=3.5
yield_stmt
yield_exprc           	      C   s  t |dkr|\}tt|jd|jS t |dkrM|\}}t|tr:tt|j|j|j	d u r0t
jn|j	|jd|jS t|trMtt|j|j|jd|jS g }tt |d D ]}|| j}||d  j	}|t||j|jd qWttt||d jd|d	 jS )
Nrp   )r{   ro   )target
annotationequalr{   )r   operatorr{   )r   whitespace_before_equalwhitespace_after_equal)targetsr{   r   )rw   rY   r6   r{   rs   
isinstancerP   r)   r   r   r
   ry   rR   r.   r   rangerz   r-   rt   r,   tuple)	r`   ra   	test_nodelhsrhsr   r   r   r   rd   rd   rg   convert_expr_stmt   sJ   


	
r   	annassignz':' test ['=' test]z
>=3.6,<3.8z.':' test ['=' (yield_expr|testlist_star_expr)]z>=3.8c                 C   s   t |dkr|\}}|j}d }d }n%t |dkr3|\}}}}|j}|j}tt| |jt| |jd}ntdttt| |jt| |j|d||dS )Nro      rr   zInvalid parser state!whitespace_before_indicatorwhitespace_after_indicatorr   )r   r   r{   )	rw   r{   r   r]   rs   rt   	ExceptionrP   r   )r`   ra   colonr   r   r{   rd   rd   rg   convert_annassign	  s6   

	r   	augassignzv('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=') (yield_expr | testlist)z>=3.5zo('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=') (yield_expr | testlist)z<3.5c                 C   sP   |\}}|j tvrtd|j  dtt|j  t| |jt| |jd|jdS )NzUnexpected token 'z'!rr   )r   r{   )stringr^   r   rR   r]   rs   rt   r{   )r`   ra   opexprrd   rd   rg   convert_augassign/  s   


r   assignz#'=' (yield_expr|testlist_star_expr)c                 C   s.   |\}}t tt| |jt| |jd|jdS )Nrr   )r   r{   )rQ   r   r]   rs   rt   r{   )r`   ra   r   r   rd   rd   rg   convert_assignM  s   

r   	pass_stmtz'pass'c                 C      |\}t t |jS rc   )rY   rB   rs   r`   ra   namerd   rd   rg   convert_pass_stmtY     r   del_stmtz'del' exprlistc                 C   &   |\}}t t|jt| |jd|jS )N)r   whitespace_after_del)rY   r3   r{   r]   rt   rs   )r`   ra   del_nameexprlistrd   rd   rg   convert_del_stmt_     r   continue_stmtz
'continue'c                 C   r   rc   )rY   r1   rs   r   rd   rd   rg   convert_continue_stmtm  r   r   
break_stmtz'break'c                 C   r   rc   )rY   r/   rs   r   rd   rd   rg   convert_break_stmts  r   r   return_stmtz'return' [testlist]z<=3.7z'return' [testlist_star_expr]c                 C   sN   t |dkr|\}tttdd|jS |\}}tt|jt| |jd|jS )Nrp   rq   )whitespace_after_return)r{   r   )rw   rY   rD   rL   rs   r{   r]   rt   )r`   ra   keywordtestlistrd   rd   rg   convert_return_stmty  s    r   import_stmtzimport_name | import_fromc                 C   rj   rc   rd   rk   rd   rd   rg   convert_import_stmt  rm   r   import_namez'import' dotted_as_namesc                 C   r   )N)nameswhitespace_after_import)rY   r<   r   r]   rt   rs   )r`   ra   importtokenr   rd   rd   rg   convert_import_name  r   r   import_relativez+('.' | '...')* dotted_name | ('.' | '...')+c              	   C   s   g }d }|D ]5}t |tr1|jdkr$|t t tt| |jdg q|tt| |jd q|d ur9td|}qt	t
||dS )Nz...rt   Logic error!)relativemodule)r   rZ   r   extendr   r]   rt   rz   r   rW   r   )r`   ra   dotsdotted_namere   rd   rd   rg   convert_import_relative  s4   


r   import_fromzQ'from' import_relative 'import' ('*' | '(' import_as_names ')' | import_as_names)c                 C   s  |^}}}}t |dkr |\}t|trt }n|j}d }d }	n|\}
}}tt| |
jd}|j}tt| |j	d}	t |j
dkrb|jd u rb|j
d j}g |j
d d |j
d jtddR }n	t| |j	}|j
}ttt| |j||j|t| |j|||	d|j	S )Nrp   r   rs   r   r   rq   )whitespace_after_fromr   r   whitespace_before_importr   lparr   rpar)rw   r   rZ   r    r   r   r\   rt   r   rs   r   r   r|   rL   r]   rY   r>   )r`   ra   	fromtokenr   r   
importlistpossible_starr   r   r   	lpartokennamespartial	rpartokenr   r   rd   rd   rg   convert_import_from  sd   


r   import_as_namezNAME ['as' NAME]c                 C   s`   t |dkr|\}tt|jd dS |\}}}tt|jtt| |jt| |jt|jddS Nrp   )r   asnamewhitespace_before_aswhitespace_after_asr   )rw   r=   r   r   r*   r]   rs   rt   r`   ra   r   astokenr   rd   rd   rg   convert_import_as_name  s    
r   dotted_as_namezdotted_name ['as' NAME]c                 C   sT   t |dkr|\}t|d dS |\}}}t|tt| |jt| |jt|jddS r   )rw   r=   r*   r\   rs   rt   r   r   r   rd   rd   rg   convert_dotted_as_name   s    
r   import_as_namesz*import_as_name (',' import_as_name)* [',']c                 C   
   t | |S rc   _gather_import_namesr`   ra   rd   rd   rg   convert_import_as_names5     
r   dotted_as_namesz$dotted_as_name (',' dotted_as_name)*c                 C   r   rc   r   r   rd   rd   rg   convert_dotted_as_names:  r   r   c              	   C   s`   g }t |dD ]#\}}|d u r|| q||jtt| |jt| |jdd qt|dS )Nro   rr   comma)r   )rM   rz   r|   r   r\   rs   rt   rV   )r`   ra   r   r   r   rd   rd   rg   r   ?  s"   
r   r   zNAME ('.' NAME)*c                 C   sV   |^}}t |j}t|dD ]\}}t|tt| |jt| |jdt |jd}q|S )Nro   rr   )r{   dotattr)r   r   rM   r   r   r\   rs   rt   )r`   ra   leftrestnoder   rightrd   rd   rg   convert_dotted_nameW  s    
r  
raise_stmtz'raise' [test ['from' test]]c           	      C   s   t |dkr|\}tj}d }d }n@t |dkr'|\}}t| |j}|j}d }n*t |dkrM|\}}}}t| |j}|j}tt| |jt| |j|jd}ntdtt	|||d|jS )Nrp   ro   r   )whitespace_before_fromr   itemr   )whitespace_after_raiseexccause)
rw   r
   ry   r]   rs   r{   r   r   rY   rC   )	r`   ra   raise_tokenr  r  r  test
from_tokensourcerd   rd   rg   convert_raise_stmtm  s8   
r  r   c              
   C   sj   g }t |dD ]+\}}|d u r|tt|j q|tt|jtt| |jt| |jdd q|S )Nro   rr   r   )	rM   rz   r@   r   r   r   r]   rs   rt   )r`   r   	nameitemsr   maybe_commard   rd   rg   _construct_nameitems  s$   r  global_stmtz'global' NAME (',' NAME)*c                 C   2   |^}}t ttt| |t| |d jd|jS )Nr   )r   whitespace_after_global)rY   r:   r   r  r]   rs   )r`   ra   global_tokenr   rd   rd   rg   convert_global_stmt     
r  nonlocal_stmtz'nonlocal' NAME (',' NAME)*c                 C   r  )Nr   )r   whitespace_after_nonlocal)rY   rA   r   r  r]   rs   )r`   ra   nonlocal_tokenr   rd   rd   rg   convert_nonlocal_stmt  r  r  assert_stmtz'assert' test [',' test]c                 C   sz   t |dkr|\}}tt| |j|jd d}n |\}}}}tt| |j|jtt| |jt| |jd|jd}t||jS )Nro   )whitespace_after_assertr
  msgrr   )r  r
  r   r  )rw   r+   r]   rs   r{   r   rY   )r`   ra   assert_tokenr
  assert_nodecomma_tokenr  rd   rd   rg   convert_assert_stmt  s0   
r!  compound_stmtzGif_stmt | while_stmt | asyncable_stmt | try_stmt | classdef | decoratedc                 C   rj   rc   rd   )r`   ra   ri   rd   rd   rg   convert_compound_stmt  s   r#  if_stmtz/'if' test ':' suite [if_stmt_elif|if_stmt_else]z9'if' namedexpr_test ':' suite [if_stmt_elif|if_stmt_else]c                 C   sT   |^}}}}}t |dkr|\}nd }tt| |jt| |j|jt| |j||dS )Nr   )r   whitespace_before_testr
  whitespace_after_testr   orelse)rw   r;   r[   rs   r]   rt   r{   )r`   ra   if_tokr
  	colon_toksuitetailr'  rd   rd   rg   convert_if_stmt  s   	

r,  if_stmt_elifz1'elif' test ':' suite [if_stmt_elif|if_stmt_else]z;'elif' namedexpr_test ':' suite [if_stmt_elif|if_stmt_else]c                 C   r   rc   )r,  r   rd   rd   rg   convert_if_stmt_elif  s   
r.  if_stmt_elsez'else' ':' suitec                 C   s(   |\}}}t t| |jt| |j|dS )Nr   whitespace_before_colonr   )r4   r[   rs   r]   )r`   ra   else_tokr)  r*  rd   rd   rg   convert_if_stmt_else  s   

r3  
while_stmtz)'while' test ':' suite ['else' ':' suite]z3'while' namedexpr_test ':' suite ['else' ':' suite]c                 C   sv   |^}}}}}t |dkr"|\}}}	tt| |jt| |j|	d}
nd }
tt| |jt| |j|jt| |j||
dS )Nr   r0  )r   whitespace_after_whiler
  r1  r   r'  )rw   r4   r[   rs   r]   rH   rt   r{   )r`   ra   while_tokenr
  while_colon_tokenwhile_suite
else_block
else_tokenelse_colon_token
else_suiter'  rd   rd   rg   convert_while_stmt  s.   


r=  for_stmtz9'for' exprlist 'in' testlist ':' suite ['else' ':' suite]c                 C   s   |^}}}}}}}t |dkr$|\}	}
}tt| |	jt| |
j|d}nd }ttt| |j|jt| |jt| |j|jt| |j||d|jS )Nr   r0  )whitespace_after_forr   whitespace_before_inwhitespace_after_initerr1  r   r'  )	rw   r4   r[   rs   r]   rY   r8   rt   r{   )r`   ra   	for_tokenr   in_tokenr
  for_colon_token	for_suiter9  r:  r;  r<  r'  rd   rd   rg   convert_for_stmtA  sP   

rG  try_stmtzm('try' ':' suite ((except_clause ':' suite)+ ['else' ':' suite] ['finally' ':' suite] | 'finally' ':' suite))c                 C   s  |^}}}}g }d }d }t |dD ]f\}	}
}t|	trY|	jdkr8|d ur(tdtt| |	jt| |
j|d}q|	jdkrU|d urEtdt	t| |	jt| |
j|d}qtdt|	t
rt|t||	j|	j|	j|	jt| |
jd qtdtt| |jt| |j|t|||dS )N   elser   r0  finally)r   typer   r   whitespace_after_exceptr1  )r   r1  r   handlersr'  	finalbody)rM   r   rZ   r   r   r4   r[   rs   r]   r7   rT   rz   r5   rL  r   r   rM  rG   r   )r`   ra   trytokentry_colon_token	try_suiter   rN  r'  rO  clausecolon_tokenr*  rd   rd   rg   convert_try_stmtr  sf   






rU  except_clausez'except' [test ['as' NAME]]c           	      C   s   t |dkr|\}td}d }d }n7t |dkr(|\}}t| |j}|j}d }n!|\}}}}t| |j}|j}tt| |jt| |jt|jd}t	t
| |j|||dS )Nrp   rq   ro   r   )r   rM  rL  r   )rw   rL   r]   rt   r{   r*   rs   r   r   rT   r[   )	r`   ra   except_tokenrM  r
  r   r   as_token
name_tokenrd   rd   rg   convert_except_clause  s@   

rZ  	with_stmtz,'with' with_item (',' with_item)*  ':' suitez>=3.1z'with' with_item ':' suitez<3.1c           	   	   C   s   |^}}}}g }t |dD ]#\}}|d ur,||jtt| |jt| |jdd q|| qttt	| |jt
|t	| |j|d|jS )Nro   rr   r   )whitespace_after_withitemsr1  r   )rM   rz   r|   r   r\   rs   rt   rY   rI   r]   r   )	r`   ra   
with_tokenr]  rT  r*  
item_nodes	with_itemr  rd   rd   rg   convert_with_stmt  s<   
ra  r`  ztest ['as' expr]c                 C   sZ   t |dkr|\}}}|j}tt| |jt| |j|jd}n|\}|j}d }t||dS )NrI  r   )r  r   )rw   r{   r*   r]   rs   rt   rJ   )r`   ra   r
  rX  	expr_noder   r   rd   rd   rg   convert_with_item  s    

rc  c                 C   sP   t |dkr|\}|j}d }n|\}}|j}tt| |jd}t| |||jfS )Nrp   r   )rw   rs   r   r]   rt   r[   r{   )r`   ra   ri   rs   	asyncnode
asynctokenrd   rd   rg   _extract_async  s   rf  asyncable_funcdefz[ASYNC] funcdeffuncdefc                 C   s    t | |\}}}|j||ddS )Nrd   asynchronousr   lines_after_decorators)rf  r|   )r`   ra   r   rd  rh  rd   rd   rg   convert_asyncable_funcdef)  s   rl  z4'def' NAME parameters [funcdef_annotation] ':' suitec           	      C   sf  |^}}}}}}|j }|jd ur&|jjtjkr%|j|jj|jjdd}nf|jrL|jd jtjkrK|jg |jd d |jd j|jjdR d}n@t	|j
trg|j
jtjkrf|j|j
j|jjdd}n%|j r|j d jtjkr|jg |j d d |j d j|jjdR d}ttt| |jt|jt| |j|jj||sd n|d t| |j|d|jS )	N)whitespace_after_param)
star_kwargr   )kwonly_params)star_arg)paramsr   )whitespace_after_defr   whitespace_after_namewhitespace_before_paramsrq  returnsr1  r   )rq  rn  r   r
   ry   r|   r   rs   ro  r   rp  r   rY   r9   r]   rt   r   r   r   )	r`   ra   defnodenamenodeparam_partialr   r   r*  
parametersrd   rd   rg   convert_funcdef3  sx   


	rz  ry  z'(' [typedargslist] ')'c                 C   sD   |^}}}t tt| |jd|st n|d tt| |jddS )Nr   r   r   )r   rq  r   )rU   r   r\   rt   r   r   rs   )r`   ra   r   	paramlistr   rd   rd   rg   convert_parameterst  s   r|  funcdef_annotationz	'->' testc                 C   s(   |\}}t t| |jt| |j|jdS )Nr   )r   r\   rs   rt   r{   )r`   ra   arrowtypehintrd   rd   rg   convert_funcdef_annotation  s   r  classdefz*'class' NAME ['(' [arglist] ')'] ':' suitec                 C   s  |^}}}}}t | |j}t| |j}t|j}	t| |j}
|s+t|d||	|
|dS |^}}}|r8|d jng }g }g }|}|D ]*}|jdksN|j	d urP|}||u rg|jdksc|jdkrg|j	d u rgt
d|| qBt|d||	|
tt| |jd||tt| |jd	t| |j|d
S )Nrd   )r   rk  whitespace_after_classr   rs  r   r   z***rq   z-Positional argument follows keyword argument.r   r   )r   rk  r  r   rs  r   baseskeywordsr   r1  r   )r[   rs   r]   rt   r   r   r0   argsstarr   r	   rz   r   r\   r   )r`   ra   r  r   arglistr   r*  r   r  rw  rs  r   r  r   r  r  current_argargrd   rd   rg   convert_classdef  sf   

r  	decoratorz-'@' dotted_name [ '(' [arglist] ')' ] NEWLINEc           
      C   s   |^}}}}|s|}n=|^}}}	|r|d j ng }t|dkr7|d jtjkr7|d jt| |	jd|d< t|t	| |jt| |j
t|d}tt| |jt	| |j
||dS )Nr   r   )whitespace_after_arg)funcwhitespace_after_funcwhitespace_before_argsr  )r   whitespace_after_atr  rv   )r  rw   r   r
   ry   r|   r\   rs   r   r]   rt   r   r2   r[   )
r`   ra   atsignr   r  newlinedecoratornoder   r  r   rd   rd   rg   convert_decorator  s6   


r  
decoratorsz
decorator+c                 C   s
   t |dS )N)r  )rS   r   rd   rd   rg   convert_decorators  r   r  	decoratedz)decorators (classdef | asyncable_funcdef)c                 C   sV   |\}}|j d j}|j d jddg|j dd  R }|j|g |j|jR |dS )Nr   rd   )r   rp   )r   rk  r  )r  r   r|   rk  )r`   ra   r   class_or_funcr   r  rd   rd   rg   convert_decorated  s   r  asyncable_stmtz([ASYNC] (funcdef | with_stmt | for_stmt)zfuncdef | with_stmt | for_stmtc                 C   sb   t | |\}}}t|tr|j||ddS t|tr!|j||dS t|tr-|j||dS td)Nrd   ri  )rj  r   r   )rf  r   r9   r|   rI   r8   r   )r`   ra   r   rd  stmtnoderd   rd   rg   convert_asyncable_stmt#  s    


r  r*  z"simple_stmt_suite | indented_suitec                 C   rj   rc   rd   )r`   ra   r*  rd   rd   rg   convert_suite;  rm   r  indented_suitezNEWLINE INDENT stmt+ DEDENTc              	   C   s@   |^}}}}t ||j| jkrd n|j|t| |j|jjddS )N)override_absolute_indent)headerindentr   footer)r?   relative_indentdefault_indentr[   rt   rs   absolute_indent)r`   ra   r  r  stmtsdedentrd   rd   rg   convert_indented_suiteA  s   r  N)typingr   r   r   r   r   r   r   libcst._exceptionsr	   libcst._maybe_sentinelr
   libcst._nodes.expressionr   r   r   r   r   r   r   r   r   r   r   libcst._nodes.opr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   libcst._nodes.statementr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   libcst._nodes.whitespacerK   rL   libcst._parser.custom_itertoolsrM   #libcst._parser.production_decoratorrN   libcst._parser.types.configrO   libcst._parser.types.partialsrP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   libcst._parser.types.tokenrZ    libcst._parser.whitespace_parserr[   r\   r]   r^   str__annotations__rh   rl   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.  r3  r=  rG  rU  rZ  ra  rc  rf  rl  rz  r|  r  r  r  r  r  r  r  r  rd   rd   rd   rg   <module>   s  &4T$0# ."$?
!.:%$
@D( 