o
    noi                     @   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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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZT d d	lUmVZV d d
lWmXZX d dlYmZZZ d dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZe d dlfmgZg d dlhmiZimjZjmkZk ee.e*e(e#e)ee e!e'e,e+e%dZleemee f end< eXdddeZdee defddZoeXdddeZdee defddZpeXdddeZdee defddZqeXd ddeZdee defd!d"ZreXd#ddeZdee defd$d%ZseXd&d'deZdee defd(d)ZteXd*d+d,d-eXd*d.d/d-eXd0d1deZdee defd2d3ZueXd4d5d6d-eXd4d7d8d-deZdee defd9d:ZveXd;d<d=d-eXd;d>d?d-deZdee defd@dAZweXdBdCdeZdee defdDdEZxeXdFdGdeZdee defdHdIZyeXdJdKdeZdee defdLdMZzeXdNdOdeZdee defdPdQZ{eXdRdSdeZdee defdTdUZ|eXdVdWdXd-eXdVdYd8d-deZdee defdZd[Z}eXd\d]deZdee defd^d_Z~eXd`dadeZdee defdbdcZeXdddedeZdee defdfdgZeXdhdideZdee defdjdkZeXdldmdeZdee defdndoZeXdpdqdeZdee defdrdsZeXdtdudeZdee defdvdwZeXdxdydeZdee defdzd{ZdeZdee debfd|d}ZeXd~ddeZdee defddZeXdddeZdee defddZdeZdee deeG fddZeXdddeZdee defddZeXdddeZdee defddZeXdddeZdee defddZeXdddeZdee defddZeXdddXd-eXddd8d-deZdee defddZeXdddXd-eXddd8d-deZdee defddZeXdddeZdee defddZeXdddXd-eXddd8d-deZdee defddZeXdddeZdee defddZeXdddeZdee defddZeXdddeZdee defddZeXdddd-eXdddd-deZdee defddZeXdddeZdee defddZdeZdee deeeS ee ef fddĄZeXddd=d-eXddd?d-deZdee defddɄZeXddʃdeZdee defdd̄ZeXdd΃deZdee defddЄZeXdd҃deZdee defddԄZeXddփdeZdee defdd؄ZeXddڃdeZdee defdd܄ZeXddރdeZdee defddZeXdddeZdee defddZeXddd=d-eXddd?d-deZdee defddZeXdddeZdee defddZeXdddeZdee defddZdS )    )AnyDictListOptionalSequenceTupleType)CSTLogicError)ParserSyntaxError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 )rb   rc   child	endmarkerrf   rf   X/home/ubuntu/.local/lib/python3.10/site-packages/libcst/_parser/conversions/statement.pyconvert_stmt_inputz   s   rj   stmtz simple_stmt_line | compound_stmtc                 C   
   |\}|S re   rf   rb   rc   rg   rf   rf   ri   convert_stmt      rn   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   )ru   trailing_whitespace)len	enumeraterO   r)   r_   ru   rN   rv   r   DEFAULTappendvaluewith_changesrZ   )	rb   rc   
