
    X-Phi                    r    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 dd
Z	 G d ded                   Z
dS )    )annotations)IterableN)TypeVisitorsplit_module_names	type_name
str | Nonereturn	list[str]c                <    | t          |           }|dd         S g S )z8Returns the module names of a fully qualified type name.N   r   )r   possible_module_namess     P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypy/indirection.pyextract_module_namesr   
   s*     29 = =$QRR((	    c                      e Zd Z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dFdZdGd!ZdHd#ZdId%ZdJd'ZdKd)ZdLd+ZdMd-ZdNd/ZdOd1ZdPd3ZdQd5ZdRd7ZdSd9Zd:S )TTypeIndirectionVisitorz7Returns all module references within a particular type.r
   Nonec                x    t                      | _        t                      | _        t                      | _        d S N)setmodulesseen_aliasesseen_fullnames)selfs    r   __init__zTypeIndirectionVisitor.__init__   s+    !$69ee(+r   typsIterable[types.Type]set[str]c                    t                      | _        t                      | _        t                      | _        |                     |           | j        S r   )r   r   r   r   _visit)r   r   s     r   find_modulesz#TypeIndirectionVisitor.find_modules   s?    uu!eeEED|r   typ_or_typs!types.Type | Iterable[types.Type]c                    t          |t          j                  r|gn|}|D ]U}t          |t          j                  r$|| j        v r&| j                            |           |                    |            Vd S r   )
isinstancetypesTypeTypeAliasTyper   addaccept)r   r#   r   typs       r   r!   zTypeIndirectionVisitor._visit&   s     *;
 C CT}} 	 	C#u233 +$+++!%%c***JJt	 	r   module_namestrc                j    || j         vr)| j                             t          |                     d S d S r   )r   updater   )r   r-   s     r   _visit_module_namez)TypeIndirectionVisitor._visit_module_name0   s<    dl**L 2; ? ?@@@@@ +*r   ttypes.UnboundTypec                :    |                      |j                   d S r   )r!   argsr   r2   s     r   visit_unbound_typez)TypeIndirectionVisitor.visit_unbound_type4       AFr   types.AnyTypec                    d S r    r6   s     r   	visit_anyz TypeIndirectionVisitor.visit_any7       r   types.NoneTypec                    d S r   r;   r6   s     r   visit_none_typez&TypeIndirectionVisitor.visit_none_type:   r=   r   types.UninhabitedTypec                    d S r   r;   r6   s     r   visit_uninhabited_typez-TypeIndirectionVisitor.visit_uninhabited_type=   r=   r   types.ErasedTypec                    d S r   r;   r6   s     r   visit_erased_typez(TypeIndirectionVisitor.visit_erased_type@   r=   r   types.DeletedTypec                    d S r   r;   r6   s     r   visit_deleted_typez)TypeIndirectionVisitor.visit_deleted_typeC   r=   r   types.TypeVarTypec                    |                      |j                   |                      |j                   |                      |j                   d S r   )r!   valuesupper_bounddefaultr6   s     r   visit_type_varz%TypeIndirectionVisitor.visit_type_varF   sD    AHAM"""AIr   types.ParamSpecTypec                n    |                      |j                   |                      |j                   d S r   r!   rM   rN   r6   s     r   visit_param_specz'TypeIndirectionVisitor.visit_param_specK   0    AM"""AIr   types.TypeVarTupleTypec                n    |                      |j                   |                      |j                   d S r   rR   r6   s     r   visit_type_var_tuplez+TypeIndirectionVisitor.visit_type_var_tupleO   rT   r   types.UnpackTypec                :    |j                             |            d S r   )typer+   r6   s     r   visit_unpack_typez(TypeIndirectionVisitor.visit_unpack_typeS   s    	dr   types.Parametersc                :    |                      |j                   d S r   )r!   	arg_typesr6   s     r   visit_parametersz'TypeIndirectionVisitor.visit_parametersV   s    AK     r   types.Instancec                   |                      |j                   |j        r`|j        j        D ]}|                     |j                   |j        j        -|                     |j        j        j        j                   d S d S d S r   )r!   r5   rZ   mror1   r-   metaclass_type)r   r2   ss      r   visit_instancez%TypeIndirectionVisitor.visit_instanceY   s    AF6 	P VZ 7 7''6666v$0''(=(B(NOOOOO	P 	P 10r   types.CallableTypec                D   |                      |j                   |                      |j                   |j        b|j        j        }|| j        vrO| j                            t          |j        j                             | j        	                    |           d S d S d S r   )
