o
     wi                     @   s0  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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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZg d dlhmiZi d d	ljmkZk d d
llmmZm d dlnmoZo d dlpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZx d dlymzZz d dl{m|Z| e_e\ePe^eSeDegeYefeJeMeLdZ}eje~ejeG f ed< eEecdZeje~ejeH f ed< eZeTeRe[eUeVeWdZeje~ejeI f ed< emdddeodejej dejfddZemdddddeodejej dejfd d!Zemd"d#deodejej dejfd$d%Zemd&d'deodejej dejfd(d)Zemd*d+emd,d-deodejej dejfd.d/Zemd0d1emd2d3deodejej dejfd4d5Zemd6d7deodejej dejfd8d9Zemd:d;deodejej dejfd<d=Zemd>d?deodejej dejfd@dAZemdBdCdeodejej dejfdDdEZemdFdGemdHdIemdJdKemdLdMemdNdOemdPdQdRdemdPdSdTddeodejej dejfdUdVZemdWdXdeodejej dejfdYdZZemd[d\deodejej dejfd]d^Zemd_d`deodejej dejfdadbZemdcdddeodejej dejfdedfZemdgdhdeodejej dejfdidjZemdkdldeodejej dejfdmdnZemdodpdeodejej dejfdqdrZemdsdtdeodejej dejfdudvZemdwdxdeodejej dejfdydzZemd{d|deodejej dejfd}d~Zemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemdddddeodejej dejfddZemddddemdddddeodejej dejfddZemdddeodejej dejfddZemddddemddddemdddTddeodejej dejfddÄZemddddemddddemdddTddeodejej dejfddƄZdeodejej dedejeje@ eje0 eje9 f dejeje' eje1 eje: f dejfdd˄Zemdd̓emddσemddуdeodejej dejfddӄZdeodejej dedejeje@ eje0 eje9 f dejf
ddՄZemdddRdemdddTddeodejej dejfddڄZdeodejej dejdejee<f fddބZdeodejej dejfddZdejej dejfddZdeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemddddemdddddeodejej dejfddZemdddeodejej dejfddZemdddeodejej dejfddZemddddemdddddeodejej dejfdd Zemdddeodejej dejfddZemdddeodejej dejfddZemd	dΐd
demd	dddemd	ddddeodejej dejfddZdS (      N)Floatnumber
Imagnumber	Intnumber)CSTLogicError)ParserSyntaxError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)
isinstancerj   value)r   r   child	endmarker r   b/home/ubuntu/sommelier/.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   )lenrj   r+   r   rl   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   rj   r    r   rl   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)rE   rl   r   r   r   r-   r   DEFAULTr   commawith_changesr   r   r   r,   r   r_   rj   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| jdddt|t|j t	| |jt	| |j
d|jd}qt||S Nr      Unexpected token ''!linesraw_line
raw_columnr   leftoperatorright)r   r   r   r`   stringry   r   r   r   rl   r   rj   r   r   leftexpr
rightexprsr   op	rightexprr   r   r   convert_boolop<  s4   

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   rj   r9   rW   rl   r   r   r   )r   r   r   nottokennottestr   r   r   convert_not_testa  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   rj   r   tupler   )r   r   r   lhsrestr   r   r   r   r   r   convert_comparisonw  s   r   comp_opzB('<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not')c                 C   s$  t |dkrB|\}|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dd|\}}|jd	krc|jd
krct	t| |jt| |jt| |jdS |jdkr|jd	krt
t| |jt| |jt| |jdS td|j d|j d| jddd)Nr   r   )z!=z<>)r   r   r   r   r   r   r   notr|   )r   whitespace_betweenr   r}    )r   r   r~   rl   r   r   rX   r   r   rY   rO   )r   r   r   leftcomp	rightcompr   r   r   convert_comp_op  st   

r   	star_exprz'*' exprc                 C   s(   |\}}t t|jt| |jd|jdS )Nwhitespace_before_valuer   )rj   r5   r   rl   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   rv   r   r   r   rl   r   rj   r   r   r   r   convert_binop  s4   


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| jddd	t	t
||jd
|jS )Nr   rq   r   rr   ~r   r   r   r   r   )r   r   r[   rl   r   rT   rB   r   r   rj   r9   r   r   )r   r   r   r   r   opnoder   r   r   convert_factor  s>   


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   rj   r   r   r\   rl   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_exprZ  r   r   atom_expr_awaitzAWAIT atom_expr_trailerc                 C   s&   |\}}t tt| |j|jd|jS )N)whitespace_after_awaitr   )rj   r   rl   r   r   r   )r   r   keywordr   r   r   r   convert_atom_expr_awaitb  s   r   atom_expr_trailerzatom trailer*c                 C   s   |^}}|j }|j}|D ]j}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 t||S )N)r   whitespace_after_valuelbracketslicerbracket)r   dotattrr   r   )whitespace_after_arg)funcwhitespace_after_funcwhitespace_before_argsargs)r   r   r   ri   r6   rl   r   r  r  rd   r   r  r  re   r   r	  r   r   r   r   rparr   lparr   r   r   rj   )r   r   atomtrailersr   trailerr	  r   r   r   convert_atom_expr_trailerr  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
  )re   rj   r&   rl   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   )ri   r'   rl   r   r   r0   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   r7   r   rF   rl   r   r   rj   )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   rk   rj   r"   r   r   rh   r  r  r   r   r3   rE   rl   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   rh   rE   rl   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  )rd   rH   rl   r   r   r*   r   )r   r   r  namer   r   r   convert_trailer_attributeQ  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_atomc  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rUt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 | jdddtd|j j | jddd)NNAMENUMBERzUnparseable number r   r   zLogic error, unexpected token )typer&  rj   r*   r   r   re	fullmatchINTNUMBER_REr#   FLOATNUMBER_REr   IMAGNUMBER_REr!   r   r   r   r   r   r   convert_atom_basicn  s0   
r2  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'   rl   r   r0   r   r   r(   r   r   rj   )r   r   lbracket_tokr   rbracket_tokr   r  	list_noder   r   r   convert_atom_squarebrackets  s   r8  atom_curlybracesz'{' [dictorsetmaker] '}'c                 C   r4  )Nr   r   r   r   )lbracerbrace)
r%   rl   r   r.   r   r   r   r   r   rj   )r   r   
lbrace_tokr   
rbrace_tokr:  r;  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&   rl   r   r/   r   r   r   rj   r   r  r
  r8   )r   r   lpar_tokatomsrpar_tokr  r
  
inner_atomr   r   r   convert_atom_parens  s.   

rF  atom_ellipsesz'...'c                 C   s   |\}t t |jS r   )rj   r   r   )r   r   tokenr   r   r   convert_atom_ellipses  s   rI  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   rj   r   r   rl   r   )r   r   r   r   r   r   r   convert_atom_string  s   rK  fstringz*FSTRING_START fstring_content* FSTRING_ENDc                 C   s*   |^}}}t t|jt||jd|jS )N)startpartsend)rj   r   r   r   r   )r   r   rM  contentrO  r   r   r   convert_fstring  s
   rQ  fstring_contentzFSTRING_STRING | fstring_exprc                 C   s   |\}t |trt|jS |S r   )r   rk   r   r   r   r   r   r   convert_fstring_content  s   

rS  fstring_conversionz'!' NAMEc                 C   s   |\}}t |j|jS r   )rf   r   r   )r   r   exclaimr&  r   r   r   convert_fstring_conversion  s   rV  fstring_equalityz'='c                 C   s"   |\}t t| |jt| |jdS )Nr   )r=   rl   r   r   )r   r   equalr   r   r   convert_fstring_equality&  s   rY  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   rX  whitespace_after_expression
conversionformat_spec)
r   r   r=   rf   r   valuesr_   rl   r   r   )
r   r   openbrkttestlistconversions	closebrktrX  r]  r^  r\  r   r   r   convert_fstring_expr5  s:   


rd  fstring_format_specz':' fstring_content*c                 C   s   |^}}t t||jS r   )rg   r   r   )r   r   r   rP  r   r   r   convert_fstring_format_speco  s   rf  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_compr8   r   r   r   r   r   r   convert_testlist_comp_tuplew     ro  testlist_comp_listc                 C   rh  NTri  )rm  r(   r)   rn  r   r   r   convert_testlist_comp_list  rp  rs  rj  rk  rl  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   rk   _convert_sequencelikerj   r   r   )r   r   rj  rk  rl  rt  ru  r   r   r   rm    s   rm  testlist_star_exprz.(test|star_expr) (',' (test|star_expr))* [',']ra  ztest (',' test)* [',']exprlistz.(expr|star_expr) (',' (expr|star_expr))* [',']c                 C   s   t | |dtdS )NF)rj  rk  )rv  r8   rn  r   r   r   convert_test_or_expr_list  s   ry  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   rA  )r   r`   r   r   r   rF   rl   r   r   r_   r   r5   r   r   r   rj   )r   r   rj  rk  r  wrapped_expr_or_starred_elementcomma_tokenexpr_or_starred_elementr   starred_elementr   r   r   r   rv    s4   

