o
    DDiV                     @   s  U d dl Z d dlZd dl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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+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZd d dlemfZf d dlgmhZh d d	limjZj d d
lkmlZl d dlmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZu d dlvmwZw d dlxmyZy e\eYeMe[ePeAedeVeceGeJeIdZzeje{ej|eD f e}d< eBe`dZ~eje{ej|eE f e}d< eWeQeOeXeReSeTdZeje{ej|eF f e}d< ejdddeldejej dejfddZejdddddeldejej dejfdd Zejd!d"deldejej dejfd#d$Zejd%d&deldejej dejfd'd(Zejd)d*ejd+d,deldejej dejfd-d.Zejd/d0ejd1d2deldejej dejfd3d4Zejd5d6deldejej dejfd7d8Zejd9d:deldejej dejfd;d<Zejd=d>deldejej dejfd?d@ZejdAdBdeldejej dejfdCdDZejdEdFejdGdHejdIdJejdKdLejdMdNejdOdPdQdejdOdRdSddeldejej dejfdTdUZejdVdWdeldejej dejfdXdYZejdZd[deldejej dejfd\d]Zejd^d_deldejej dejfd`daZejdbdcdeldejej dejfdddeZejdfdgdeldejej dejfdhdiZejdjdkdeldejej dejfdldmZejdndodeldejej dejfdpdqZejdrdsdeldejej dejfdtduZejdvdwdeldejej dejfdxdyZejdzd{deldejej dejfd|d}Zejd~ddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejdddddeldejej dejfddZejddddejdddddeldejej dejfddZejdddeldejej dejfddZejddddejddddejdddSddeldejej dejfddZejddddejddddejdddSddeldejej dejfddńZdeldejej dedejej|e= ej|e- ej|e6 f dejej|e$ ej|e. ej|e7 f dejfddʄZejdd̃ejdd΃ejddЃdeldejej dejfdd҄Zdeldejej dedejej|e= ej|e- ej|e6 f dejf
ddԄZejdddQdejdddSddeldejej dejfddلZdeldejej dejdejee9f fdd݄Zdeldejej dejfdd߄Zdejej dejfddZdeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejddddejdddddeldejej dejfddZejdddeldejej dejfddZejdddeldejej dejfddZejddddejdddddeldejej dejfddZejd ddeldejej dejfddZejdddeldejej dejfddZejdd͐d	dejdd
ddejdddddeldejej dejfddZdS (      N)Floatnumber
Imagnumber	Intnumber)PartialParserSyntaxError)MaybeSentinel)2ArgAsynchronous	AttributeAwaitBinaryOperationBooleanOperationCall
ComparisonComparisonTargetCompForCompIfConcatenatedStringDictDictCompDictElementElementEllipsisFloatFormattedStringFormattedStringExpressionFormattedStringTextFromGeneratorExpIfExp	ImaginaryIndexIntegerLambdaLeftCurlyBrace	LeftParenLeftSquareBracketListListCompName	NamedExprParam
ParametersRightCurlyBrace
RightParenRightSquareBracketSetSetCompSliceStarredDictElementStarredElement	SubscriptSubscriptElementTupleUnaryOperationYield)$AddAndAssignEqualBaseBinaryOpBaseBooleanOp
BaseCompOpBitAnd	BitInvertBitOrBitXorColonCommaDivideDotEqualFloorDivideGreaterThanGreaterThanEqualInIsIsNot	LeftShiftLessThanLessThanEqualMatrixMultiplyMinusModuloMultiplyNotNotEqualNotInOrPlusPower
RightShiftSubtract)SimpleWhitespace)grouper)with_production)ParserConfig)ArglistPartialAttributePartialCallPartial FormattedStringConversionPartial FormattedStringFormatSpecPartialSlicePartialSubscriptPartialWithLeadingWhitespace)Token) parse_parenthesizable_whitespace)*@/%z//+-z<<z>>&^|BINOP_TOKEN_LUT)andorBOOLOP_TOKEN_LUT)<>z==z<=z>=inisCOMPOP_TOKEN_LUTexpression_inputz (testlist | star_expr) ENDMARKERconfigchildrenreturnc                 C   s   |\}}t |tr|j}|S N)
isinstancerh   value)r~   r   child	endmarker r   ^/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_parser/conversions/expression.pyconvert_expression_input   s   
r   namedexpr_testztest [':=' test]z>=3.8)versionc                 C   sL   |^}}t |dkr|S |\}}tt|jt| |jt| |j|jd|jS )Nr   )targetwhitespace_before_walruswhitespace_after_walrusr   )lenrh   r)   r   rj   whitespace_beforewhitespace_after)r~   r   test
assignmentwalrusr   r   r   r   convert_namedexpr_test   s"   
r   r   z,or_test ['if' or_test 'else' test] | lambdefc                 C   sh   t |dkr|\}|S |\}}}}}tt|j|j|jt| |jt| |jt| |jt| |jd|jS )N   )bodyr   orelsewhitespace_before_ifwhitespace_after_ifwhitespace_before_elsewhitespace_after_else)r   rh   r   r   rj   r   r   )r~   r   r   r   if_tokenr   
else_tokenr   r   r   r   convert_test   s0   r   test_nocondzor_test | lambdef_nocondc                 C   
   |\}|S r   r   r~   r   r   r   r   r   convert_test_nocond      r   lambdefz'lambda' [varargslist] ':' testlambdef_nocondz&'lambda' [varargslist] ':' test_nocondc           	      C   sx  |^}}}}t t| |jt| |jd}t|dkr"t }tj}n|\}t| |j}|jd urD|jj	tjkrC|j
