
    hi'                       d Z ddl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 ddlmZ ddl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  ddl!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- ddl.m/Z/  G d de          Z0e G d d                      Z1e G d de"                      Z2 G d d          Z3dS )z;Shared definitions used by different parts of type checker.    )annotations)abstractmethod)IteratorSequence)contextmanager)
NamedTupleoverload)trait)	ErrorCode)ErrorWatcher)ErrorMessage)ArgKindContext
ExpressionFuncItem
LambdaExprMypyFileNodeRefExpr
SymbolNodeTypeInfoVar)CheckerPluginInterfacePlugin)	CallableTypeInstanceLiteralValue
OverloadedPartialType	TupleTypeTypeTypedDictTypeTypeType)fill_typevarsc                  $    e Zd ZU ded<   ded<   dS )	TypeRanger!   itemboolis_upper_boundN)__name__
__module____qualname____annotations__     c/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/mypy/checker_shared.pyr&   r&   -   s'         JJJr/   r&   c                     e Zd Ze	 	 	 	 d<d=d            Zed>d?d            Ze	 	 	 	 	 d@dAd"            Ze	 	 dBdCd#            ZedDd&            Ze	 dEdFd)            Z	e	 d>dGd/            Z
edHd3            Zed4dd5dId;            ZdS )JExpressionCheckerSharedApiNFnoder   type_contextType | Noneallow_none_returnr(   always_allow_any	is_calleereturnr!   c                    t           NNotImplementedError)selfr3   r4   r6   r7   r8   s         r0   acceptz!ExpressionCheckerSharedApi.accept4   s
     "!r/   er   lvaluec                    t           r;   r<   )r>   r@   rA   s      r0   analyze_ref_exprz+ExpressionCheckerSharedApi.analyze_ref_expr?       !!r/   calleeargslist[Expression]	arg_kindslist[ArgKind]contextr   	arg_namesSequence[str | None] | Nonecallable_nodeExpression | Nonecallable_name
str | Noneobject_typeoriginal_typetuple[Type, Type]c
                    t           r;   r<   )
r>   rE   rF   rH   rJ   rK   rM   rO   rQ   rR   s
             r0   
