Ë
    pPêjl  ã                   ó¬   — U d Z ddlZddlmZ ddlZddlmZ  e«       Z	 G d„ dee   «      Z
 e
«       Zeed<   dej                  j                  d	efd
„Zy)zƒ

Evaluate an expression.

Used by stubtest; in a separate file because things break if we don't
put it in a mypyc-compiled file.

é    N)ÚFinal)ÚExpressionVisitorc                   ó
  — e Zd Zdej                  j
                  defd„Zdej                  j                  de	fd„Z
dej                  j                  defd„Zdej                  j                  defd„Zdej                  j"                  defd„Zdej                  j&                  defd„Zdej                  j*                  defd	„Zdej                  j.                  defd
„Zdej                  j2                  defd„Zdej                  j6                  defd„Zdej                  j:                  defd„Zdej                  j>                  defd„Z dej                  jB                  defd„Z"dej                  jF                  defd„Z$dej                  jJ                  defd„Z&dej                  jN                  defd„Z(dej                  jR                  defd„Z*dej                  jV                  defd„Z,dej                  jZ                  defd„Z.dej                  j^                  defd„Z0dej                  jb                  defd„Z2dej                  jf                  defd„Z4dej                  jj                  defd„Z6dej                  jn                  defd„Z8dej                  jr                  defd„Z:dej                  jv                  defd„Z<dej                  jz                  defd„Z>dej                  j~                  defd„Z@dej                  j‚                  defd„ZBdej                  j†                  defd „ZDdej                  jŠ                  defd!„ZFdej                  jŽ                  defd"„ZHdej                  j’                  defd#„ZJdej                  j–                  defd$„ZLdej                  jš                  defd%„ZNdej                  jž                  defd&„ZPdej                  j¢                  defd'„ZRdej                  j¦                  defd(„ZTdej                  jª                  defd)„ZVdej                  j®                  defd*„ZXdej                  j²                  defd+„ZZdej                  j¶                  defd,„Z\dej                  jº                  defd-„Z^dej                  j¾                  defd.„Z`dej                  jÂ                  defd/„Zbdej                  jÆ                  defd0„Zdy1)2Ú_NodeEvaluatorÚoÚreturnc                 ó   — |j                   S ©N©Úvalue©Úselfr   s     úR/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/evalexpr.pyÚvisit_int_exprz_NodeEvaluator.visit_int_expr   ó   € Ø�w‰wˆó    c                 ó   — |j                   S r
   r   r   s     r   Úvisit_str_exprz_NodeEvaluator.visit_str_expr   r   r   c                 ó®   — 	 t        j                  d|j                  › d�«      S # t        $ r& t        j                  d|j                  › d�«      cY S w xY w)Nzb'ú'zb"ú")ÚastÚliteral_evalr   ÚSyntaxErrorr   s     r   Úvisit_bytes_exprz_NodeEvaluator.visit_bytes_expr   sP   € ð	5Ü×#Ñ# b¨¯©¨	° OÓ4Ð4øÜò 	5Ü×#Ñ# b¨¯©¨	° OÓ4Ò4ð	5ús   ‚"% ¥,AÁAc                 ó   — |j                   S r
   r   r   s     r   Úvisit_float_exprz_NodeEvaluator.visit_float_expr"   r   r   c                 ó   — |j                   S r
   r   r   s     r   Úvisit_complex_exprz!_NodeEvaluator.visit_complex_expr%   r   r   c                 ó   — t         S r
   )ÚEllipsisr   s     r   Úvisit_ellipsisz_NodeEvaluator.visit_ellipsis(   s   € Üˆr   c                 ó   — t         S r
   ©ÚUNKNOWNr   s     r   Úvisit_star_exprz_NodeEvaluator.visit_star_expr+   ó   € Üˆr   c                 ón   — |j                   dk(  ry|j                   dk(  ry|j                   dk(  ry t        S )NÚTrueTÚFalseFÚNone)Únamer%   r   s     r   Úvisit_name_exprz_NodeEvaluator.visit_name_expr.   s6   € Ø�6‰6�VÒØØ�V‰V�wÒØØ�V‰V�vÒØô ˆr   c                 ó   — t         S r
   r$   r   s     r   Úvisit_member_exprz _NodeEvaluator.visit_member_expr9   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_yield_from_exprz$_NodeEvaluator.visit_yield_from_expr<   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_yield_exprz_NodeEvaluator.visit_yield_expr?   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_call_exprz_NodeEvaluator.visit_call_exprB   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_op_exprz_NodeEvaluator.visit_op_exprE   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_comparison_exprz$_NodeEvaluator.visit_comparison_exprH   r'   r   c                 ó8   — |j                   j                  | «      S r
   ©ÚexprÚacceptr   s     r   Úvisit_cast_exprz_NodeEvaluator.visit_cast_exprK   ó   € Ø�v‰v�}‰}˜TÓ"Ð"r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_type_form_exprz#_NodeEvaluator.visit_type_form_exprN   r'   r   c                 ó8   — |j                   j                  | «      S r
   r;   r   s     r   Úvisit_assert_type_exprz%_NodeEvaluator.visit_assert_type_exprQ   r?   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_reveal_exprz _NodeEvaluator.visit_reveal_exprT   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_super_exprz_NodeEvaluator.visit_super_exprW   r'   r   c                 óê  — |j                   j                  | «      }|t        u rt        S |j                  dk(  r$t	        |t
        t        t        f«      r| S t        S |j                  dk(  r$t	        |t
        t        t        f«      r|­S t        S |j                  dk(  rt	        |t
        «      r| S t        S |j                  dk(  r(t	        |t        t
        t        t        t        f«      r| S t        S )Nú-ú+ú~Únot)r<   r=   r%   ÚopÚ
isinstanceÚintÚfloatÚcomplexÚboolÚstrÚbytes)r   r   Úoperands      r   Úvisit_unary_exprz_NodeEvaluator.visit_unary_exprZ   sË   € Ø—&‘&—-‘- Ó%ˆØ”gÑÜˆNØ�4‰4�3Š;Ü˜'¤C¬´Ð#8Ô9Ø�x�ô ˆð �T‰T�SŠ[Ü˜'¤C¬´Ð#8Ô9Ø�x�ô ˆð �T‰T�SŠ[Ü˜'¤3Ô'Ø�x�ô ˆð �T‰T�UŠ]Ü˜'¤D¬#¬u´c¼5Ð#AÔBØ"�{Ð"Üˆr   c                 ó8   — |j                   j                  | «      S r
   )r   r=   r   s     r   Úvisit_assignment_exprz$_NodeEvaluator.visit_assignment_exprl   s   € Ø�w‰w�~‰~˜dÓ#Ð#r   c                 ó�   — |j                   D �cg c]  }|j                  | «      ‘Œ }}t        d„ |D «       «      r|S t        S c c}w )Nc              3   ó,   K  — | ]  }|t         u–— Œ y ­wr
   r$   ©Ú.0Úitems     r   ú	<genexpr>z1_NodeEvaluator.visit_list_expr.<locals>.<genexpr>q   ó   è ø€ Ò5 tˆtœ7Ô"Ñ5ùó   ‚)Úitemsr=   Úallr%   ©r   r   r]   ra   s       r   Úvisit_list_exprz_NodeEvaluator.visit_list_expro   s?   € Ø/0¯w©wÖ7 t�—‘˜TÕ"Ð7ˆÐ7ÜÑ5¨uÔ5Ô5ØˆLÜˆùò 8s   �Ac                 óà   — |j                   D ��cg c]/  \  }}|€t        n|j                  | «      |j                  | «      f‘Œ1 }}}t        d„ |D «       «      rt	        |«      S t        S c c}}w )Nc              3   ó>   K  — | ]  \  }}|t         uxr |d u–— Œ y ­wr
   r$   )r\   Úkeyr   s      r   r^   z1_NodeEvaluator.visit_dict_expr.<locals>.<genexpr>z   s&   è ø€ ÒP¹J¸CÀˆsœ'Ð!Ò7 e°4Ð&7Ó7ÑPùs   ‚)ra   r%   r=   rb   Údict)r   r   rg   r   ra   s        r   Úvisit_dict_exprz_NodeEvaluator.visit_dict_expru   sj   € ð  Ÿg™g÷
