o
    tBh5                     @  s<  U d 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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dZ-G dd de,d Z.G dd de'd Z/d(ddZ0d)ddZ1d Z2d!e3d"< d*d#d$Z4d+d%d&Z5d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                 C  s   t ||}|| j| j d S N)	NodeFixervisit_symbol_tablenamesfullname)r'   r(   r*   
node_fixer r4   a/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/mypy/fixup.pyfixup_module3   s   
r6   c                   @  s   e Zd ZU dZded< d9d
dZd:ddZd;ddZd<ddZd=ddZ	d>d d!Z
d?d$d%Zd@d(d)ZdAd,d-ZdBd/d0ZdCd3d4ZdDd7d8ZdS )Er/   NzTypeInfo | Nonecurrent_infor(   r)   r*   r+   r,   r-   c                 C  s   || _ || _t| j || _d S r.   )r(   r*   	TypeFixer
type_fixerselfr(   r*   r4   r4   r5   __init__<   s   zNodeFixer.__init__infor   c                   s   j }z| _ |jr|j  |jr |j|j |jr*|jD ]}| j q!|jr9|jD ]}| j q0|j	rI|j	 j |
|j	 |jrY|j j ||j |jrc|j j |jrm|j j |jr fdd|jD |_d |_W | _ d S W | _ d S | _ w )Nc                   s   g | ]}t  j| jd qS )r*   )lookup_fully_qualified_typeinfor(   r*   ).0namer;   r4   r5   
<listcomp>[   s    
z-NodeFixer.visit_type_info.<locals>.<listcomp>)r7   defnacceptr1   r0   r2   basesr9   _promote
tuple_typeupdate_tuple_typetypeddict_typeupdate_typeddict_typedeclared_metaclassmetaclass_type	_mro_refsmro)r;   r=   	save_infobasepr4   rB   r5   visit_type_infoB   s>   



	zNodeFixer.visit_type_infosymtabr   table_fullnamestrc                 C  s   t | D ]o\}}|j}|d urSd |_|| jv r | j| |_qt|| j| j d}|d urB|jd us=J |d | |f|j|_q| jsLJ d| t| j|_qt|jt	r`| 
|j q|jd url|j|  qJ d|d| d S )Nraise_on_missing.FzCould not find cross-ref zUnexpected empty node z: )listitems	cross_refr(   noder   r*   missing_info
isinstancer   rS   rE   )r;   rT   rU   keyvaluer\   stnoder4   r4   r5   r0   f   s*   


zNodeFixer.visit_symbol_tablefuncr	   c                 C  2   | j d ur	| j |_|jd ur|j| j d S d S r.   r7   r=   typerE   r9   )r;   rc   r4   r4   r5   visit_func_def   
   

zNodeFixer.visit_func_defor   c                 C  sV   | j d ur	| j |_|jr|j| j |jD ]}||  q|jr)|j|  d S d S r.   )r7   r=   rf   rE   r9   r[   impl)r;   ri   itemr4   r4   r5   visit_overloaded_func_def   s   

z#NodeFixer.visit_overloaded_func_defdr   c                 C  sR   | j d ur
| j |j_|jr|j|  |jr|j|  |jD ]}||  qd S r.   )r7   varr=   rc   rE   
decorators)r;   rm   r]   r4   r4   r5   visit_decorator   s   


zNodeFixer.visit_decoratorcr   c                 C  s@   |j D ]}t|tr|jD ]}|| j q|j| j qd S r.   )	type_varsr_   r!   valuesrE   r9   upper_bound)r;   rq   vra   r4   r4   r5   visit_class_def   s   


zNodeFixer.visit_class_deftvr   c                 C  s*   |j D ]}|| j q|j| j d S r.   )rs   rE   r9   rt   )r;   rw   ra   r4   r4   r5   visit_type_var_expr   s   
zNodeFixer.visit_type_var_exprrR   r   c                 C     |j | j d S r.   rt   rE   r9   r;   rR   r4   r4   r5   visit_paramspec_expr      zNodeFixer.visit_paramspec_exprr   c                 C  ry   r.   rz   )r;   rw   r4   r4   r5   visit_type_var_tuple_expr   r}   z#NodeFixer.visit_type_var_tuple_exprru   r   c                 C  rd   r.   re   )r;   ru   r4   r4   r5   	visit_var   rh   zNodeFixer.visit_varar   c                 C  ry   r.   )targetrE   r9   )r;   r   r4   r4   r5   visit_type_alias   r}   zNodeFixer.visit_type_aliasr(   r)   r*   r+   r,   r-   )r=   r   r,   r-   )rT   r   rU   rV   r,   r-   )rc   r	   r,   r-   )ri   r   r,   r-   )rm   r   r,   r-   )rq   r   r,   r-   )rw   r   r,   r-   )rR   r   r,   r-   )rw   r   r,   r-   )ru   r   r,   r-   )r   r   r,   r-   )__name__
__module____qualname__r7   __annotations__r<   rS   r0   rg   rl   rp   rv   rx   r|   r~   r   r   r4   r4   r4   r5   r/   9   s   
 


$









r/   Nc                   @  s   e Zd ZdQddZdRddZdSddZdTddZdUddZdVddZdTddZ	dTddZ
dTd d!ZdTd"d#ZdTd$d%ZdWd(d)ZdXd,d-ZdYd0d1ZdZd4d5Zd[d8d9Zd\d;d<Zd]d?d@Zd^dBdCZd_dEdFZd`dIdJZdTdKdLZdadNdOZdPS )br8   r(   r)   r*   r+   r,   r-   c                 C  s   || _ || _d S r.   )r(   r*   r:   r4   r4   r5   r<      s   
zTypeFixer.__init__instr   c                 C  s   |j }|d u r	d S d |_ t| j|| jd|_|jjD ]}|jtu r&||  q|jD ]}||  q*|j	d ur?|j	|  d S d S Nr>   )
type_refr?   r(   r*   rf   rF   r   rE   argslast_known_value)r;   r   r   rQ   r   r4   r4   r5   visit_instance   s    