r!   r^   ret_type
definitionfullnamer   r   r0   r   r*   )r   r2   rj   s      r   visit_callable_typez*TypeIndirectionVisitor.visit_callable_typed   s    AK   AJ<#|,Ht222##$89N$O$OPPP#''11111	 $#22r   types.Overloadedc                n    |                      |j                   |                      |j                   d S r   )r!   itemsfallbackr6   s     r   visit_overloadedz'TypeIndirectionVisitor.visit_overloadedm   s0    AGAJr   types.TupleTypec                n    |                      |j                   |                      |j                   d S r   )r!   rn   partial_fallbackr6   s     r   visit_tuple_typez'TypeIndirectionVisitor.visit_tuple_typeq   s1    AGA&'''''r   types.TypedDictTypec                    |                      |j                                                   |                      |j                   d S r   )r!   rn   rL   ro   r6   s     r   visit_typeddict_typez+TypeIndirectionVisitor.visit_typeddict_typeu   s:    AGNN$$%%%AJr   types.LiteralTypec                :    |                      |j                   d S r   )r!   ro   r6   s     r   visit_literal_typez)TypeIndirectionVisitor.visit_literal_typey   s    AJr   types.UnionTypec                :    |                      |j                   d S r   )r!   rn   r6   s     r   visit_union_typez'TypeIndirectionVisitor.visit_union_type|   s    AGr   types.PartialTypec                    d S r   r;   r6   s     r   visit_partial_typez)TypeIndirectionVisitor.visit_partial_type   r=   r   types.TypeTypec                :    |                      |j                   d S r   )r!   itemr6   s     r   visit_type_typez&TypeIndirectionVisitor.visit_type_type   r8   r   types.TypeAliasTypec                T    |                      t          j        |                     d S r   )r!   r'   get_proper_typer6   s     r   visit_type_alias_typez,TypeIndirectionVisitor.visit_type_alias_type   s%    E)!,,-----r   N)r
   r   )r   r   r
   r   )r#   r$   r
   r   )r-   r.   r
   r   )r2   r3   r
   r   )r2   r9   r
   r   )r2   r>   r
   r   )r2   rA   r
   r   )r2   rD   r
   r   )r2   rG   r
   r   )r2   rJ   r
   r   )r2   rP   r
   r   )r2   rU   r
   r   )r2   rX   r
   r   )r2   r\   r
   r   )r2   r`   r
   r   )r2   rf   r
   r   )r2   rl   r
   r   )r2   rq   r
   r   )r2   ru   r
   r   )r2   rx   r
   r   )r2   r{   r
   r   )r2   r~   r
   r   )r2   r   r
   r   )r2   r   r
   r   )__name__
__module____qualname____doc__r   r"   r!   r1   r7   r<   r@   rC   rF   rI   rO   rS   rW   r[   r_   re   rk   rp   rt   rw   rz   r}   r   r   r   r;   r   r   r   r      s       AA. . . .      A A A A                     
         ! ! ! !	P 	P 	P 	P2 2 2 2       ( ( ( (                       . . . . . .r   r   )r   r	   r
   r   )
__future__r   collections.abcr   
mypy.typesr'   r   	mypy.utilr   r   r   r;   r   r   <module>r      s    " " " " " " $ $ $ $ $ $       " " " " " " ( ( ( ( ( (   r. r. r. r. r.[. r. r. r. r. r.r   