rv  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   rk   r   _convert_dict_convert_setrn  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   rz  )nextr   rk   r   r4   r   rl   r   r   r   r   rF   r_   StopIteration)
r   r  r  firstr   elementkey	colon_tokr   r|  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   rk   r   r   r   r   _convert_dict_compiterr   r  r  rj   r   r   r   )r   r   is_first_starredpossible_comp_forr  r  r  r   r   r   r  \  s*   

r  c              	   C   s:   |\}}}}t t|j|j|t| |jt| |jd|jS )Nr  )rj   r   r   rl   r   r   )r   r   r  colon_tokenr   comp_forr   r   r   r  w  s   r  c                 C   rh  rr  )rm  r1   r2   rn  r   r   r   r    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   rz  )r`   r   r   rF   rl   r   r   rc   )r   r   r	  argumentr   r   r   r   convert_arglist  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   rA  z:=z convert_namedexpr_test returned z, not WithLeadingWhitespacer   )r   rX  r   )r   r	   r   r   r   r   r   rj   	TypeErrorr=   rl   r   r   )	r   r   r   rt  ru  r   rX  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   rl   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   rl   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   rl   )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   rl   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   r:   r   rl   r   rj   )r   r   yield_token
yield_node	yield_argr   r   r   convert_yield_expr3  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   rj   r   r   rl   r   )r   r   r   
from_tokenr   r   r   r   convert_yield_argH  s   r  )r-  typingtokenizer   r0  r   r1  r   r/  libcstr   libcst._exceptionsr   r   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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   libcst._nodes.opr;   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\   r]   r^   libcst._nodes.whitespacer_   libcst._parser.custom_itertoolsr`   #libcst._parser.production_decoratorra   libcst._parser.types.configrb   libcst._parser.types.partialsrc   rd   re   rf   rg   rh   ri   rj   libcst._parser.types.tokenrk    libcst._parser.whitespace_parserrl   rv   strType__annotations__ry   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(  r2  r8  r?  rF  rI  rK  rQ  rS  rV  rY  rd  rf  ro  rs  boolUnionrm  ry  rv  r  Iteratorr  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   sX  
4&(
"




O
#


I

#
)



9




<



#


#







0





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