check_callz%ExpressionCheckerSharedApi.check_callC   s
     "!r/   c                    t           r;   r<   )r>   rO   rE   rF   rH   rJ   rK   rQ   s           r0   transform_callee_typez0ExpressionCheckerSharedApi.transform_callee_typeR   s
     "!r/   method_namestrc                    t           r;   r<   )r>   rQ   rX   s      r0   method_fullnamez*ExpressionCheckerSharedApi.method_fullname_   rD   r/   method	base_typec                    t           r;   r<   )r>   r\   r]   rF   rH   rJ   rR   s          r0   check_method_call_by_namez4ExpressionCheckerSharedApi.check_method_call_by_namec   
     "!r/   td_typer"   indexsetitemtuple[Type, set[str]]c                    t           r;   r<   )r>   ra   rb   rc   s       r0   visit_typeddict_index_exprz5ExpressionCheckerSharedApi.visit_typeddict_index_expro   
     "!r/   valuer   fallback_namec                    t           r;   r<   )r>   rh   ri   s      r0   infer_literal_expr_typez2ExpressionCheckerSharedApi.infer_literal_expr_typeu   rD   r/   T)include_modulessuppress_errorsr   ctx	is_lvaluerl   rm   c                   t           r;   r<   )r>   r3   rn   ro   rl   rm   s         r0   analyze_static_referencez3ExpressionCheckerSharedApi.analyze_static_referencey   r`   r/   )NFFF)r3   r   r4   r5   r6   r(   r7   r(   r8   r(   r9   r!   )F)r@   r   rA   r(   r9   r!   )NNNNN)rE   r!   rF   rG   rH   rI   rJ   r   rK   rL   rM   rN   rO   rP   rQ   r5   rR   r5   r9   rS   NN)rO   rP   rE   r!   rF   rG   rH   rI   rJ   r   rK   rL   rQ   r5   r9   r!   )rQ   r!   rX   rY   r9   rP   r;   )r\   rY   r]   r!   rF   rG   rH   rI   rJ   r   rR   r5   r9   rS   )ra   r"   rb   r   rc   r(   r9   rd   )rh   r   ri   rY   r9   r!   )r3   r   rn   r   ro   r(   rl   r(   rm   r(   r9   r!   )r*   r+   r,   r   r?   rC   rU   rW   r[   r_   rf   rk   rq   r.   r/   r0   r2   r2   2   s        %)"'!&" " " " ^" " " " " ^"  26+/$(#'%)" " " " ^"  26#'
" 
" 
" 
" ^
" " " " ^"  &*	" 	" 	" 	" ^	" IN" " " " ^"
 " " " ^"  !% %	" 	" 	" 	" 	" ^	" 	" 	"r/   r2   c                     e Zd ZU ded<   ded<   ded<   ded<   ded	<   eedPd                        ZedQd            ZedRd            ZedSd            Z	edTd            Z
edUd             Zee	 	 dVd!d!d!d"dWd/                        Zee	 	 dVd!d!d0dXd2                        Ze	 	 dVd!d!d!d"dYd4            ZedZd5            Zee	 d[d\d<                        Zeed]d>                        Ze	 d[d^d@            Zed_dB            Zed_dC            Zed`dE            ZedadH            ZeedbdJ                        ZedcdM            ZedddN            ZededO            Zd!S )fTypeCheckerSharedApir   pluginzset[str]module_refsCheckerScopescoper(   checking_missing_awaitallow_constructor_cacher9   r2   c                    t           r;   r<   r>   s    r0   expr_checkerz!TypeCheckerSharedApi.expr_checker   
     "!r/   namerY   r   c                    t           r;   r<   )r>   r   s     r0   
named_typezTypeCheckerSharedApi.named_type   rD   r/   fullnamer   c                    t           r;   r<   )r>   r   s     r0   lookup_typeinfoz$TypeCheckerSharedApi.lookup_typeinfo   rD   r/   r3   r   r!   c                    t           r;   r<   )r>   r3   s     r0   lookup_typez TypeCheckerSharedApi.lookup_type   rD   r/   rJ   r   Nonec                    t           r;   r<   )r>   r   rJ   s      r0   handle_cannot_determine_typez1TypeCheckerSharedApi.handle_cannot_determine_type   rD   r/   typr   ro   r   c                    t           r;   r<   )r>   r   ro   r3   rJ   s        r0   handle_partial_var_typez,TypeCheckerSharedApi.handle_partial_var_type   rg   r/   N)notescodeouter_contextsubtype	supertypemsgsubtype_labelrP   supertype_labelr   list[str] | Noner   ErrorCode | Noner   Context | Nonec                   d S r;   r.   
r>   r   r   rJ   r   r   r   r   r   r   s
             r0   check_subtypez"TypeCheckerSharedApi.check_subtype   s	     sr/   )r   r   r   c                   d S r;   r.   )	r>   r   r   rJ   r   r   r   r   r   s	            r0   r   z"TypeCheckerSharedApi.check_subtype   s	     sr/   str | ErrorMessagec                   t           r;   r<   r   s
             r0   r   z"TypeCheckerSharedApi.check_subtype   s
     "!r/   c                    t           r;   r<   r|   s    r0   get_final_contextz&TypeCheckerSharedApi.get_final_context   rD   r/   	expr_typetype_rangeslist[TypeRange] | Nonern   defaulttuple[Type | None, Type | None]c                    d S r;   r.   r>   r   r   rn   r   s        r0   #conditional_types_with_intersectionz8TypeCheckerSharedApi.conditional_types_with_intersection   s	     +.#r/   rS   c                    d S r;   r.   r   s        r0   r   z8TypeCheckerSharedApi.conditional_types_with_intersection   s	      Cr/   r5   c                    t           r;   r<   r   s        r0   r   z8TypeCheckerSharedApi.conditional_types_with_intersection   s
     "!r/   Node | Nonec                    t           r;   r<   r>   r3   rJ   s      r0   check_deprecatedz%TypeCheckerSharedApi.check_deprecated   rD   r/   c                    t           r;   r<   r   s      r0   warn_deprecatedz$TypeCheckerSharedApi.warn_deprecated   rD   r/   typec                    t           r;   r<   )r>   r   s     r0   type_is_iterablez%TypeCheckerSharedApi.type_is_iterable   rD   r/   it/Instance | CallableType | TypeType | Overloadedc                    t           r;   r<   )r>   r   rJ   s      r0   iterable_item_typez'TypeCheckerSharedApi.iterable_item_type  rg   r/   Iterator[None]c                    t           r;   r<   r|   s    r0   checking_await_setz'TypeCheckerSharedApi.checking_await_set
  r~   r/   local_errorsr   c                    t           r;   r<   )r>   r   r   s      r0   get_precise_awaitable_typez/TypeCheckerSharedApi.get_precise_awaitable_type  rD   r/   c                    t           r;   r<   )r>   r   r   s      r0   add_any_attribute_to_typez.TypeCheckerSharedApi.add_any_attribute_to_type  rD   r/   c                   t           r;   r<   )r>   r   s     r0   is_defined_in_stubz'TypeCheckerSharedApi.is_defined_in_stub  rD   r/   )r9   r2   )r   rY   r9   r   )r   rY   r9   r   )r3   r   r9   r!   )r   rY   rJ   r   r9   r   )
r   r   ro   r(   r3   r   rJ   r   r9   r!   rr   )r   r!   r   r!   rJ   r   r   rY   r   rP   r   rP   r   r   r   r   r   r   r9   r(   )r   r!   r   r!   rJ   r   r   r   r   rP   r   rP   r   r   r   r   r9   r(   )r   r!   r   r!   rJ   r   r   r   r   rP   r   rP   r   r   r   r   r   r   r9   r(   r9   r(   r;   )
r   r!   r   r   rn   r   r   r   r9   r   )
r   r!   r   r   rn   r   r   r!   r9   rS   )
r   r!   r   r   rn   r   r   r5   r9   r   )r3   r   rJ   r   r9   r   )r   r!   r9   r(   )r   r   rJ   r   r9   r!   )r9   r   )r   r!   r   r   r9   r5   )r   r!   r   rY   r9   r!   )r   r   r9   r(   )r*   r+   r,   r-   propertyr   r}   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r.   r/   r0   rt   rt      s        NNN    !!!!" " " ^ X" " " " ^" " " " ^" " " " ^" " " " ^" " " " ^"
  %)&* #'!%(,     ^ X  %)&* #'(,     ^ X  %)&*" #'!%(," " " " " ^" " " " ^"  . . . . ^ X.       ^ X 
   $" " " " ^" " " " ^" " " " ^" " " " ^" " " " ^"
 " " " ^ ^" " " " ^" " " " ^" " " " ^" " "r/   rt   c                      e Zd ZU ded<   ddZdd	Zdd
ZddZdd dZd!dZ	d!dZ
d"dZed#d            Zed$d            ZdS )%rw   z$list[TypeInfo | FuncItem | MypyFile]stackmoduler   r9   r   c                    |g| _         d S r;   )r   )r>   r   s     r0   __init__zCheckerScope.__init__   s    X


r/   FuncItem | Nonec                f    t          | j                  D ]}t          |t                    r|c S d S r;   )reversedr   
isinstancer   r>   r@   s     r0   current_functionzCheckerScope.current_function#  s@    $*%% 	 	A!X&& tr/   c                v    | j         D ]0}t          |t                    rt          |t                    s|c S 1dS )z%Return top-level non-lambda function.N)r   r   r   r   r   s     r0   top_level_functionzCheckerScope.top_level_function)  sE     	 	A!X&& z!Z/H/H tr/   TypeInfo | Nonec                `    t          | j        d         t                    r| j        d         S d S )N)r   r   r   r|   s    r0   active_classzCheckerScope.active_class0  s+    djnh// 	":b>!tr/   Nfuncc                    |p|                                  }|s
J d            | j                            |          }|s
J d            | j        |dz
           }t          |t                    r|S dS )z4Is there a class *directly* enclosing this function?z1This method must be called from inside a functionz2CheckerScope stack must always start with a module   N)r   r   rb   r   r   )r>   r   rb   	enclosings       r0   enclosing_classzCheckerScope.enclosing_class5  s    .t,,..HHHHHH
  &&JJJJJJJuqy)	i** 	tr/   Instance | TupleType | Nonec                    |                                  }|s(|                                 r|                                 }|rt          |          S dS )zAn instance or tuple type representing the current class.

        This returns None unless we are in class body or in a method.
        In particular, inside a function nested in method this returns None.
        N)r   r   r   r$   r>   infos     r0   active_self_typezCheckerScope.active_self_type@  s\       "" 	*--// 	*''))D 	' &&&tr/   c                    t          | j                  D ](}t          |t                    rt	          |          c S )dS )zBSame as active_self_type() but handle functions nested in methods.N)r   r   r   r   r$   r>   r'   s     r0   current_self_typezCheckerScope.current_self_typeM  sK    TZ(( 	+ 	+D$)) +$T*****+tr/   r(   c                2    t          | j                  dk    S )z5Is current scope top-level (no classes or functions)?r   )lenr   r|   s    r0   is_top_levelzCheckerScope.is_top_levelT  s    4:!##r/   r'   r   r   c              #  x   K   | j                             |           d V  | j                                          d S r;   r   appendpopr   s     r0   push_functionzCheckerScope.push_functionX  =      