á��Uð ˜�W¨¯©°DÓ)9¸5¿<¹<ÈÓ;MÒNð
ˆñ 
ô ÑPÈ%ÔPÔPÜ˜“;ÐÜˆùó
s   �4A*c                 ó¢   — |j                   D �cg c]  }|j                  | «      ‘Œ }}t        d„ |D «       «      rt        |«      S t        S c c}w )Nc              3   ó,   K  — | ]  }|t         u–— Œ y ­wr
   r$   r[   s     r   r^   z2_NodeEvaluator.visit_tuple_expr.<locals>.<genexpr>€   r_   r`   )ra   r=   rb   Útupler%   rc   s       r   Úvisit_tuple_exprz_NodeEvaluator.visit_tuple_expr~   sD   € Ø/0¯w©wÖ7 t�—‘˜TÕ"Ð7ˆÐ7ÜÑ5¨uÔ5Ô5Ü˜“<ÐÜˆùò 8ó   �Ac                 ó¢   — |j                   D �cg c]  }|j                  | «      ‘Œ }}t        d„ |D «       «      rt        |«      S t        S c c}w )Nc              3   ó,   K  — | ]  }|t         u–— Œ y ­wr
   r$   r[   s     r   r^   z0_NodeEvaluator.visit_set_expr.<locals>.<genexpr>†   r_   r`   )ra   r=   rb   Úsetr%   rc   s       r   Úvisit_set_exprz_NodeEvaluator.visit_set_expr„   sD   € Ø/0¯w©wÖ7 t�—‘˜TÕ"Ð7ˆÐ7ÜÑ5¨uÔ5Ô5Ü�u“:ÐÜˆùò 8rn   c                 ó   — t         S r
   r$   r   s     r   Úvisit_index_exprz_NodeEvaluator.visit_index_exprŠ   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_type_applicationz%_NodeEvaluator.visit_type_application�   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_lambda_exprz _NodeEvaluator.visit_lambda_expr�   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_list_comprehensionz'_NodeEvaluator.visit_list_comprehension“   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_set_comprehensionz&_NodeEvaluator.visit_set_comprehension–   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_dictionary_comprehensionz-_NodeEvaluator.visit_dictionary_comprehension™   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_generator_exprz#_NodeEvaluator.visit_generator_exprœ   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_slice_exprz_NodeEvaluator.visit_slice_exprŸ   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_conditional_exprz%_NodeEvaluator.visit_conditional_expr¢   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_type_var_exprz"_NodeEvaluator.visit_type_var_expr¥   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_paramspec_exprz#_NodeEvaluator.visit_paramspec_expr¨   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_type_var_tuple_exprz(_NodeEvaluator.visit_type_var_tuple_expr«   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_type_alias_exprz$_NodeEvaluator.visit_type_alias_expr®   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_namedtuple_exprz$_NodeEvaluator.visit_namedtuple_expr±   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_enum_call_exprz#_NodeEvaluator.visit_enum_call_expr´   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_typeddict_exprz#_NodeEvaluator.visit_typeddict_expr·   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_newtype_exprz!_NodeEvaluator.visit_newtype_exprº   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit__promote_exprz"_NodeEvaluator.visit__promote_expr½   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_await_exprz_NodeEvaluator.visit_await_exprÀ   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_template_str_exprz&_NodeEvaluator.visit_template_str_exprÃ   r'   r   c                 ó   — t         S r
   r$   r   s     r   Úvisit_temp_nodez_NodeEvaluator.visit_temp_nodeÆ   r'   r   N)eÚ__name__Ú
