
    mi                         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dS )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                   b   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        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        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Z0dej        j1        defdZ2dej        j3        defdZ4dej        j5        defdZ6dej        j7        defdZ8dej        j9        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        jA        defdZBdej        jC        defd ZDdej        jE        defd!ZFdej        jG        defd"ZHdej        jI        defd#ZJdej        jK        defd$ZLdej        jM        defd%ZNdej        jO        defd&ZPdej        jQ        defd'ZRdej        jS        defd(ZTdej        jU        defd)ZVdej        jW        defd*ZXdej        jY        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        ja        defd/Zbd0S )1_NodeEvaluatororeturnc                     |j         S Nvalueselfr   s     e/var/www/html/bestrading.cuttalo.com/scripts/kaggle-env/lib/python3.11/site-packages/mypy/evalexpr.pyvisit_int_exprz_NodeEvaluator.visit_int_expr   	    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   s^    	5#OOOO444 	5 	5 	5#OOOO44444	5s    '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                 ^    |j         dk    rdS |j         dk    rdS |j         dk    rd S t          S )NTrueTFalseFNone)namer%   r   s     r   visit_name_exprz_NodeEvaluator.visit_name_expr.   s?    6V4Vw5Vv4 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                 6    |j                             |           S r
   expracceptr   s     r   visit_cast_exprz_NodeEvaluator.visit_cast_exprK       v}}T"""r   c                     t           S r
   r$   r   s     r   visit_type_form_exprz#_NodeEvaluator.visit_type_form_exprN   r'   r   c                 6    |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                             |           }|t          u rt          S |j        dk    r&t	          |t
          t          t          f          r| S n|j        dk    r&t	          |t
          t          t          f          r|
 S n`|j        dk    rt	          |t
                    r| S n<|j        dk    r1t	          |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43;;'C#899  x TS[['C#899  x TS[['3''  x TU]]'D#uc5#ABB #"{"r   c                 6    |j                             |           S r
   )r   r=   r   s     r   visit_assignment_exprz$_NodeEvaluator.visit_assignment_exprl   s    w~~d###r   c                 n      fd|j         D             }t          d |D                       r|S t          S )Nc                 :    g | ]}|                               S  r=   .0itemr   s     r   
<listcomp>z2_NodeEvaluator.visit_list_expr.<locals>.<listcomp>p   %    777tT""777r   c              3   (   K   | ]}|t           uV  d S r
   r$   r^   r_   s     r   	<genexpr>z1_NodeEvaluator.visit_list_expr.<locals>.<genexpr>q   '      55tt7"555555r   )itemsallr%   r   r   rf   s   `  r   visit_list_exprz_NodeEvaluator.visit_list_expro   sG    7777qw77755u55555 	Lr   c                       fd|j         D             }t          d |D                       rt          |          S t          S )Nc                 |    g | ]8\  }}|t           n|                              |                              f9S r
   )r%   r=   )r^   keyr   r   s      r   r`   z2_NodeEvaluator.visit_dict_expr.<locals>.<listcomp>v   sR     
 
 
U WWD)9)95<<;M;MN
 
 
r   c              3   6   K   | ]\  }}|t           uo|d uV  d S r
   r$   )r^   rl   r   s      r   rd   z1_NodeEvaluator.visit_dict_expr.<locals>.<genexpr>z   s5      PPJCs'!7e4&7PPPPPPr   )rf   rg   dictr%   rh   s   `  r   visit_dict_exprz_NodeEvaluator.visit_dict_expru   s_    
 
 
 
g
 
 
 PP%PPPPP 	;;r   c                       fd|j         D             }t          d |D                       rt          |          S t          S )Nc                 :    g | ]}|                               S r[   r\   r]   s     r   r`   z3_NodeEvaluator.visit_tuple_expr.<locals>.<listcomp>   ra   r   c              3   (   K   | ]}|t           uV  d S r
   r$   rc   s     r   rd   z2_NodeEvaluator.visit_tuple_expr.<locals>.<genexpr>   re   r   )rf   rg   tupler%   rh   s   `  r   visit_tuple_exprz_NodeEvaluator.visit_tuple_expr~   sN    7777qw77755u55555 	 <<r   c                       fd|j         D             }t          d |D                       rt          |          S t          S )Nc                 :    g | ]}|                               S r[   r\   r]   s     r   r`   z1_NodeEvaluator.visit_set_expr.<locals>.<listcomp>   ra   r   c              3   (   K   | ]}|t           uV  d S r
   r$   rc   s     r   rd   z0_NodeEvaluator.visit_set_expr.<locals>.<genexpr>   re   r   )rf   rg   setr%   rh   s   `  r   visit_set_exprz_NodeEvaluator.visit_set_expr   sN    7777qw77755u55555 	u::r   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_temp_nodez_NodeEvaluator.visit_temp_node   r'   r   N)c__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   ListExprri   DictExprro   	TupleExprrt   SetExprry   	IndexExprr{   TypeApplicationr}   
LambdaExprr   ListComprehensionr   SetComprehensionr   DictionaryComprehensionr   GeneratorExprr   	SliceExprr   ConditionalExprr   TypeVarExprr   ParamSpecExprr   TypeVarTupleExprr   TypeAliasExprr   NamedTupleExprr   EnumCallExprr   TypedDictExprr   NewTypeExprr   PromoteExprr   	AwaitExprr   TempNoder   r[   r   r   r   r      s       
 2 s    
 2 s    5$*"6 56 5 5 5 5$*"6 5    DJ$: v    
 7 F    !4     	!4 	 	 	 	 	4:#8 V    tz'? F    $*"6 6    !4     tz0 V    tz'@ V    #!4 # # # # #dj&= &    #
(A #f # # # #4:#8 V    $*"6 6    $*"6 6    $$tz'@ $V $ $ $ $!4     !4     $*"6 6    
 2 v    $*"6 6    
(B v    4:#8 V    $**F 6    )D     
0R W]    dj&> 6    $*"6 6    
(B v    TZ%;     dj&> 6    4:+F 6    tz'? F    tz'@ V    dj&= &    dj&> 6    DJ$: v    TZ%;     $*"6 6    !4       r   r   
_evaluatorr<   r   c                 6    |                      t                    S )zEvaluate 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      


           * * * * * *
&((q q q q q&v. q q qh #N$$
E $ $ $#dj3 # # # # # # #r   