zTypeFixer.visit_instancetr   c                 C  sF   |j }|d u r	d S d |_ t| j|| jd|_|jD ]}||  qd S r   )r   lookup_fully_qualified_aliasr(   r*   aliasr   rE   )r;   r   r   r   r4   r4   r5   visit_type_alias_type   s   

zTypeFixer.visit_type_alias_typeri   r   c                 C     d S r.   r4   r;   ri   r4   r4   r5   	visit_any      zTypeFixer.visit_anyctr   c                 C  s   |j r	|j |  |jD ]}|d ur||  q|jd ur#|j|  |jD ]}||  q&|jD ]	}|r:||  q1|jd urH|j|  d S d S r.   )fallbackrE   	arg_typesret_type	variables
bound_args
type_guard)r;   r   argtru   argr4   r4   r5   visit_callable_type   s"   






zTypeFixer.visit_callable_typer   c                 C     |j D ]}||  qd S r.   r[   rE   )r;   r   r   r4   r4   r5   visit_overloaded      
zTypeFixer.visit_overloadedc                 C  
   t d|NzShouldn't get hereRuntimeErrorr   r4   r4   r5   visit_erased_type   s   
zTypeFixer.visit_erased_typec                 C  r   r.   r4   r   r4   r4   r5   visit_deleted_type   r   zTypeFixer.visit_deleted_typec                 C  r   r.   r4   r   r4   r4   r5   visit_none_type   r   zTypeFixer.visit_none_typec                 C  r   r.   r4   r   r4   r4   r5   visit_uninhabited_type   r   z TypeFixer.visit_uninhabited_typec                 C  r   r   r   r   r4   r4   r5   visit_partial_type  s   
zTypeFixer.visit_partial_typettr   c                 C  :   |j r|j D ]}||  q|jd ur|j|  d S d S r.   )r[   rE   partial_fallback)r;   r   itr4   r4   r5   visit_tuple_type     

