Ë
    pPêjÄ$  ã                  ó„  — U d dl mZ d dlmZ d dl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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< d dl=m>Z> e?edf   Z@deAd<   dd	„ZBdd
„ZCdd„ZDdd„ZE G d„ de>e@dz     «      ZF eF«       ZGdeAd<   y)é    )Úannotations)ÚIterable)ÚAnyÚFinalÚ	TypeAlias)3Ú
LITERAL_NOÚLITERAL_TYPEÚLITERAL_YESÚAssertTypeExprÚAssignmentExprÚ	AwaitExprÚ	BytesExprÚCallExprÚCastExprÚComparisonExprÚComplexExprÚConditionalExprÚDictExprÚDictionaryComprehensionÚEllipsisExprÚEnumCallExprÚ
ExpressionÚ	FloatExprÚGeneratorExprÚ	IndexExprÚIntExprÚ
LambdaExprÚListComprehensionÚListExprÚ
MemberExprÚNamedTupleExprÚNameExprÚNewTypeExprÚOpExprÚParamSpecExprÚPromoteExprÚ
RevealExprÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚStrExprÚ	SuperExprÚTemplateStrExprÚTempNodeÚ	TupleExprÚTypeAliasExprÚTypeApplicationÚTypedDictExprÚTypeFormExprÚTypeVarExprÚTypeVarTupleExprÚ	UnaryExprÚVarÚ	YieldExprÚYieldFromExpr)ÚExpressionVisitor.Ú
_TypeAliasÚKeyc                ó,   — | j                  t        «      S )a›  Generate a hashable, (mostly) opaque key for expressions supported by the binder.

    These allow using expressions as dictionary keys based on structural/value
    matching (instead of based on expression identity).

    Return None if the expression type is not supported (it cannot be narrowed).

    See the comment above for more information.

    NOTE: This is not directly related to literal types.
    )ÚacceptÚ_hasher©Úes    úR/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/literals.pyÚliteral_hashrD   g   s   € ð �8‰8”GÓÐó    c                ó^  — t        | t        «      rt        d„ | j                  D «       «      S t        | t        «      r2t        t        | j                  «      t        | j                  «      «      S t        | t        t        t        f«      rt        | j                  «      S t        | t        «      rt        | j                  «      S t        | t        «      r7t        | j                  «      t         k(  rt        | j"                  «      S t$        S t        | t&        «      rRt        | j(                  t*        «      r2| j(                  j,                  r| j(                  j.                  �t         S t0        S t        | t2        t4        t6        t8        t:        f«      rt         S t=        | «      rt         S t$        S )z*Return the literal kind for an expression.c              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úliteral©Ú.0Úos     rC   ú	<genexpr>zliteral.<locals>.<genexpr>z   s   è ø€ Ò2 !”7˜1—:Ñ2ùó   ‚)Ú
isinstancer   ÚminÚoperandsr$   rI   ÚleftÚrightr    r7   r+   Úexprr   Útargetr   Úindexr
   Úbaser   r"   Únoder8   Úis_finalÚfinal_valuer	   r   r   r   r,   r   rD   rA   s    rC   rI   rI   v   s  € ô �!”^Ô$ÜÑ2 q§z¡zÔ2Ó2Ð2ä	�A”vÔ	Ü”7˜1Ÿ6™6“?¤G¨A¯G©GÓ$4Ó5Ð5ä	�Aœ
¤I¬xÐ8Ô	9Ü�q—v‘v‹Ðä	�A”~Ô	&Ü�q—x‘xÓ Ð ä	�A”yÔ	!Ü�1—7‘7Óœ{Ò*Ü˜1Ÿ6™6“?Ð"äÐä	�A”xÔ	 Ü�a—f‘fœcÔ" q§v¡v§¢¸1¿6¹6×;MÑ;MÐ;YÜÐÜÐä�!”gœy¬+´wÄ	ÐJÔKÜÐä�A„ÜÐäÐrE   c                óN   — | D �cg c]  }t        |t        «      sŒ|‘Œ c}S c c}w rH   )rO   Útuple)ÚkeyÚelts     rC   Úsubkeysr_   ™   s   € ØÖ9�C¤*¨S´%Õ"8ŠCÒ9Ð9ùÒ9s   …"›"c                ó`   — t        | «      dk(  r | d   dk(  rt        | d   t        «      r| d   S y)zHIf key refers to a Var node, return it.

    Return None otherwise.
    é   r   r8   é   N)ÚlenrO   r8   )r]   s    rC   Úextract_var_from_literal_hashrd   �   s2   € ô
 ˆ3ƒx�1‚}˜˜Q™ 5š¬Z¸¸A¹ÄÔ-DØ�1‰vˆØrE   c                  ó„  — e Zd Zd1d„Zd2d„Zd3d„Zd4d„Zd5d„Zd6d„Zd7d„Z	d8d„Z