$
r/   r   r   c              #  x   K   | j                             |           d V  | j                                          d S r;   r   r   s     r0   
push_classzCheckerScope.push_class^  r   r/   )r   r   r9   r   )r9   r   )r9   r   r;   )r   r   r9   r   )r9   r   r   )r'   r   r9   r   )r   r   r9   r   )r*   r+   r,   r-   r   r   r   r   r   r   r   r   r   r   r   r.   r/   r0   rw   rw     s        ////            
	 	 	 	 	      $ $ $ $    ^
    ^  r/   rw   N)4__doc__
__future__r   abcr   collections.abcr   r   
contextlibr   typingr   r	   mypy_extensionsr
   mypy.errorcodesr   mypy.errorsr   mypy.message_registryr   
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   mypy.pluginr   r   
mypy.typesr   r   r   r   r   r    r!   r"   r#   mypy.typevarsr$   r&   r2   rt   rw   r.   r/   r0   <module>r      s   A A " " " " " "       . . . . . . . . % % % % % % ' ' ' ' ' ' ' ' ! ! ! ! ! ! % % % % % % $ $ $ $ $ $ . . . . . .                          7 6 6 6 6 6 6 6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ( ' ' ' ' '
    
   
 P" P" P" P" P" P" P" P"f R" R" R" R" R"1 R" R" R"jF F F F F F F F F Fr/   