o
    ÕtBh“  ã                   @  sf   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
d„Z
G dd„ deee  ƒZdS )é    )Úannotations)ÚIterableÚSetN)ÚTypeVisitor©Úsplit_module_namesÚ	type_nameú
str | NoneÚreturnú	list[str]c                 C  s    | durt | ƒ}|dd… S g S )z8Returns the module names of a fully qualified type name.Né   r   )r   Úpossible_module_names© r   úg/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/mypy/indirection.pyÚextract_module_names
   s   r   c                   @  s   e Zd ZdZdPdd„ZdQd	d
„ZdRdd„ZdSdd„ZdTdd„ZdUdd„Z	dVdd„Z
dWdd„ZdXd d!„ZdYd#d$„ZdZd&d'„Zd[d)d*„Zd\d,d-„Zd]d/d0„Zd^d2d3„Zd_d5d6„Zd`d8d9„Zdad;d<„Zdbd>d?„ZdcdAdB„ZdddDdE„ZdedGdH„ZdfdJdK„ZdgdMdN„ZdOS )hÚTypeIndirectionVisitorz7Returns all module references within a particular type.r
   ÚNonec                 C  s   i | _ tƒ | _d S ©N)ÚcacheÚsetÚseen_aliases)Úselfr   r   r   Ú__init__   s   zTypeIndirectionVisitor.__init__ÚtypsúIterable[types.Type]úset[str]c                 C  s   | j  ¡  |  |¡S r   )r   ÚclearÚ_visit)r   r   r   r   r   Úfind_modules   s   

z#TypeIndirectionVisitor.find_modulesÚtyp_or_typsú!types.Type | Iterable[types.Type]c                 C  s†   t |tjƒr	|gn|}tƒ }|D ]0}t |tjƒr$|| jv rq| j |¡ || jv r/| j| }n| | ¡}t|ƒ| j|< | 	|¡ q|S r   )
Ú
isinstanceÚtypesÚTyper   ÚTypeAliasTyper   Úaddr   ÚacceptÚupdate)r   r   r   ÚoutputÚtypÚmodulesr   r   r   r      s   


zTypeIndirectionVisitor._visitÚtútypes.UnboundTypec                 C  ó   |   |j¡S r   )r   Úargs©r   r+   r   r   r   Úvisit_unbound_type0   ó   z)TypeIndirectionVisitor.visit_unbound_typeútypes.AnyTypec                 C  ó   t ƒ S r   ©r   r/   r   r   r   Ú	visit_any3   ó   z TypeIndirectionVisitor.visit_anyútypes.NoneTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_none_type6   r6   z&TypeIndirectionVisitor.visit_none_typeútypes.UninhabitedTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_uninhabited_type9   r6   z-TypeIndirectionVisitor.visit_uninhabited_typeútypes.ErasedTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_erased_type<   r6   z(TypeIndirectionVisitor.visit_erased_typeútypes.DeletedTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_deleted_type?   r6   z)TypeIndirectionVisitor.visit_deleted_typeútypes.TypeVarTypec                 C  ó   |   |j¡|   |j¡B S r   )r   ÚvaluesÚupper_boundr/   r   r   r   Úvisit_type_varB   ó   z%TypeIndirectionVisitor.visit_type_varútypes.ParamSpecTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_param_specE   r6   z'TypeIndirectionVisitor.visit_param_specútypes.TypeVarTupleTypec                 C  r-   r   )r   rB   r/   r   r   r   Úvisit_type_var_tupleH   r1   z+TypeIndirectionVisitor.visit_type_var_tupleútypes.UnpackTypec                 C  s   |j  | ¡S r   )Útyper&   r/   r   r   r   Úvisit_unpack_typeK   r1   z(TypeIndirectionVisitor.visit_unpack_typeútypes.Parametersc                 C  r-   r   )r   Ú	arg_typesr/   r   r   r   Úvisit_parametersN   r1   z'TypeIndirectionVisitor.visit_parametersútypes.Instancec                 C  sV   |   |j¡}|jr)|jjD ]
}| t|jƒ¡ q|jjd ur)| t|jjjjƒ¡ |S r   )r   r.   rJ   Úmror'   r   Úmodule_nameÚmetaclass_type)r   r+   ÚoutÚsr   r   r   Úvisit_instanceQ   s   z%TypeIndirectionVisitor.visit_instanceútypes.CallableTypec                 C  s8   |   |j¡|   |j¡B }|jd ur| t|jjƒ¡ |S r   )r   rM   Úret_typeÚ
definitionr'   r   Úfullname)r   r+   rS   r   r   r   Úvisit_callable_type]   s   
z*TypeIndirectionVisitor.visit_callable_typeútypes.Overloadedc                 C  r@   r   )r   ÚitemsÚfallbackr/   r   r   r   Úvisit_overloadedc   rD   z'TypeIndirectionVisitor.visit_overloadedútypes.TupleTypec                 C  r@   r   )r   r\   Úpartial_fallbackr/   r   r   r   Úvisit_tuple_typef   rD   z'TypeIndirectionVisitor.visit_tuple_typeútypes.TypedDictTypec                 C  s   |   |j ¡ ¡|   |j¡B S r   )r   r\   rA   r]   r/   r   r   r   Úvisit_typeddict_typei   s   z+TypeIndirectionVisitor.visit_typeddict_typeútypes.LiteralTypec                 C  r-   r   )r   r]   r/   r   r   r   Úvisit_literal_typel   r1   z)TypeIndirectionVisitor.visit_literal_typeútypes.UnionTypec                 C  r-   r   )r   r\   r/   r   r   r   Úvisit_union_typeo   r1   z'TypeIndirectionVisitor.visit_union_typeútypes.PartialTypec                 C  r3   r   r4   r/   r   r   r   Úvisit_partial_typer   r6   z)TypeIndirectionVisitor.visit_partial_typeútypes.TypeTypec                 C  r-   r   )r   Úitemr/   r   r   r   Úvisit_type_typeu   r1   z&TypeIndirectionVisitor.visit_type_typeútypes.TypeAliasTypec                 C  s   |   t |¡¡S r   )r   r"   Úget_proper_typer/   r   r   r   Úvisit_type_alias_typex   s   z,TypeIndirectionVisitor.visit_type_alias_typeN)r
   r   )r   r   r
   r   )r   r    r
   r   )r+   r,   r
   r   )r+   r2   r
   r   )r+   r7   r
   r   )r+   r9   r
   r   )r+   r;   r
   r   )r+   r=   r
   r   )r+   r?   r
   r   )r+   rE   r
   r   )r+   rG   r
   r   )r+   rI   r
   r   )r+   rL   r
   r   )r+   rO   r
   r   )r+   rV   r
   r   )r+   r[   r
   r   )r+   r_   r
   r   )r+   rb   r
   r   )r+   rd   r
   r   )r+   rf   r
   r   )r+   rh   r
   r   )r+   rj   r
   r   )r+   rm   r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r0   r5   r8   r:   r<   r>   rC   rF   rH   rK   rN   rU   rZ   r^   ra   rc   re   rg   ri   rl   ro   r   r   r   r   r      s4    






















r   )r   r	   r
   r   )Ú
__future__r   Útypingr   r   Ú
mypy.typesr"   r   Ú	mypy.utilr   r   Ústrr   r   r   r   r   Ú<module>   s    

