
    X-Ph>                    V   U d 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 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) ddl*m+Z+ d!dZ, G d de+d                   Z- G d de&d                   Z.d"dZ/d#dZ0dZ1de2d<   d$dZ3d%d Z4dS )&z,Fix up various things after deserialization.    )annotations)AnyFinal)lookup_fully_qualified)BlockClassDef	DecoratorFuncDefMypyFileOverloadedFuncDefParamSpecExprSymbolTable	TypeAliasTypeInfoTypeVarExprTypeVarTupleExprVar)	NOT_READYAnyTypeCallableTypeInstanceLiteralType
Overloaded
ParametersParamSpecType	TupleTypeTypeAliasTypeTypedDictType	TypeOfAnyTypeTypeTypeVarTupleTypeTypeVarTypeTypeVisitorUnboundType	UnionType
UnpackType)NodeVisitortreer   modulesdict[str, MypyFile]allow_missingboolreturnNonec                f    t          ||          }|                    | j        | j                   d S N)	NodeFixervisit_symbol_tablenamesfullname)r(   r)   r+   
node_fixers       J/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypy/fixup.pyfixup_moduler7   2   s1    7M22J!!$*dm<<<<<    c                  ~    e Zd ZU dZded<   d-d
Zd.dZd/dZd0dZd1dZ	d2dZ
d3dZd4d!Zd5d$Zd6d&Zd7d)Zd8d,ZdS )9r1   NzTypeInfo | Nonecurrent_infor)   r*   r+   r,   r-   r.   c                V    || _         || _        t          | j         |          | _        d S r0   )r)   r+   	TypeFixer
type_fixerselfr)   r+   s      r6   __init__zNodeFixer.__init__;   s(    *#DL-@@r8   infor   c                     j         }	 | _         |j        r|j                                        |j        r                      |j        |j                   |j        r$|j        D ]}|                     j                   |j        r$|j        D ]}|                     j                   |j	        r|j	                             j                   |
                    |j	                   |j        rct          |j        j                  |j        _        t          |j        j                  D ]&\  }}t!          |t"                    r||j        _        '|j        r|j                             j                   |                    |j                   |j        rct          |j        j                  |j        _        t          |j        j                  D ]&\  }}t!          |t"                    r||j        _        '|j        r|j                             j                   |j        r|j                             j                   |j        rf|j                             j                   t1          |g           }||j        j        j        vr$|j        j        j                            |           |j        r fd|j        D             |_        d |_        | _         d S # | _         w xY w)Nc                H    g | ]}t          j        |j                   S )r+   )lookup_fully_qualified_typeinfor)   r+   ).0namer?   s     r6   