|jj
|jdd}nc|jri|jd j	tjkrh|j
g |jd d |jd j
|jdR d}n>t|jtr|jj	tjkr|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dR d}|j
td	d
}tt|||j|d|jS )Nr   r   r   )whitespace_after_param)
star_kwarg)kwonly_params)star_arg)params r   )whitespace_after_lambdar   r   colon)rC   rj   r   r   r   r+   r   DEFAULTr   commawith_changesr   r   r   r*   r   r]   rh   r"   r   )	r~   r   lambdatokenr   
colontokenr   r   
parametersr   r   r   r   convert_lambda   s   




r   or_testzand_test ('or' and_test)*and_testznot_test ('and' not_test)*c                 C      |^}}t |dkr|S |j}|j}t|dD ])\}}|jtvr)td|j dt|t|j t| |jt| |j	d|jd}qt
||S Nr      Unexpected token ''!r   leftoperatorright)r   r   r   r^   stringrw   	Exceptionr   rj   r   rh   r~   r   leftexpr
rightexprsr   op	rightexprr   r   r   convert_boolop;  s*   

r   not_testz'not' not_test | comparisonc                 C   sB   t |dkr|\}|S |\}}tttt| |jd|jd|jS )Nr   r   r   
expression)r   rh   r7   rU   rj   r   r   r   )r~   r   r   nottokennottestr   r   r   convert_not_test[  s   r   
comparisonzexpr (comp_op expr)*c                 C   sd   t |dkr|\}|S |^}}g }t|dD ]\}}|t||jd qtt|jt|d|jS )Nr   r   )r   
comparator)r   comparisons)	r   r^   appendr   r   rh   r   tupler   )r~   r   r   lhsrestr   r   r   r   r   r   convert_comparisonq  s   r   comp_opzB('<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not')c                 C   s  t |dkr=|\}|jtv rt|j t| |jt| |jdS |jdv r4tt| |j|jt| |jdS td|j d|\}}|jdkr^|jdkr^tt| |jt| |jt| |jd	S |jd
kr{|jdkr{t	t| |jt| |jt| |jd	S td|j d|j d)Nr   r   )z!=z<>)r   r   r   r   r   notrz   )r   whitespace_betweenr   r{    )
r   r   r|   rj   r   r   rV   r   rW   rM   )r~   r   r   leftcomp	rightcompr   r   r   convert_comp_op  s`   

r   	star_exprz'*' exprc                 C   s(   |\}}t t|jt| |jd|jdS )Nwhitespace_before_valuer   )rh   r3   r   rj   r   )r~   r   starexprr   r   r   convert_star_expr  s   	r   r   zxor_expr ('|' xor_expr)*xor_exprzand_expr ('^' and_expr)*and_exprzshift_expr ('&' shift_expr)*
shift_exprz$arith_expr (('<<'|'>>') arith_expr)*
arith_exprzterm (('+'|'-') term)*termz'factor (('*'|'@'|'/'|'%'|'//') factor)*z>=3.5z#factor (('*'|'/'|'%'|'//') factor)*z<3.5c                 C   r   r   )r   r   r   r^   r   rt   r   r   rj   r   rh   r   r   r   r   convert_binop  s*   


r   factorz('+'|'-'|'~') factor | powerc                 C   s   t |dkr|\}|S |\}}|jdkrtt| |jd}n'|jdkr-tt| |jd}n|jdkr<tt| |jd}n	td|j dtt	||j
d|jS )	Nr   ro   r   rp   ~r   r   r   )r   r   rY   rj   r   rR   r@   r   rh   r7   r   r   )r~   r   r   r   r   opnoder   r   r   convert_factor  s4   


r   powerzatom_expr ['**' factor]c                 C   sR   t |dkr|\}|S |\}}}tt|jtt| |jt| |jd|jd|jS )Nr   r   r   )r   rh   r   r   rZ   rj   r   r   )r~   r   r   r   r   r   r   r   r   convert_power&  s&   
r   	atom_exprz#atom_expr_await | atom_expr_trailerc                 C   r   r   r   r   r   r   r   convert_atom_expr@  r   r   atom_expr_awaitzAWAIT atom_expr_trailerc                 C   s&   |\}}t tt| |j|jd|jS )N)whitespace_after_awaitr   )rh   r
   rj   r   r   r   )r~   r   keywordr   r   r   r   convert_atom_expr_awaitH  s   r   atom_expr_trailerzatom trailer*c                 C   s   |^}}|j }|j}|D ]k}t|tr$t|t| |j |j|j|jd}qt|t	r3t
||j|jd}qt|trtt|jdkr^|jd jtjkr^g |jd d |jd j|jj dR }n|j}t|t| |jj |jjjt|d}qtdt||S )N)r   whitespace_after_valuelbracketslicerbracket)r   dotattrr   r   )whitespace_after_arg)funcwhitespace_after_funcwhitespace_before_argsargszLogic error!)r   r   r   rg   r4   rj   r   r   r   rb   r	   r   r   rc   r   r  r   r   r   r   rparr   lparr   r   r   rh   )r~   r   atomtrailersr   trailerr  r   r   r   convert_atom_expr_trailerX  sJ   




r
  r	  z;trailer_arglist | trailer_subscriptlist | trailer_attributec                 C   r   r   r   r   r   r   r   convert_trailer  s   r  trailer_arglistz'(' [arglist] ')'c                 C   sL   |^}}}t ttt| |jd|j|sdn|d jtt| |jddS )Nr   r   r   r   )r  r  r  )rc   rh   r$   rj   r   r   r  r-   )r~   r   r  arglistr  r   r   r   convert_trailer_arglist  s"   r  trailer_subscriptlistz'[' subscriptlist ']'c                 C   s:   |\}}}t tt| |jd|jtt| |jd|jdS )Nr   r   )r   r   r   r   )rg   r%   rj   r   r   r.   r   )r~   r   r   subscriptlistr   r   r   r   convert_trailer_subscriptlist  s   
r  r  z subscript (',' subscript)* [',']c              
   C   sp   g }t |dD ](\}}|d u r|t|jd q|t|jtt| |jt| |jdd qt||d jS )Nr   )r   r   )r   r   r   )	r^   r   r5   r   rD   rj   r   r   rh   )r~   r   elementsr   r   r   r   r   convert_subscriptlist  s$   r  	subscriptz"test | [test] ':' [test] [sliceop]c                 C   s  t |dkrt|d ts|\}tt|j|jS t|d tr1|^ }}|d j}|j}|j	}n|}|d j}t
j}d }t|d trJd g|}ng |}t |dk rZg |d }|\}	}
}tt|	d urh|	jnd tt| |
jt| |
jd|d ur}|jnd ||d|dS )Nr   r   r      r   )lowerfirst_colonuppersecond_colonstepr   )r   r   ri   rh   r    r   r   rf   r  r  r   r   r1   rC   rj   r   )r~   r   r   otherssliceopr   r  r  slicechildrenr  r  r  r   r   r   convert_subscript  sJ   




r  r  z
':' [test]c                 C   sJ   t |dkr|\}}|j}n|\}d }ttt| |jt| |jd|dS )Nr   r   )r  r  )r   r   rf   rC   rj   r   r   )r~   r   r   r   r  r   r   r   convert_sliceop   s    r  trailer_attributez'.' NAMEc                 C   s2   |\}}t tt| |jt| |jdt|jdS )Nr   )r   r   )rb   rF   rj   r   r   r(   r   )r~   r   r   namer   r   r   convert_trailer_attribute7  s   r"  r  z_atom_parens | atom_squarebrackets | atom_curlybraces | atom_string | atom_basic | atom_ellipsesc                 C   r   r   r   r   r   r   r   convert_atomI  s   r#  
atom_basicz)NAME | NUMBER | 'None' | 'True' | 'False'c                 C   s   |\}|j jdkrtt|j|jS |j jdkrPtt|jr(tt	|j|jS tt
|jr8tt|j|jS tt|jrHtt|j|jS td|j td|j j )NNAMENUMBERzUnparseable number zLogic error, unexpected token )typer!  rh   r(   r   r   re	fullmatchINTNUMBER_REr!   FLOATNUMBER_REr   IMAGNUMBER_REr   r   r   r   r   r   convert_atom_basicT  s   r-  atom_squarebracketsz'[' [testlist_comp_list] ']'c                 C   l   |^}}}t t| |jd}tt| |jd}t|dkr&td||d}n
|d jj||d}t	||jS )Nr   r   r   r   )r   r   )
r%   rj   r   r.   r   r   r&   r   r   rh   )r~   r   lbracket_tokr   rbracket_tokr   r   	list_noder   r   r   convert_atom_squarebracketsn  s   r3  atom_curlybracesz'{' [dictorsetmaker] '}'c                 C   r/  )Nr   r   r   r   )lbracerbrace)
r#   rj   r   r,   r   r   r   r   r   rh   )r~   r   
lbrace_tokr   
rbrace_tokr5  r6  dict_or_set_noder   r   r   convert_atom_curlybraces  s   r:  atom_parensz('(' [yield_expr|testlist_comp_tuple] ')'c                 C   s   |^}}}t t| |jd}tt| |jd}t|dkr9|d j}t|j|g|j	R g |j
|R d|jS ttd|f|fd|jS )Nr   r   r   r   r  r  r   )r$   rj   r   r-   r   r   r   rh   r   r  r  r6   )r~   r   lpar_tokatomsrpar_tokr  r  
inner_atomr   r   r   convert_atom_parens  s.   

rA  atom_ellipsesz'...'c                 C   s   |\}t t |jS r   )rh   r   r   )r~   r   tokenr   r   r   convert_atom_ellipses  s   rD  atom_stringz (STRING | fstring) [atom_string]c                 C   s>   t |dkr
|d S |\}}tt|jt| |j|jd|jS )Nr   r   )r   r   r   )r   rh   r   r   rj   r   )r~   r   r   r   r   r   r   convert_atom_string  s   rF  fstringz*FSTRING_START fstring_content* FSTRING_ENDc                 C   s*   |^}}}t t|jt||jd|jS )N)startpartsend)rh   r   r   r   r   )r~   r   rH  contentrJ  r   r   r   convert_fstring  s
   rL  fstring_contentzFSTRING_STRING | fstring_exprc                 C   s   |\}t |trt|jS |S r   )r   ri   r   r   r   r   r   r   convert_fstring_content  s   

rN  fstring_conversionz'!' NAMEc                 C   s   |\}}t |j|jS r   )rd   r   r   )r~   r   exclaimr!  r   r   r   convert_fstring_conversion  s   rQ  fstring_equalityz'='c                 C   s"   |\}t t| |jt| |jdS )Nr   )r;   rj   r   r   )r~   r   equalr   r   r   convert_fstring_equality  s   rT  fstring_exprzn'{' (testlist_comp_tuple | yield_expr) [ fstring_equality ] [ fstring_conversion ] [ fstring_format_spec ] '}'zY'{' (testlist_comp_tuple | yield_expr) [ fstring_conversion ] [ fstring_format_spec ] '}'z<3.8c           
      C   s   |^}}}}t |dkrt|d tr|d }|dd  }nd }t |dkr:t|d tr:|d j}|dd  }nd }t |dkrH|d j}nd }|d urStd}	nt| |d j}	t	t| |j|j||	||dS )Nr   r   r   r   )whitespace_before_expressionr   rS  whitespace_after_expression
conversionformat_spec)
r   r   r;   rd   r   valuesr]   rj   r   r   )
r~   r   openbrkttestlistconversions	closebrktrS  rX  rY  rW  r   r   r   convert_fstring_expr  s:   


r_  fstring_format_specz':' fstring_content*c                 C   s   |^}}t t||jS r   )re   r   r   )r~   r   r   rK  r   r   r   convert_fstring_format_specK  s   ra  testlist_comp_tuplezQ(namedexpr_test|star_expr) ( comp_for | (',' (namedexpr_test|star_expr))* [','] )z=(test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )z
>=3.5,<3.8z)(test) ( comp_for | (',' (test))* [','] )c                 C      t | |dttdS )NFsingle_child_is_sequencesequence_typecomprehension_type)_convert_testlist_compr6   r   r~   r   r   r   r   convert_testlist_comp_tupleS     rj  testlist_comp_listc                 C   rc  NTrd  )rh  r&   r'   ri  r   r   r   convert_testlist_comp_listn  rk  rn  re  rf  rg  c                 C   sJ   t |dkst|d trt| |||S |\}}t||j|ddd|jS )Nr   r   )eltfor_inr  r  )r   r   ri   _convert_sequencelikerh   r   r   )r~   r   re  rf  rg  ro  rp  r   r   r   rh    s   rh  testlist_star_exprz.(test|star_expr) (',' (test|star_expr))* [',']r\  ztest (',' test)* [',']exprlistz.(expr|star_expr) (',' (expr|star_expr))* [',']c                 C   s   t | |dtdS )NF)re  rf  )rq  r6   ri  r   r   r   convert_test_or_expr_list  s   rt  c                 C   s   |st |dkr|d S g }t|dD ]C\}}|j}|d u r"tj}ntt| |j||d ur4t| |jnt	dd}t
|trK|}	||	j|d q|}
|t|
|d qt||d	d	d
|d jS )Nr   r   r   r   r   r   r   )r   r   r   r<  )r   r^   r   r   r   rD   rj   r   r   r]   r   r3   r   r   r   rh   )r~   r   re  rf  r  wrapped_expr_or_starred_elementcomma_tokenexpr_or_starred_elementr   starred_elementr   r   r   r   rq    s4   

rq  dictorsetmakerz( ((test ':' test | '**' expr) (comp_for | (',' (test ':' test | '**' expr))* [','])) |((test | star_expr)  (comp_for | (',' (test | star_expr))* [','])) )zk( ((test ':' test) (comp_for | (',' (test ':' test))* [','])) |((test)  (comp_for | (',' (test))* [','])) )c                 C   sX   t |dkr't|d tr|d jdks"t|d tr'|d jdkr't| |S t| |S )Nr   :r   **)r   r   ri   r   _convert_dict_convert_setri  r   r   r   convert_dictorsetmaker  s   

r  children_iter
last_childc           
      C   s   t |}t|tr|jdkrt |}t|jt| |jd}n|}t |}t |}t|j|jt| |jt| |j	d}z!t |}	|j
tt| |	j|	|urQt| |	j	ntddd}W |S  tye   Y |S w )Nr|  r   whitespace_before_colonwhitespace_after_colonr   r   ru  )nextr   ri   r   r2   r   rj   r   r   r   r   rD   r]   StopIteration)
r~   r  r  firstr   elementkey	colon_tokr   rw  r   r   r   _convert_dict_element  sR   
r  c                 C   s   t |d to|d jdk}|rt|dk rd n|d }nt|dk r%d n|d }t |tr9|r4tdt| |S t|}|d }g }	 z|t	| || W n	 t
yX   Y nw qDttt||d jS )Nr   r|  r  r      z3dict unpacking cannot be used in dict comprehensionr   )r   ri   r   r   r   r   _convert_dict_compiterr   r  r  rh   r   r   r   )r~   r   is_first_starredpossible_comp_forr  r  r  r   r   r   r}  8  s*   

r}  c              	   C   s:   |\}}}}t t|j|j|t| |jt| |jd|jS )Nr  )rh   r   r   rj   r   r   )r~   r   r  colon_tokenr   comp_forr   r   r   r  S  s   r  c                 C   rc  rm  )rh  r/   r0   ri  r   r   r   r~  f  s   r~  r  zargument (',' argument)* [',']c              	   C   s^   g }t |dD ]#\}}|d u r|| q||jtt| |jt| |jdd qt|S )Nr   r   ru  )r^   r   r   rD   rj   r   r   ra   )r~   r   r  argumentr   r   r   r   convert_arglistr  s"   r  r  zarg_assign_comp_for | star_argc                 C   r   r   r   r   r   r   r   convert_argument  r   r  arg_assign_comp_forztest [comp_for] | test '=' testz<=3.7z0test [comp_for] | test ':=' test | test '=' testc           	      C   s   t |dkr|\}t|jdS t |dkr%|\}}tt|j|ddddS |\}}}|jdkrGt| |}t|tsAtd|dt|jdS t|jt	t
| |jt
| |jd	|jd
S )Nr   r   r   r   r<  z:=z convert_namedexpr_test returned z, not WithLeadingWhitespacer   )r   rS  r   )r   r   r   r   r   r   r   rh   r   r;   rj   r   r   )	r~   r   r   ro  rp  r   rS  rhsvalr   r   r   convert_arg_assign_comp_for  s4   




r  r   z'**' test | '*' testc                 C   s"   |\}}t |jt| |j|jdS )N)r   whitespace_after_starr   )r   r   rj   r   r   )r~   r   r   r   r   r   r   convert_star_arg  s   r  sync_comp_forz/'for' exprlist 'in' or_test comp_if* [comp_for]c           	      C   sv   |^}}}}}t |rt|d tr|^ }}n|d }}t|j|j||t| |jt| |jt| |jt| |jdS )Nr   )r   r  ifsinner_for_inr   whitespace_after_forwhitespace_before_inwhitespace_after_in)r   r   r   r   rj   r   r   )	r~   r   for_tokr   in_tokr  trailingr  r  r   r   r   convert_sync_comp_for  s,   
r  r  z[ASYNC] sync_comp_forz>=3.6z<=3.5c                 C   s<   t |dkr|\}|S |\}}|jt|jdt| |jdS )Nr   r   )asynchronousr   )r   r   r   r   rj   )r~   r   r  	async_tokr   r   r   convert_comp_for  s   
r  comp_ifz'if' test_nocondc                 C   s(   |\}}t |jt| |jt| |jdS )N)r   whitespace_before_test)r   r   rj   r   )r~   r   if_tokr   r   r   r   convert_comp_if  s   r  
yield_exprz'yield' [yield_arg]c                 C   sH   t |dkr|\}td d}n|\}}t|jt| |jd}t||jS )Nr   r  )r   whitespace_after_yield)r   r8   r   rj   r   rh   )r~   r   yield_token
yield_node	yield_argr   r   r   convert_yield_expr  s   r  r  z<3.3z'from' test | testlistz
>=3.3,<3.8z 'from' test | testlist_star_exprc                 C   s<   t |dkr|\}|S |\}}tt|jt| |jd|jS )Nr   )itemwhitespace_after_from)r   rh   r   r   rj   r   )r~   r   r   
from_tokenr   r   r   r   convert_yield_arg$  s   r  )r(  typingtokenizer   r+  r   r,  r   r*  libcst._exceptionsr   libcst._maybe_sentinelr   libcst._nodes.expressionr   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   libcst._nodes.opr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   libcst._nodes.whitespacer]   libcst._parser.custom_itertoolsr^   #libcst._parser.production_decoratorr_   libcst._parser.types.configr`   libcst._parser.types.partialsra   rb   rc   rd   re   rf   rg   rh   libcst._parser.types.tokenri    libcst._parser.whitespace_parserrj   rt   strType__annotations__rw   r|   SequenceAnyr   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:  rA  rD  rF  rL  rN  rQ  rT  r_  ra  rj  rn  boolUnionrh  rt  rq  r  Iteratorr  r}  r  r~  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   sV  
4&(
"




O



?


$



9




<






#







0









0




5






#