zTypeFixer.visit_tuple_typetdtr   c                 C  sn   |j r|j  D ]}||  q|jd ur5|jjd ur-t|jj| j| j dd u r-d|j_|j|  d S d S )NrW   ztyping._TypedDict)r[   rs   rE   r   r   r   r(   r*   )r;   r   r   r4   r4   r5   visit_typeddict_type  s   
	zTypeFixer.visit_typeddict_typeltr   c                 C     |j |  d S r.   )r   rE   )r;   r   r4   r4   r5   visit_literal_type     zTypeFixer.visit_literal_typetvtr!   c                 C  r   r.   )rs   rE   rt   )r;   r   vtr4   r4   r5   visit_type_var!  r   zTypeFixer.visit_type_varrR   r   c                 C  r   r.   rt   rE   r{   r4   r4   r5   visit_param_spec(  r   zTypeFixer.visit_param_specr    c                 C  r   r.   r   r;   r   r4   r4   r5   visit_type_var_tuple+  r   zTypeFixer.visit_type_var_tupleur%   c                 C  r   r.   )rf   rE   )r;   r   r4   r4   r5   visit_unpack_type.  r   zTypeFixer.visit_unpack_typer   c                 C  s8   |j D ]}|d ur||  q|jD ]}||  qd S r.   )r   rE   r   )r;   rR   r   rn   r4   r4   r5   visit_parameters1  s   


zTypeFixer.visit_parametersr#   c                 C  r   r.   )r   rE   )r;   ri   r   r4   r4   r5   visit_unbound_type8  r   zTypeFixer.visit_unbound_typeutr$   c                 C  s$   |j r|j D ]	}||  qd S d S r.   r   )r;   r   r   r4   r4   r5   visit_union_type<  s
   
zTypeFixer.visit_union_typec                 C  r   r.   r4   r   r4   r4   r5   
visit_voidA  r   zTypeFixer.visit_voidr   c                 C  r   r.   )rk   rE   r   r4   r4   r5   visit_type_typeD  r   zTypeFixer.visit_type_typeNr   )r   r   r,   r-   )r   r   r,   r-   )ri   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-   )rR   r   r,   r-   )r   r    r,   r-   )r   r%   r,   r-   )rR   r   r,   r-   )ri   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   r4   r4   r4   r5   r8      s0    





















r8   rA   rV   r   c                C  s\   t || | d}|r|jnd }t|tr|S |s*J dt|j|r&|jdt| S )NrW   zCShould never get here in normal mode, got {}:{} instead of TypeInfo )	r   r]   r_   r   formatrf   r   r2   r^   )r(   rA   r*   rb   r]   r4   r4   r5   r?   H  s   
r?   r   c                C  s   t || | d}|r|jnd }t|tr|S t|tr?|jr!|jS |jr*t|}n|jr3t	|}n|s7J t
 S ||_|S |sSJ dt|j|rO|jdt
 S )NrW   zDShould never get here in normal mode, got {}:{} instead of TypeAliasr   )r   r]   r_   r   r   special_aliasrH   from_tuple_typerJ   from_typeddict_typemissing_aliasr   rf   r   r2   )r(   rA   r*   rb   r]   r   r4   r4   r5   r   Y  s2   

r   z@<missing {}: *should* have gone away during fine-grained update>r   _SUGGESTIONc                 C  sV   t d}t|tg }||_tt |d}t| ddd}t|g g|_	||g|_
|S )Nr=   z	<missing>zbuiltins.objectFr>   )r   r   r   r   r2   r   r   r?   r   rF   rO   )r(   
suggestion	dummy_defr=   obj_typer4   r4   r5   r^   z  s   

r^   c                  C  s    t d} tttj| dddS )Nr   )linecolumn)r   r   r   r   r   special_form)r   r4   r4   r5   r     s   
r   )r'   r
   r(   r)   r*   r+   r,   r-   )r(   r)   rA   rV   r*   r+   r,   r   )r(   r)   rA   rV   r*   r+   r,   r   )r(   r)   r,   r   )r,   r   )6__doc__
__future__r   typingr   typing_extensionsr   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&   r6   r/   r8   r?   r   r   r   r^   r   r4   r4   r4   r5   <module>   s$    <T
  