<listcomp>z-NodeFixer.visit_type_info.<locals>.<listcomp>k   sF         4d$:L    r8   )r:   defnacceptr3   r2   r4   basesr=   _promote
tuple_typeupdate_tuple_typespecial_aliaslist	type_varsalias_tvars	enumerate
isinstancer!   tvar_tuple_indextypeddict_typeupdate_typeddict_typedeclared_metaclassmetaclass_typealt_promoter   typeappend	_mro_refsmro)r?   rA   	save_infobasepitinstances   `       r6   visit_type_infozNodeFixer.visit_type_infoA   s   %	0	* $Dy '	  &&&z C''
DMBBBz 1 J 1 1DKK0000} . . .AHHT_---- D&&t777&&t777% D59$):M5N5ND&2 )$)*= > > D D1%a)9:: DBCD.?" D#**4?;;;**4+>???% D59$):M5N5ND&2 )$)*= > > D D1%a)9:: DBCD.?& @'..t???" <#**4?;;; D ''888#D"-- 4#3#8#AAA$)299(CCC~ &    !%	   "& )D	D))))s   KK+ +	K4symtabr   table_fullnamestrc                   t          |          D ],}||         }|j        }|d |_        || j        v r| j        |         |_        7t	          || j        | j                   }|B||u rt          |dz             |_        r|j        J |dz   |z   |f            |j        |_        | j        sJ d|             t          | j                  |_        t          |j        t                    r| 
                    |j                   |j        |j                            |            J d|d|             d S )Nraise_on_missingz@deleted.FzCould not find cross-ref zUnexpected empty node z: )rP   	cross_refr)   noder   r+   r   missing_inforT   r   re   rJ   )r?   rf   rg   keyvaluerm   stnodes          r6   r2   zNodeFixer.visit_symbol_tablev   s   << )	L )	LC3KEI$"&,,!%i!8EJJ3!4<dFXBX  F )!U?? *-S:-=)>)>EJJ#);#:#:^c=QTW=WYb<c#:#:#:)/EJJ!/ @M&M)&M&MMMM &2$,%?%?

ej(33 L((4444Z+J%%d++++K"K3"K"KE"K"KKKKS)	L )	Lr8   funcr
   c                |    | j         | j         |_        |j        !|j                            | j                   d S d S r0   )r:   rA   r[   rJ   r=   )r?   rs   s     r6   visit_func_defzNodeFixer.visit_func_def   sC    ()DI9 IT_----- ! r8   or   c                    | j         | j         |_        |j        r|j                            | j                   |j        D ]}|                    |            |j        r|j                            |            d S d S r0   )r:   rA   r[   rJ   r=   itemsimpl)r?   rv   items      r6   visit_overloaded_func_defz#NodeFixer.visit_overloaded_func_def   s    (&AF6 	+FMM$/***G 	 	DKK6 	 FMM$	  	 r8   dr	   c                    | j         | j         |j        _        |j        r|j                            |            |j        r|j                            |            |j        D ]}|                    |            d S r0   )r:   varrA   rs   rJ   
decorators)r?   r|   rn   s      r6   visit_decoratorzNodeFixer.visit_decorator   s    (*AEJ6 	 FMM$5 	ELLL 	 	DKK	 	r8   cr   c                N    |j         D ]}|                    | j                   d S r0   )rQ   rJ   r=   )r?   r   vs      r6   visit_class_defzNodeFixer.visit_class_def   s4     	& 	&AHHT_%%%%	& 	&r8   tvr   c                    |j         D ]}|                    | j                   |j                            | j                   |j                            | j                   d S r0   )valuesrJ   r=   upper_bounddefault)r?   r   rq   s      r6   visit_type_var_exprzNodeFixer.visit_type_var_expr   s`    Y 	* 	*ELL))))
do...