statementsrx   	last_stmtbodyi	stmt_bodysemirf   rf   ri   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_linesrx   )rG   r   r]   ru   rx   rb   rc   partialrf   rf   ri   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_whitespacerx   )rH   r   r_   ru   rx   r   rf   rf   ri   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   rl   re   rf   )rb   rc   small_stmt_bodyrf   rf   ri   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 )
Nrr   )r}   rq   )target
annotationequalr}   )r   operatorr}   )r   whitespace_before_equalwhitespace_after_equal)targetsr}   r   )ry   r[   r8   r}   ru   
isinstancerR   r+   r   r   r   r{   rT   r0   r   ranger|   r/   rv   r.   tuple)	rb   rc   	test_nodelhsrhsr   r   r   r   rf   rf   ri   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| jdddtt	t| |jt| |j|d||dS )	Nrq      rt   zInvalid parser state!r   linesraw_line
raw_columnwhitespace_before_indicatorwhitespace_after_indicatorr   )r   r   r}   )
ry   r}   r   r_   ru   rv   r
   r   rR   r   )rb   rc   colonr   r   r}   rf   rf   ri   convert_annassign
  s:   


	r   	augassignzv('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=') (yield_expr | testlist)z>=3.5zo('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=') (yield_expr | testlist)z<3.5c                 C   sZ   |\}}|j tvrtd|j  d| jdddtt|j  t| |jt| |jd|jdS )NzUnexpected token 'z'!r   r   rt   )r   r}   )	stringr`   r
   r   rT   r_   ru   rv   r}   )rb   rc   opexprrf   rf   ri   convert_augassign2  s   


r   assignz#'=' (yield_expr|testlist_star_expr)c                 C   s.   |\}}t tt| |jt| |jd|jdS )Nrt   )r   r}   )rS   r   r_   ru   rv   r}   )rb   rc   r   r   rf   rf   ri   convert_assignV  s   

r   	pass_stmtz'pass'c                 C      |\}t t |jS re   )r[   rD   ru   rb   rc   namerf   rf   ri   convert_pass_stmtb     r   del_stmtz'del' exprlistc                 C   &   |\}}t t|jt| |jd|jS )N)r   whitespace_after_del)r[   r5   r}   r_   rv   ru   )rb   rc   del_nameexprlistrf   rf   ri   convert_del_stmth     r   continue_stmtz
'continue'c                 C   r   re   )r[   r3   ru   r   rf   rf   ri   convert_continue_stmtv  r   r   
break_stmtz'break'c                 C   r   re   )r[   r1   ru   r   rf   rf   ri   convert_break_stmt|  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 )Nrr   rs   )whitespace_after_return)r}   r   )ry   r[   rF   rN   ru   r}   r_   rv   )rb   rc   keywordtestlistrf   rf   ri   convert_return_stmt  s    r   import_stmtzimport_name | import_fromc                 C   rl   re   rf   rm   rf   rf   ri   convert_import_stmt  ro   r   import_namez'import' dotted_as_namesc                 C   r   )N)nameswhitespace_after_import)r[   r>   r   r_   rv   ru   )rb   rc   importtokenr   rf   rf   ri   convert_import_name  r   r   import_relativez+('.' | '...')* dotted_name | ('.' | '...')+c              	   C   s   g }d }|D ]4}t |tr1|jdkr$|t t tt| |jdg q|tt| |jd q|d ur8t |}qt	t
||dS )Nz...rv   )relativemodule)r   r\   r   extendr    r_   rv   r|   r	   rY   r   )rb   rc   dotsdotted_namerg   rf   rf   ri   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 )Nrr   r   ru   r   r   rs   )whitespace_after_fromr   r   whitespace_before_importr   lparr   rpar)ry   r   r\   r"   r   r   r^   rv   r   ru   r   r   r~   rN   r_   r[   r@   )rb   rc   	fromtokenr   r   
importlistpossible_starr   r   r   	lpartokennamespartial	rpartokenr   r   rf   rf   ri   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 Nrr   )r   asnamewhitespace_before_aswhitespace_after_asr   )ry   r?   r   r   r,   r_   ru   rv   rb   rc   r   astokenr   rf   rf   ri   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   )ry   r?   r,   r^   ru   rv   r   r   r   rf   rf   ri   convert_dotted_as_name)  s    
r   import_as_namesz*import_as_name (',' import_as_name)* [',']c                 C   
   t | |S re   _gather_import_namesrb   rc   rf   rf   ri   convert_import_as_names>     
r   dotted_as_namesz$dotted_as_name (',' dotted_as_name)*c                 C   r   re   r   r   rf   rf   ri   convert_dotted_as_namesC  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 )Nrq   rt   comma)r   )rO   r|   r~   r   r^   ru   rv   rX   )rb   rc   r   r   r   rf   rf   ri   r   H  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 )Nrq   rt   )r}   dotattr)r   r   rO   r   r    r^   ru   rv   )rb   rc   leftrestnoder   rightrf   rf   ri   convert_dotted_name`  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 tt	|||d|jS )Nrr   rq   r   )whitespace_before_fromr   item)whitespace_after_raiseexccause)
ry   r   r{   r_   ru   r}   r   r	   r[   rE   )	rb   rc   raise_tokenr
  r  r  test