__module__Ú__qualname__ÚmypyÚnodesÚIntExprrO   r   ÚStrExprrS   r   Ú	BytesExprÚobjectr   Ú	FloatExprrP   r   ÚComplexExprr   ÚEllipsisExprr"   ÚStarExprr&   ÚNameExprr-   Ú
MemberExprr/   ÚYieldFromExprr1   Ú	YieldExprr3   ÚCallExprr5   ÚOpExprr7   ÚComparisonExprr9   ÚCastExprr>   ÚTypeFormExprrA   ÚAssertTypeExprrC   Ú
RevealExprrE   Ú	SuperExprrG   Ú	UnaryExprrV   ÚAssignmentExprrX   ÚListExprrd   ÚDictExprri   Ú	TupleExprrm   ÚSetExprrr   Ú	IndexExprrt   ÚTypeApplicationrv   Ú
LambdaExprrx   ÚListComprehensionrz   ÚSetComprehensionr|   ÚDictionaryComprehensionr~   ÚGeneratorExprr€   Ú	SliceExprr‚   ÚConditionalExprr„   ÚTypeVarExprr†   ÚParamSpecExprrˆ   ÚTypeVarTupleExprrŠ   ÚTypeAliasExprrŒ   ÚNamedTupleExprrŽ   ÚEnumCallExprr�   ÚTypedDictExprr’   ÚNewTypeExprr”   ÚPromoteExprr–   Ú	AwaitExprr˜   ÚTemplateStrExprrš   ÚTempNoderœ   © r   r   r   r      s9  „ ð §
¡
× 2Ñ 2ð °só ð §
¡
× 2Ñ 2ð °só ð5 $§*¡*×"6Ñ"6ð 5¸6ó 5ð $§*¡*×"6Ñ"6ð ¸5ó ð D§J¡J×$:Ñ$:ð ¸vó ð §
¡
× 7Ñ 7ð ¸Fó ð §¡×!4Ñ!4ð ¸ó ð	 §¡×!4Ñ!4ð 	¸ó 	ð 4§:¡:×#8Ñ#8ð ¸Vó ð t§z¡z×'?Ñ'?ð ÀFó ð $§*¡*×"6Ñ"6ð ¸6ó ð §¡×!4Ñ!4ð ¸ó ð˜tŸz™z×0Ñ0ð °Vó ð t§z¡z×'@Ñ'@ð ÀVó ð# §¡×!4Ñ!4ð #¸ó #ð d§j¡j×&=Ñ&=ð À&ó ð#¨¯
©
×(AÑ(Að #Àfó #ð 4§:¡:×#8Ñ#8ð ¸Vó ð $§*¡*×"6Ñ"6ð ¸6ó ð $§*¡*×"6Ñ"6ð ¸6ó ð$$ t§z¡z×'@Ñ'@ð $ÀVó $ð §¡×!4Ñ!4ð ¸ó ð §¡×!4Ñ!4ð ¸ó ð $§*¡*×"6Ñ"6ð ¸6ó ð §
¡
× 2Ñ 2ð °vó ð $§*¡*×"6Ñ"6ð ¸6ó ð¨¯
©
×(BÑ(Bð Àvó ð 4§:¡:×#8Ñ#8ð ¸Vó ð¨$¯*©*×*FÑ*Fð È6ó ð¨¯©×)DÑ)Dð Èó ð°·
±
×0RÑ0Rð ÐW]ó ð d§j¡j×&>Ñ&>ð À6ó ð $§*¡*×"6Ñ"6ð ¸6ó ð¨¯
©
×(BÑ(Bð Àvó ð T§Z¡Z×%;Ñ%;ð Àó ð d§j¡j×&>Ñ&>ð À6ó ð¨4¯:©:×+FÑ+Fð È6ó ð t§z¡z×'?Ñ'?ð ÀFó ð t§z¡z×'@Ñ'@ð ÀVó ð d§j¡j×&=Ñ&=ð À&ó ð d§j¡j×&>Ñ&>ð À6ó ð D§J¡J×$:Ñ$:ð ¸vó ð T§Z¡Z×%;Ñ%;ð Àó ð $§*¡*×"6Ñ"6ð ¸6ó ð¨¯©×)CÑ)Cð Èó ð §¡×!4Ñ!4ð ¸ô r   r   Ú
_evaluatorr<   r   c                 ó,   — | j                  t        «      S )z‡Evaluate an expression at runtime.

    Return the result of the expression, or UNKNOWN if the expression cannot be
    evaluated.
    )r=   rÒ   )r<   s    r   Úevaluate_expressionrÔ   Í   s   € ð �;‰;”zÓ"Ð"r   )Ú__doc__r   Útypingr   Ú
mypy.nodesr    Úmypy.visitorr   r¥   r%   r   rÒ   Ú__annotations__r¡   Ú
ExpressionrÔ   rÑ   r   r   ú<module>rÛ      s`   ðòó Ý ã Ý *á
‹(€ôtÐ& vÑ.ô tñn #Ó$€
ˆEÓ $ð#˜dŸj™j×3Ñ3ð #¸ô #r   