d9d	„Zd:d
„Zd;d„Zd<d„Zd=d„Zd>d„Zd?d„Zd@d„ZdAd„ZdBd„ZdCd„ZdDd„ZdEd„ZdFd„ZdGd„ZdHd„ZdId„ZdJd„ZdKd„ZdLd„ZdMd„ZdNd„Z dOd„Z!dPd „Z"dQd!„Z#dRd"„Z$dSd#„Z%dTd$„Z&dUd%„Z'dVd&„Z(dWd'„Z)dXd(„Z*dYd)„Z+dZd*„Z,d[d+„Z-d\d,„Z.d]d-„Z/d^d.„Z0d_d/„Z1y0)`Ú_Hasherc                ó   — d|j                   fS ©NÚLiteral©Úvalue©ÚselfrB   s     rC   Úvisit_int_exprz_Hasher.visit_int_expr¨   ó   € Ø˜1Ÿ7™7Ð#Ð#rE   c                ó   — d|j                   fS rh   rj   rl   s     rC   Úvisit_str_exprz_Hasher.visit_str_expr«   ro   rE   c                ó   — d|j                   fS rh   rj   rl   s     rC   Úvisit_bytes_exprz_Hasher.visit_bytes_expr®   ro   rE   c                ó   — d|j                   fS rh   rj   rl   s     rC   Úvisit_float_exprz_Hasher.visit_float_expr±   ro   rE   c                ó   — d|j                   fS rh   rj   rl   s     rC   Úvisit_complex_exprz_Hasher.visit_complex_expr´   ro   rE   c                ó0   — dt        |j                  «      fS )NÚStar)rD   rT   rl   s     rC   Úvisit_star_exprz_Hasher.visit_star_expr·   s   € Øœ Q§V¡VÓ,Ð-Ð-rE   c                óÚ   — t        |j                  t        «      rD|j                  j                  r.|j                  j                  �d|j                  j                  fS d|j                  fS )Nri   r8   )rO   rX   r8   rY   rZ   rl   s     rC   Úvisit_name_exprz_Hasher.visit_name_exprº   sN   € Ü�a—f‘fœcÔ" q§v¡v§¢¸1¿6¹6×;MÑ;MÐ;YØ˜qŸv™v×1Ñ1Ð2Ð2ð �q—v‘vˆÐrE   c                óF   — dt        |j                  «      |j                  fS )NÚMember)rD   rT   Únamerl   s     rC   Úvisit_member_exprz_Hasher.visit_member_exprÂ   s   € Øœ, q§v¡vÓ.°·±Ð7Ð7rE   c                ón   — d|j                   t        |j                  «      t        |j                  «      fS )NÚBinary)ÚoprD   rR   rS   rl   s     rC   Úvisit_op_exprz_Hasher.visit_op_exprÅ   s'   € Ø˜!Ÿ$™$¤¨Q¯V©VÓ 4´lÀ1Ç7Á7Ó6KÐLÐLrE   c                ót   — t        |j                  «      }|t        d„ |j                  D «       «      z  }d|z   S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrH   ©rD   rJ   s     rC   rM   z0_Hasher.visit_comparison_expr.<locals>.<genexpr>Ê   s   è ø€ Ò:¨!”l 1—oÑ:ùrN   )Ú
Comparison)r\   Ú	operatorsrQ   ©rm   rB   Úrests      rC   Úvisit_comparison_exprz_Hasher.visit_comparison_exprÈ   s4   € Ü-2°1·;±;Ó-?ˆØ”Ñ:¨q¯z©zÔ:Ó:Ñ:ˆØ Ñ%Ð%rE   c                óF   — d|j                   t        |j                  «      fS )NÚUnary)rƒ   rD   rT   rl   s     rC   Úvisit_unary_exprz_Hasher.visit_unary_exprÍ   s   € Ø˜Ÿ™œ|¨A¯F©FÓ3Ð4Ð4rE   c                ó€   — t        d„ |j                  D «       «      r"t        d„ |j                  D «       «      }|f|z   S y )Nc              3  ó@   K  — | ]  }t        |«      t        k(  –— Œ y ­wrH   ©rI   r
   ©rK   Úxs     rC   rM   z#_Hasher.seq_expr.<locals>.<genexpr>Ñ   s   è ø€ Ò:¨QŒw�q‹zœ[Õ(Ñ:ùs   ‚c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrH   r‡   r“   s     rC   rM   z#_Hasher.seq_expr.<locals>.<genexpr>Ò   s   è ø€ Ò0RÀQ´¸a·Ñ0RùrN   ©ÚallÚitemsr\   )rm   rB   r   r‹   s       rC   Úseq_exprz_Hasher.seq_exprÐ   s7   € ÜÑ:°!·'±'Ô:Ô:Ü+0Ñ0RÈ!Ï'É'Ô0RÓ+RˆDØ�7˜T‘>Ð!ØrE   c                ó&   — | j                  |d«      S )NÚList©r™   rl   s     rC   Úvisit_list_exprz_Hasher.visit_list_exprÖ   s   € Ø�}‰}˜Q Ó'Ð'rE   c                ó~   — t        d„ |j                  D «       «      r!t        d„ |j                  D «       «      }d|z   S y )Nc              3  óv   K  — | ]1  \  }}|xr& t        |«      t        |«      cxk(  xr	 t        k(  nc –— Œ3 y ­wrH   r’   ©rK   ÚaÚbs      rC   rM   z*_Hasher.visit_dict_expr.<locals>.<genexpr>Ú   s.   è ø€ ÒQÁÀÀAˆqÒ<”W˜Q“Z¤7¨1£:Ö<´Ô<Ó<ÑQùs   ‚79c              3  óV   K  — | ]!  \  }}|rt        |«      nd t        |«      f–— Œ# y ­wrH   r‡   r    s      rC   rM   z*_Hasher.visit_dict_expr.<locals>.<genexpr>Û   s*   è ø€ ò 1ÙFJÀaÈ¡A”˜a”¨4´¸a³ÔAñ1ùs   ‚'))ÚDictr–   rŠ   s      rC   Úvisit_dict_exprz_Hasher.visit_dict_exprÙ   s?   € ÜÑQÈÏÉÔQÔQÜ+0ñ 1ØNOÏgÉgô1ó ,ˆDð ˜tÑ#Ð#ØrE   c                ó&   — | j                  |d«      S )NÚTuplerœ   rl   s     rC   Úvisit_tuple_exprz_Hasher.visit_tuple_exprá   s   € Ø�}‰}˜Q Ó(Ð(rE   c                ó&   — | j                  |d«      S )NÚSetrœ   rl   s     rC   Úvisit_set_exprz_Hasher.visit_set_exprä   s   € Ø�}‰}˜Q Ó&Ð&rE   c                ó’   — t        |j                  «      t        k(  r+dt        |j                  «      t        |j                  «      fS y )NÚIndex)rI   rV   r
   rD   rW   rl   s     rC   Úvisit_index_exprz_Hasher.visit_index_exprç   s5   € Ü�1—7‘7Óœ{Ò*Øœ\¨!¯&©&Ó1´<ÀÇÁÓ3HÐIÐIØrE   c                ó,   — t        |j                  «      S rH   )rD   rU   rl   s     rC   Úvisit_assignment_exprz_Hasher.visit_assignment_exprì   s   € Ü˜AŸH™HÓ%Ð%rE   c                 ó   — y rH   © rl   s     rC   Úvisit_call_exprz_Hasher.visit_call_exprï   ó   € ØrE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_slice_exprz_Hasher.visit_slice_exprò   r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_cast_exprz_Hasher.visit_cast_exprõ   r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_type_form_exprz_Hasher.visit_type_form_exprø   r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_assert_type_exprz_Hasher.visit_assert_type_exprû   r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_conditional_exprz_Hasher.visit_conditional_exprþ   r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_ellipsisz_Hasher.visit_ellipsis  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_yield_from_exprz_Hasher.visit_yield_from_expr  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_yield_exprz_Hasher.visit_yield_expr  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_reveal_exprz_Hasher.visit_reveal_expr
  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_super_exprz_Hasher.visit_super_expr  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_type_applicationz_Hasher.visit_type_application  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_lambda_exprz_Hasher.visit_lambda_expr  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_list_comprehensionz _Hasher.visit_list_comprehension  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_set_comprehensionz_Hasher.visit_set_comprehension  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_dictionary_comprehensionz&_Hasher.visit_dictionary_comprehension  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_generator_exprz_Hasher.visit_generator_expr  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_type_var_exprz_Hasher.visit_type_var_expr"  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_paramspec_exprz_Hasher.visit_paramspec_expr%  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_type_var_tuple_exprz!_Hasher.visit_type_var_tuple_expr(  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_type_alias_exprz_Hasher.visit_type_alias_expr+  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_namedtuple_exprz_Hasher.visit_namedtuple_expr.  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_enum_call_exprz_Hasher.visit_enum_call_expr1  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_typeddict_exprz_Hasher.visit_typeddict_expr4  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_newtype_exprz_Hasher.visit_newtype_expr7  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit__promote_exprz_Hasher.visit__promote_expr:  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_await_exprz_Hasher.visit_await_expr=  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_template_str_exprz_Hasher.visit_template_str_expr@  r´   rE   c                 ó   — y rH   r²   rl   s     rC   Úvisit_temp_nodez_Hasher.visit_temp_nodeC  r´   rE   N)rB   r   Úreturnr=   )rB   r,   rí   r=   )rB   r   rí   r=   )rB   r   rí   r=   )rB   r   rí   r=   )rB   r+   rí   r=   )rB   r"   rí   r=   )rB   r    rí   r=   )rB   r$   rí   r=   )rB   r   rí   r=   )rB   r7   rí   r=   )rB   zListExpr | TupleExpr | SetExprr   Ústrrí   ú