from_tokensourcerf   rf   ri   convert_raise_stmtv  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 )Nrq   rt   r   )	rO   r|   rB   r   r   r   r_   ru   rv   )rb   r   	nameitemsr   maybe_commarf   rf   ri   _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)r[   r<   r   r  r_   ru   )rb   rc   global_tokenr   rf   rf   ri   convert_global_stmt     
r  nonlocal_stmtz'nonlocal' NAME (',' NAME)*c                 C   r  )Nr   )r   whitespace_after_nonlocal)r[   rC   r   r  r_   ru   )rb   rc   nonlocal_tokenr   rf   rf   ri   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 )Nrq   )whitespace_after_assertr  msgrt   )r   r  r   r!  )ry   r-   r_   ru   r}   r   r[   )rb   rc   assert_tokenr  assert_nodecomma_tokenr!  rf   rf   ri   convert_assert_stmt  s0   
r%  compound_stmtzGif_stmt | while_stmt | asyncable_stmt | try_stmt | classdef | decoratedc                 C   rl   re   rf   )rb   rc   rk   rf   rf   ri   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)ry   r=   r]   ru   r_   rv   r}   )rb   rc   if_tokr  	colon_toksuitetailr+  rf   rf   ri   convert_if_stmt  s   	

r0  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   re   )r0  r   rf   rf   ri   convert_if_stmt_elif  s   
r2  if_stmt_elsez'else' ':' suitec                 C   s(   |\}}}t t| |jt| |j|dS )Nr   whitespace_before_colonr   )r6   r]   ru   r_   )rb   rc   else_tokr-  r.  rf   rf   ri   convert_if_stmt_else  s   

r7  
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   r4  )r   whitespace_after_whiler  r5  r   r+  )ry   r6   r]   ru   r_   rJ   rv   r}   )rb   rc   while_tokenr  while_colon_tokenwhile_suite
else_block
else_tokenelse_colon_token
else_suiter+  rf   rf   ri   convert_while_stmt'  s.   


rA  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   r4  )whitespace_after_forr   whitespace_before_inwhitespace_after_initerr5  r   r+  )	ry   r6   r]   ru   r_   r[   r:   rv   r}   )rb   rc   	for_tokenr   in_tokenr  for_colon_token	for_suiter=  r>  r?  r@  r+  rf   rf   ri   convert_for_stmtJ  sP   

rK  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   elseLogic error!r4  finally)r   typer   r   whitespace_after_exceptr5  )r   r5  r   handlersr+  	finalbody)rO   r   r\   r   r	   r6   r]   ru   r_   r9   rV   r|   r7   rQ  r   r   rR  rI   r   )rb   rc   trytokentry_colon_token	try_suiter  rS  r+  rT  clausecolon_tokenr.  rf   rf   ri   convert_try_stmt{  sf   






rZ  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 )Nrr   rs   rq   r   )r   rR  rQ  r   )ry   rN   r_   rv   r}   r,   ru   r   r   rV   r]   )	rb   rc   except_tokenrR  r  r   r   as_token
name_tokenrf   rf   ri   convert_except_clause  s@   

