
    \jQ>                    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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+ ddl,m-Z-  G d d	e-d
                   Z. G d de(d
                   Z/ddZ0ddZ1dZ2de3d<   ddZ4d dZ5d
S )!z,Fix up various things after deserialization.    )annotations)AnyFinal)lookup_fully_qualified)BlockClassDef	DecoratorFuncDefMypyFileOverloadedFuncDefParamSpecExprSymbolTableSymbolTableNode	TypeAliasTypeInfoTypeVarExprTypeVarTupleExprVar)	NOT_READYAnyTypeCallableTypeInstanceLiteralType
Overloaded
ParametersParamSpecType
ProperType	TupleTypeTypeAliasTypeTypedDictType	TypeOfAnyTypeTypeTypeVarTupleTypeTypeVarTypeTypeVisitorUnboundType	UnionType
UnpackType)NodeVisitorc                      e Zd ZU dZded<   d.d
Zd/dZd0dZd1dZd2dZ	d3dZ
d4dZd5dZd6d"Zd7d%Zd8d'Zd9d*Zd:d-ZdS );	NodeFixerNzTypeInfo | Nonecurrent_infomodulesdict[str, MypyFile]allow_missingboolreturnNonec                V    || _         || _        t          | j         |          | _        d S N)r-   r/   	TypeFixer
type_fixerselfr-   r/   s      N/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/mypy/fixup.py__init__zNodeFixer.__init__4   s*     +#DL-@@    infor   c                .     j         }	 | _         |j        r|j                                        |j        r                     |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        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namer8   s     r9   
<listcomp>z-NodeFixer.visit_type_info.<locals>.<listcomp>i   sF         4d$:L    r;   )r,   defnacceptnamesvisit_symbol_tablebasesr6   _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	self_typealt_promoter   typeappend	_mro_refsmro)r8   r<   	save_infobasepitinstances   `       r9   visit_type_infozNodeFixer.visit_type_info=   s2   %	2	* $Dy '	  &&&z 4''
333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?;;;~ 7%%do666 D ''888#D"-- 4#3#8#AAA$)299(CCC~ &    !%	   "& )D	D))))s   K8L 	Lsymtabr   c                B   |D ]}||         }|j         }|G|| j        v r!d |_         d|_        | j        |         |_        =| j        r|                     |           Zt          |j        t                    r|                     |j                   | j	        |_
        d S )NF)	cross_refr-   unfixed_noder/   resolve_cross_refrQ   r   rc   r,   stored_info)r8   rd   keyvaluerf   s        r9   rG   zNodeFixer.visit_symbol_tablet   s     	6 	6C3KEI$,,&*EO$)EM"&,y"9EKK' 2**5111EK22 6$$U[1111$($5!!!	6 	6r;   rl   r   c                   |j         J |j         }d|_         d|_        t          || j        | j                   }|Y||u r6|                    dd          d         }t          |dz             |_        dS |j        
J |            |j        |_        dS | j        sJ d	|             t          | j                  |_        dS )
z5Replace cross-reference with an actual referred node.NFraise_on_missing.   )maxsplitz@deletedzCould not find cross-ref )
rf   rg   r   r-   r/   rsplitr   rh   nodemissing_info)r8   rl   rf   stnode
short_names        r9   ri   zNodeFixer.resolve_cross_ref   s    ***O	't|$:L6L
 
 
  '--cA->>rB
!*z"9::{..	...$k# 	5AAiAAAAA 't|44EKKKr;   funcr
   c                    |j         G|j                             | j                   t          |j         t                    r||j         _        d S d S d S r4   )rY   rE   r6   rQ   r   
definition)r8   ry   s     r9   visit_func_defzNodeFixer.visit_func_def   sX    9 IT_---$)\22 ,'+	$$$ ! , ,r;   or   c                b   |j         r|j                             | j                   |j        D ]}|                    |            |j        r|j                            |            t          |j         t                    r,t          |j         j        |j                  D ]\  }}||_        d S d S r4   )	rY   rE   r6   itemsimplrQ   r   zipr{   )r8   r}   itemtyps       r9   visit_overloaded_func_defz#NodeFixer.visit_overloaded_func_def   s    6 	+FMM$/***G 	 	DKK6 	 FMM$afj)) 	& qw77 & &	T!%	& 	&& &r;   dr	   c                   |j         r|j                             |            |j        r|j                            |            |j        j        }t	          |t
                    r#t	          |t                    r|j         |_        d S d S d S r4   )ry   rE   varrY   rQ   r   r   r{   )r8   r   r   s      r9   visit_decoratorzNodeFixer.visit_decorator   s    6 	 FMM$5 	ELLejc:&& 	$:c<+H+H 	$VCNNN	$ 	$ 	$ 	$r;   cr   c                N    |j         D ]}|                    | j                   d S r4   )rN   rE   r6   )r8   r   vs      r9   visit_class_defzNodeFixer.visit_class_def   s4     	& 	&AHHT_%%%%	& 	&r;   tvr   c                    |j         D ]}|                    | j                   |j                            | j                   |j                            | j                   d S r4   )valuesrE   r6   upper_bounddefault)r8   r   rl   s      r9   visit_type_var_exprzNodeFixer.visit_type_var_expr   s`    Y 	* 	*ELL))))