Key | None)rB   r   rí   rï   )rB   r   rí   rï   )rB   r0   rí   rï   )rB   r)   rí   rï   )rB   r   rí   rï   )rB   r   rí   rï   )rB   r   rí   ÚNone)rB   r*   rí   rð   )rB   r   rí   rð   )rB   r4   rí   rð   )rB   r   rí   rð   )rB   r   rí   rð   )rB   r   rí   rð   )rB   r:   rí   rð   )rB   r9   rí   rð   )rB   r'   rí   rð   )rB   r-   rí   rð   )rB   r2   rí   rð   )rB   r   rí   rð   )rB   r   rí   rð   )rB   r(   rí   rð   )rB   r   rí   rð   )rB   r   rí   rð   )rB   r5   rí   rð   )rB   r%   rí   rð   )rB   r6   rí   rð   )rB   r1   rí   rð   )rB   r!   rí   rð   )rB   r   rí   rð   )rB   r3   rí   rð   )rB   r#   rí   rð   )rB   r&   rí   rð   )rB   r   rí   rð   )rB   r.   rí   rð   )rB   r/   rí   rð   )2Ú__name__Ú
__module__Ú__qualname__rn   rq   rs   ru   rw   rz   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ê   rì   r²   rE   rC   rf   rf   §   sî   „ ó$ó$ó$ó$ó$ó.óó8óMó&ó
5óó(óó)ó'óó
&óóóóóóóóóóóóóóóóóóóóóóóóóóóóôrE   rf   Nr   r@   )rB   r   rí   rï   )rB   r   rí   Úint)r]   r=   rí   zIterable[Key])r]   r=   rí   z
Var | None)HÚ
__future__r   Úcollections.abcr   Útypingr   r   r   r<   Ú
mypy.nodesr   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   r9   r:   Úmypy.visitorr;   r\   r=   Ú__annotations__rD   rI   r_   rd   rf   r@   r²   rE   rC   ú<module>rû      s®   ðÞ "å $ß 6Ñ 6÷4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4÷ 4ñ 4õj +ðR ˜˜S˜‘/€€ZÓ !óó óF:óô]Ð  d¡
Ñ+ô ]ñ@ “€ˆÔ rE   