r_  	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 )Nrq   rt   r   )whitespace_after_withitemsr5  r   )rO   r|   r~   r   r^   ru   rv   r[   rK   r_   r   )	rb   rc   
with_tokenrb  rY  r.  
item_nodes	with_itemr  rf   rf   ri   convert_with_stmt  s<   
rf  re  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 )NrM  r   )r	  r   )ry   r}   r,   r_   ru   rv   rL   )rb   rc   r  r]  	expr_noder   r   rf   rf   ri   convert_with_item  s    

rh  c                 C   sP   t |dkr|\}|j}d }n|\}}|j}tt| |jd}t| |||jfS )Nrr   r   )ry   ru   r   r_   rv   r]   r}   )rb   rc   rk   ru   	asyncnode
asynctokenrf   rf   ri   _extract_async  s   rk  asyncable_funcdefz[ASYNC] funcdeffuncdefc                 C   s    t | |\}}}|j||ddS )Nrf   asynchronousr   lines_after_decorators)rk  r~   )rb   rc   r   ri  rm  rf   rf   ri   convert_asyncable_funcdef2  s   rq  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_paramsrv  returnsr5  r   )rv  rs  r   r   r{   r~   r   ru   rt  r   ru  r   r[   r;   r_   rv   r   r   r   )	rb   rc   defnodenamenodeparam_partialr   r   r.  
parametersrf   rf   ri   convert_funcdef<  sx   


	r  r~  z'(' [typedargslist] ')'c                 C   sD   |^}}}t tt| |jd|st n|d tt| |jddS )Nr   r   r   )r   rv  r   )rW   r   r^   rv   r   r   ru   )rb   rc   r   	paramlistr   rf   rf   ri   convert_parameters}  s   r  funcdef_annotationz	'->' testc                 C   s(   |\}}t t| |jt| |j|jdS )Nr   )r   r^   ru   rv   r}   )rb   rc   arrowtypehintrf   rf   ri   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 )Nrf   )r   rp  whitespace_after_classr   rx  r   r   z***rs   z-Positional argument follows keyword argument.r   r   )r   rp  r  r   rx  r   baseskeywordsr   r5  r   )r]   ru   r_   rv   r   r   r2   argsstarr   r   r|   r   r^   r   )rb   rc   r  r   arglistr   r.  r   r  r|  rx  r   r  r   r  r  current_argargrf   rf   ri   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  rx   )r  ry   r   r   r{   r~   r^   ru   r   r_   rv   r   r4   r]   )
rb   rc   atsignr   r  newlinedecoratornoder   r  r   rf   rf   ri   convert_decorator  s6   


r  
decoratorsz
decorator+c                 C   s
   t |dS )N)r  )rU   r   rf   rf   ri   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   rf   )r   rr   )r   rp  r  )r  r   r~   rp  )rb   rc   r   class_or_funcr   r  rf   rf   ri   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)Nrf   rn  )ro  r   rO  )rk  r   r;   r~   rK   r:   r	   )rb   rc   r   ri  stmtnoderf   rf   ri   convert_asyncable_stmt,  s    


r  r.  z"simple_stmt_suite | indented_suitec                 C   rl   re   rf   )rb   rc   r.  rf   rf   ri   convert_suiteD  ro   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)rA   relative_indentdefault_indentr]   rv   ru   absolute_indent)rb   rc   r  r  stmtsdedentrf   rf   ri   convert_indented_suiteJ  s   r  N)typingr   r   r   r   r   r   r   libcstr	   libcst._exceptionsr
   r   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/   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   rK   rL   libcst._nodes.whitespacerM   rN   libcst._parser.custom_itertoolsrO   #libcst._parser.production_decoratorrP   libcst._parser.types.configrQ   libcst._parser.types.partialsrR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   libcst._parser.types.tokenr\    libcst._parser.whitespace_parserr]   r^   r_   r`   str__annotations__rj   rn   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'  r0  r2  r7  rA  rK  rZ  r_  rf  rh  rk  rq  r  r  r  r  r  r  r  r  r  r  rf   rf   rf   ri   <module>   s  &4T$0# .$$?
!.:%$
@D( 