do...

$/*****r;   r_   r   c                    |j                             | j                   |j                            | j                   d S r4   )r   rE   r6   r   r8   r_   s     r9   visit_paramspec_exprzNodeFixer.visit_paramspec_expr   s8    	T_---		)))))r;   r   c                    |j                             | j                   |j                            | j                   |j                            | j                   d S r4   )r   rE   r6   tuple_fallbackr   )r8   r   s     r9   visit_type_var_tuple_exprz#NodeFixer.visit_type_var_tuple_expr   sQ    
do...
  111

$/*****r;   r   r   c                    |j         |j                             | j                   |j        !|j                            | j                   d S d S r4   )rY   rE   r6   setter_type)r8   r   s     r9   	visit_varzNodeFixer.visit_var   sN    6FMM$/***=$M  11111 %$r;   ar   c                    |j                             | j                   |j        D ]}|                    | j                   d S r4   )targetrE   r6   rO   )r8   r   r   s      r9   visit_type_aliaszNodeFixer.visit_type_alias   sJ    	((( 	& 	&AHHT_%%%%	& 	&r;   r-   r.   r/   r0   r1   r2   )r<   r   r1   r2   )rd   r   r1   r2   )rl   r   r1   r2   )ry   r
   r1   r2   )r}   r   r1   r2   )r   r	   r1   r2   )r   r   r1   r2   )r   r   r1   r2   )r_   r   r1   r2   )r   r   r1   r2   )r   r   r1   r2   )r   r   r1   r2   )__name__
__module____qualname__r,   __annotations__r:   rc   rG   ri   r|   r   r   r   r   r   r   r   r    r;   r9   r+   r+   1   s1        $(L((((A A A A4* 4* 4* 4*n6 6 6 6& 5  5  5  5D, , , ,
& 
& 
& 
&$ $ $ $& & & &+ + + +* * * *+ + + +
2 2 2 2& & & & & &r;   r+   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 )Jr5   r-   r.   r/   r0   r1   r2   c                "    || _         || _        d S r4   )r-   r/   r7   s      r9   r:   zTypeFixer.__init__   s    *r;   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 Nr?   )type_refr@   r-   r/   rY   rH   r   rE   argslast_known_valueextra_attrsattrsr   )r8   r   r   r^   r   r   s         r9   visit_instancezTypeFixer.visit_instance   s   =F3L($2D
 
 
	
 IO 	" 	"DyI%%D!!! 	 	AHHTNNNN ,!((... 	%+2244  	 	 r;   ra   r   c                    |j         }|d S d |_         t          | j        || j                  |_        |j        D ]}|                    |            d S r   )r   lookup_fully_qualified_aliasr-   r/   aliasr   rE   )r8   ra   r   r   s       r9   visit_type_alias_typezTypeFixer.visit_type_alias_type   sk    :F
.L($2D
 
 
  	 	AHHTNNNN	 	r;   r}   r   c                    d S r4   r   r8   r}   s     r9   	visit_anyzTypeFixer.visit_any      r;   ctr   c                   |j         r|j                             |            |j        D ]}||                    |            |j        |j                            |            |j        D ]}|                    |            |j        |j                            |            |j        |j                            |            d S d S r4   )fallbackrE   	arg_typesret_type	variables
type_guardtype_is)r8   r   argtr   s       r9   visit_callable_typezTypeFixer.visit_callable_type  s    ; 	%Kt$$$L 	" 	"DD!!!;"Kt$$$ 	 	AHHTNNNN=$M  &&&:!Jd##### "!r;   r   c                D    |j         D ]}|                    |            d S r4   r   rE   )r8   ra   r   s      r9   visit_overloadedzTypeFixer.visit_overloaded  s.    ' 	 	BIIdOOOO	 	r;   c                "    t          d|          NzShouldn't get hereRuntimeErrorr   s     r9   visit_erased_typezTypeFixer.visit_erased_type  s    /333r;   c                    d S r4   r   r   s     r9   visit_deleted_typezTypeFixer.visit_deleted_type#  r   r;   c                    d S r4   r   r   s     r9   visit_none_typezTypeFixer.visit_none_type&  r   r;   c                    d S r4   r   r   s     r9   visit_uninhabited_typez TypeFixer.visit_uninhabited_type)  r   r;   c                "    t          d|          r   r   r   s     r9   visit_partial_typezTypeFixer.visit_partial_type,  s    /333r;   ttr   c                    |j         r|j         D ]}|                    |            |j        |j                            |            d S d S r4   )r   rE   partial_fallback)r8   r   its      r9   visit_tuple_typezTypeFixer.visit_tuple_type/  s\    8 	 h    		$*&&t,,,,, +*r;   tdtr    c                <   |j         r1|j                                         D ]}|                    |            |j        \|j        j        4t          |j        j        | j        | j                   	 d|j        _        |j                            |            d S d S )Nrn   ztyping._TypedDict)r   r   rE   r   r   r   r-   r/   )r8   r   r   s      r9   visit_typeddict_typezTypeFixer.visit_typeddict_type6  s    9 	 i&&((    		$<#|$0*--1-?)?  
  -@CL)L%%%%% $#r;   ltr   c                :    |j                             |            d S r4   )r   rE   )r8   r   s     r9   visit_literal_typezTypeFixer.visit_literal_typeI  s    
4     r;   tvtr$   c                    |j         r|j         D ]}|                    |            |j                            |            |j                            |            d S r4   )r   rE   r   r   )r8   r   vts      r9   visit_type_varzTypeFixer.visit_type_varL  s`    : 	 j    		$t$$$4     r;   r_   r   c                    |j                             |            |j                            |            |j                            |            d S r4   )r   rE   r   prefixr   s     r9   visit_param_speczTypeFixer.visit_param_specS  sH    	T"""			r;   r#   c                    |j                             |            |j                            |            |j                            |            d S r4   )r   rE   r   r   r8   ra   s     r9   visit_type_var_tuplezTypeFixer.visit_type_var_tupleX  sK    	%%%	T"""		r;   ur(   c                :    |j                             |            d S r4   )rY   rE   )r8   r   s     r9   visit_unpack_typezTypeFixer.visit_unpack_type]      	dr;   r   c                    |j         D ]}||                    |            |j        D ]}|                    |            d S r4   )r   rE   r   )r8   r_   r   r   s       r9   visit_parameterszTypeFixer.visit_parameters`  s\    K 	" 	"DD!!!; 	 	CJJt	 	r;   r&   c                D    |j         D ]}|                    |            d S r4   )r   rE   )r8   r}   r   s      r9   visit_unbound_typezTypeFixer.visit_unbound_typeg  s.     	 	AHHTNNNN	 	r;   utr'   c                V    |j         r|j         D ]}|                    |            d S d S r4   r   )r8   r   r   s      r9   visit_union_typezTypeFixer.visit_union_typek  sB    8 	 h    		$	  	    r;   r"   c                :    |j                             |            d S r4   )r   rE   r   s     r9   visit_type_typezTypeFixer.visit_type_typep  r   r;   Nr   )r   r   r1   r2   )ra   r   r1   r2   )r}   r   r1   r2   )r   r   r1   r2   )ra   r   r1   r2   )r   r   r1   r2   )r   r    r1   r2   )r   r   r1   r2   )r   r$   r1   r2   )r_   r   r1   r2   )ra   r#   r1   r2   )r   r(   r1   r2   )r_   r   r1   r2   )r}   r&   r1   r2   )r   r'   r1   r2   )ra   r"   r1   r2   )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;   r9   r5   r5      s       + + + +   *	 	 	 	   $ $ $ $    4 4 4 4         4 4 4 4- - - -& & & &&! ! ! !! ! ! !   
   
                
     r;   r5   r-   r.   rB   strr/   r0   r1   r   c                   t          || |           }|r|j        nd }t          |t                    r|S |s9J d                    t          |          j        |r|j        nd                      t          |           S )Nrn   zCShould never get here in normal mode, got {}:{} instead of TypeInfo )	r   ru   rQ   r   formatrY   r   fullnamerv   )r-   rB   r/   rw   ru   s        r9   r@   r@   t  s     $D'DUVVVF *6;;dD$!! 	% 	
 	
PWWJJ$!>B
 
	
 	
 	

 G$$$r;   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 )Nrn   zDShould never get here in normal mode, got {}:{} instead of TypeAliasr   )r   ru   rQ   r   r   rL   rJ   from_tuple_typerS   from_typeddict_typemissing_aliasr   rY   r   r   )r-   rB   r/   rw   ru   r   s         r9   r   r     s    $D'DUVVVF *6;;dD$	"" 	D(	#	#  	&%%? 	#-d33EE  	#1$77EE     ??"" 	
 	
QXXJJ$!>B
 
	
 	
 	

 r;   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 )Nr<   	<missing>zbuiltins.objectFr?   )r   r   r   r   r   r   r   r@   r   rH   r\   )r-   
suggestion	dummy_defr<   obj_types        r9   rv   rv     s    ##F++JU2YY//I#IKMM9k::D.w8IY^___H8R(()DJhDHKr;   c                     t                               d          } t          t          t          j                  | ddd          S )Nr   r   rs   )linecolumn)r   r   r   r   r!   special_form)r  s    r9   r   r     s;    ##G,,JWY344j+TV_abbbbr;   )r-   r.   rB   r   r/   r0   r1   r   )r-   r.   rB   r   r/   r0   r1   r   )r-   r.   r1   r   )r1   r   )6__doc__
__future__r   typingr   r   mypy.lookupr   
mypy.nodesr   r   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'   r(   mypy.visitorr)   r+   r5   r@   r   r   r   rv   r   r   r;   r9   <module>r     s   2 2 2 " " " " " "         . . . . . .                                                                           , % $ $ $ $ $o& o& o& o& o&D! o& o& o&dN N N N ND! N N Nb% % % %"   < X W W W W	 	 	 	c c c c c cr;   