$/*****r8   ra   r   c                    |j                             | j                   |j                            | j                   d S r0   )r   rJ   r=   r   r?   ra   s     r6   visit_paramspec_exprzNodeFixer.visit_paramspec_expr   s8    	T_---		)))))r8   r   c                    |j                             | j                   |j                            | j                   |j                            | j                   d S r0   )r   rJ   r=   tuple_fallbackr   )r?   r   s     r6   visit_type_var_tuple_exprz#NodeFixer.visit_type_var_tuple_expr   sQ    
do...
  111

$/*****r8   r   r   c                    | j         | j         |_        |j        |j                            | j                   |j        !|j                            | j                   d S d S r0   )r:   rA   r[   rJ   r=   setter_type)r?   r   s     r6   	visit_varzNodeFixer.visit_var   sa    (&AF6FMM$/***=$M  11111 %$r8   ar   c                    |j                             | j                   |j        D ]}|                    | j                   d S r0   )targetrJ   r=   rR   )r?   r   r   s      r6   visit_type_aliaszNodeFixer.visit_type_alias   sJ    	((( 	& 	&AHHT_%%%%	& 	&r8   r)   r*   r+   r,   r-   r.   )rA   r   r-   r.   )rf   r   rg   rh   r-   r.   )rs   r
   r-   r.   )rv   r   r-   r.   )r|   r	   r-   r.   )r   r   r-   r.   )r   r   r-   r.   )ra   r   r-   r.   )r   r   r-   r.   )r   r   r-   r.   )r   r   r-   r.   )__name__
__module____qualname__r:   __annotations__r@   re   r2   ru   r{   r   r   r   r   r   r   r    r8   r6   r1   r1   8   s!        $(L((((A A A A2* 2* 2* 2*j+L +L +L +LZ. . . .          & & & &+ + + +* * * *+ + + +
2 2 2 2& & & & & &r8   r1   Nc                      e Zd Zd9dZd:d
Zd;dZd<dZd=dZd>d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dFd0ZdGd2ZdHd5ZdId7Zd8S )Jr<   r)   r*   r+   r,   r-   r.   c                "    || _         || _        d S r0   )r)   r+   r>   s      r6   r@   zTypeFixer.__init__   s    *r8   instr   c                   |j         }|d S d |_         t          | j        || j                  |_        |j        j        D ]%}|j        t          u r|                    |            &|j        D ]}|                    |            |j	        |j	                            |            |j
        r6|j
        j                                        D ]}|                    |            d S d S NrD   )type_refrE   r)   r+   r[   rK   r   rJ   argslast_known_valueextra_attrsattrsr   )r?   r   r   r`   r   r   s         r6   visit_instancezTypeFixer.visit_instance   s   =F3L($2D
 
 
	
 IO 	" 	"DyI%%D!!! 	 	AHHTNNNN ,!((... 	%+2244  	 	 r8   rc   r   c                    |j         }|d S d |_         t          | j        || j                  |_        |j        D ]}|                    |            d S r   )r   lookup_fully_qualified_aliasr)   r+   aliasr   rJ   )r?   rc   r   r   s       r6   visit_type_alias_typezTypeFixer.visit_type_alias_type   sk    :F
.L($2D
 
 
  	 	AHHTNNNN	 	r8   rv   r   c                    d S r0   r   r?   rv   s     r6   	visit_anyzTypeFixer.visit_any      r8   ctr   c                   |j         r|j                             |            |j        D ]}||                    |            |j        |j                            |            |j        D ]}|                    |            |j        D ]}|r|                    |            |j        |j                            |            |j        |j                            |            d S d S r0   )fallbackrJ   	arg_typesret_type	variables
bound_args
type_guardtype_is)r?   r   argtr   args        r6   visit_callable_typezTypeFixer.visit_callable_type  s   ; 	%Kt$$$L 	" 	"DD!!!;"Kt$$$ 	 	AHHTNNNN= 	! 	!C !

4   =$M  &&&:!Jd##### "!r8   r   c                D    |j         D ]}|                    |            d S r0   rx   rJ   )r?   rc   r   s      r6   visit_overloadedzTypeFixer.visit_overloaded  s.    ' 	 	BIIdOOOO	 	r8   c                "    t          d|          NzShouldn't get hereRuntimeErrorr   s     r6   visit_erased_typezTypeFixer.visit_erased_type  s    /333r8   c                    d S r0   r   r   s     r6   visit_deleted_typezTypeFixer.visit_deleted_type"  r   r8   c                    d S r0   r   r   s     r6   visit_none_typezTypeFixer.visit_none_type%  r   r8   c                    d S r0   r   r   s     r6   visit_uninhabited_typez TypeFixer.visit_uninhabited_type(  r   r8   c                "    t          d|          r   r   r   s     r6   visit_partial_typezTypeFixer.visit_partial_type+  s    /333r8   ttr   c                    |j         r|j         D ]}|                    |            |j        |j                            |            d S d S r0   )rx   rJ   partial_fallback)r?   r   its      r6   visit_tuple_typezTypeFixer.visit_tuple_type.  s\    8 	 h    		$*&&t,,,,, +*r8   tdtr   c                <   |j         r1|j                                         D ]}|                    |            |j        \|j        j        4t          |j        j        | j        | j                   	 d|j        _        |j                            |            d S d S )Nrj   ztyping._TypedDict)rx   r   rJ   r   r   r   r)   r+   )r?   r   r   s      r6   visit_typeddict_typezTypeFixer.visit_typeddict_type5  s    9 	 i&&((    		$<#|$0*--1-?)?  
  -@CL)L%%%%% $#r8   ltr   c                :    |j                             |            d S r0   )r   rJ   )r?   r   s     r6   visit_literal_typezTypeFixer.visit_literal_typeH  s    
4     r8   tvtr"   c                    |j         r|j         D ]}|                    |            |j                            |            |j                            |            d S r0   )r   rJ   r   r   )r?   r   vts      r6   visit_type_varzTypeFixer.visit_type_varK  s`    : 	 j    		$t$$$4     r8   ra   r   c                n    |j                             |            |j                            |            d S r0   )r   rJ   r   r   s     r6   visit_param_speczTypeFixer.visit_param_specR  s4    	T"""		r8   r!   c                    |j                             |            |j                            |            |j                            |            d S r0   )r   rJ   r   r   r?   rc   s     r6   visit_type_var_tuplezTypeFixer.visit_type_var_tupleV  sK    	%%%	T"""		r8   ur&   c                :    |j                             |            d S r0   )r[   rJ   )r?   r   s     r6   visit_unpack_typezTypeFixer.visit_unpack_type[      	dr8   r   c                    |j         D ]}||                    |            |j        D ]}|                    |            d S r0   )r   rJ   r   )r?   ra   r   r~   s       r6   visit_parameterszTypeFixer.visit_parameters^  s\    K 	" 	"DD!!!; 	 	CJJt	 	r8   r$   c                D    |j         D ]}|                    |            d S r0   )r   rJ   )r?   rv   r   s      r6   visit_unbound_typezTypeFixer.visit_unbound_typee  s.     	 	AHHTNNNN	 	r8   utr%   c                V    |j         r|j         D ]}|                    |            d S d S r0   r   )r?   r   r   s      r6   visit_union_typezTypeFixer.visit_union_typei  sB    8 	 h    		$	  	    r8   r    c                :    |j                             |            d S r0   )rz   rJ   r   s     r6   visit_type_typezTypeFixer.visit_type_typen  r   r8   Nr   )r   r   r-   r.   )rc   r   r-   r.   )rv   r   r-   r.   )r   r   r-   r.   )rc   r   r-   r.   )r   r   r-   r.   )r   r   r-   r.   )r   r   r-   r.   )r   r"   r-   r.   )ra   r   r-   r.   )rc   r!   r-   r.   )r   r&   r-   r.   )ra   r   r-   r.   )rv   r$   r-   r.   )r   r%   r-   r.   )rc   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   r8   r6   r<   r<      s       + + + +   ,	 	 	 	   $ $ $ $&   4 4 4 4         4 4 4 4- - - -& & & &&! ! ! !! ! ! !      
                
     r8   r<   rG   rh   r   c                   t          || |           }|r|j        nd }t          |t                    r|S |s9J d                    t          |          j        |r|j        nd                      t          |           S )Nrj   zCShould never get here in normal mode, got {}:{} instead of TypeInfo )	r   rn   rT   r   formatr[   r   r4   ro   )r)   rG   r+   rr   rn   s        r6   rE   rE   r  s     $D'DUVVVF *6;;dD$!! 	% 	
 	
PWWJJ$!>B
 
	
 	
 	

 G$$$r8   r   c                  t          || |           }|r|j        nd }t          |t                    r|S t          |t                    ra|j        r|j        S |j        rt          j        |          }n.|j        rt          j	        |          }n|sJ t                      S ||_        |S |s9J d                    t          |          j        |r|j        nd                      t                      S )Nrj   zDShould never get here in normal mode, got {}:{} instead of TypeAliasr   )r   rn   rT   r   r   rO   rM   from_tuple_typerV   from_typeddict_typemissing_aliasr   r[   r   r4   )r)   rG   r+   rr   rn   r   s         r6   r   r     s    $D'DUVVVF *6;;dD$	"" 	D(	#	#  	&%%? 	#-d33EE  	#1$77EE     ??"" 	
 	
QXXJJ$!>B
 
	
 	
 	

 r8   z@<missing {}: *should* have gone away during fine-grained update>r   _SUGGESTIONc                   t                               d          }t          |t          g                     }||_        t          t                      |d          }t          | dd          }t          |g           g|_	        ||g|_
        |S )NrA   z	<missing>zbuiltins.objectFrD   )r   r   r   r   r4   r   r   rE   r   rK   r^   )r)   
suggestion	dummy_defrA   obj_types        r6   ro   ro     s    ##F++JU2YY//I#IKMM9k::D.w8IY^___H8R(()DJhDHKr8   c                     t                               d          } t          t          t          j                  | dd          S )Nr   )linecolumn)r   r   r   r   r   special_form)r   s    r6   r   r     s8    ##G,,JWY344jrRTUUUUr8   )r(   r   r)   r*   r+   r,   r-   r.   )r)   r*   rG   rh   r+   r,   r-   r   )r)   r*   rG   rh   r+   r,   r-   r   )r)   r*   r-   r   )r-   r   )5__doc__
__future__r   typingr   r   mypy.lookupr   
mypy.nodesr   r   r	   r
   r   r   r   r   r   r   r   r   r   
mypy.typesr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   mypy.visitorr'   r7   r1   r<   rE   r   r   r   ro   r   r   r8   r6   <module>r     s   2 2 2 " " " " " "         . . . . . .                                                                      * % $ $ $ $ $= = = =c& c& c& c& c&D! c& c& c&LQ Q Q Q QD! Q Q Qh% % % %"   < X W W W W	 	 	 	V V V V V Vr8   