
    hi                    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     `/var/www/html/Pagina-Ingenieria-Requisitos/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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dOd)ZdPd+ZdQd-ZdRd/ZdSd1ZdTd3ZdUd5ZdVd7ZdWd9ZdXd;ZdYd=Zd>S )Z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                      | _        |D ]}|                     |           | j        S r   )r   r   r   r   _visitr   r   typs      r   find_modulesz#TypeIndirectionVisitor.find_modules   sQ    uu!eeEE 	 	CKK|r   r#   
types.Typec                    t          |t          j                  r%|| j        v rd S | j                            |           |                    |            d S r   
isinstancetypesTypeAliasTyper   addaccept)r   r#   s     r   r!   zTypeIndirectionVisitor._visit'   sY    c5.// 	'd'''!!#&&&

4r   tuple[types.Type, ...]c                    |D ]U}t          |t          j                  r$|| j        v r&| j                            |           |                    |            Vd S r   r'   r"   s      r   _visit_type_tuplez(TypeIndirectionVisitor._visit_type_tuple/   m     	 	C#u233 +$+++!%%c***JJt	 	r   list[types.Type]c                    |D ]U}t          |t          j                  r$|| j        v r&| j                            |           |                    |            Vd S r   r'   r"   s      r   _visit_type_listz'TypeIndirectionVisitor._visit_type_list9   r0   r   module_namestrc                j    || j         vr)| j                             t          |                     d S d S r   )r   updater   )r   r4   s     r   _visit_module_namez)TypeIndirectionVisitor._visit_module_nameC   s<    dl**L 2; ? ?@@@@@ +*r   ttypes.UnboundTypec                :    |                      |j                   d S r   )r/   argsr   r9   s     r   visit_unbound_typez)TypeIndirectionVisitor.visit_unbound_typeG   s    qv&&&&&r   types.AnyTypec                    d S r    r=   s     r   	visit_anyz TypeIndirectionVisitor.visit_anyJ       r   types.NoneTypec                    d S r   rA   r=   s     r   visit_none_typez&TypeIndirectionVisitor.visit_none_typeM   rC   r   types.UninhabitedTypec                    d S r   rA   r=   s     r   visit_uninhabited_typez-TypeIndirectionVisitor.visit_uninhabited_typeP   rC   r   types.ErasedTypec                    d S r   rA   r=   s     r   visit_erased_typez(TypeIndirectionVisitor.visit_erased_typeS   rC   r   types.DeletedTypec                    d S r   rA   r=   s     r   visit_deleted_typez)TypeIndirectionVisitor.visit_deleted_typeV   rC   r   types.TypeVarTypec                    |                      |j                   |                     |j                   |                     |j                   d S r   )r3   valuesr!   upper_bounddefaultr=   s     r   visit_type_varz%TypeIndirectionVisitor.visit_type_varY   sF    ah'''AM"""AIr   types.ParamSpecTypec                n    |                      |j                   |                      |j                   d S r   r!   rS   rT   r=   s     r   visit_param_specz'TypeIndirectionVisitor.visit_param_spec^   0    AM"""AIr   types.TypeVarTupleTypec                n    |                      |j                   |                      |j                   d S r   rX   r=   s     r   visit_type_var_tuplez+TypeIndirectionVisitor.visit_type_var_tupleb   rZ   r   types.UnpackTypec                :    |j                             |            d S r   )typer,   r=   s     r   visit_unpack_typez(TypeIndirectionVisitor.visit_unpack_typef   s    	dr   types.Parametersc                :    |                      |j                   d S r   )r3   	arg_typesr=   s     r   visit_parametersz'TypeIndirectionVisitor.visit_parametersi   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/   r<   r`   mror8   r4   metaclass_type)r   r9   ss      r   visit_instancez%TypeIndirectionVisitor.visit_instancel   s    qv&&&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   )r3   rd   r!   ret_type
definitionfullnamer   r   r7   r   r+   )r   r9   rp   s      r   visit_callable_typez*TypeIndirectionVisitor.visit_callable_typew   s    ak***AJ<#|,Ht222##$89N$O$OPPP#''11111	 $#22r   types.Overloadedc                    |                      t          |j                             |                     |j                   d S r   )r3   listitemsr!   fallbackr=   s     r   visit_overloadedz'TypeIndirectionVisitor.visit_overloaded   s8    d17mm,,,AJr   types.TupleTypec                n    |                      |j                   |                     |j                   d S r   )r3   ru   r!   partial_fallbackr=   s     r   visit_tuple_typez'TypeIndirectionVisitor.visit_tuple_type   s3    ag&&&A&'''''r   types.TypedDictTypec                    |                      t          |j                                                             |                     |j                   d S r   )r3   rt   ru   rR   r!   rv   r=   s     r   visit_typeddict_typez+TypeIndirectionVisitor.visit_typeddict_type   sD    d17>>#3#344555AJr   types.LiteralTypec                :    |                      |j                   d S r   )r!   rv   r=   s     r   visit_literal_typez)TypeIndirectionVisitor.visit_literal_type   s    AJr   types.UnionTypec                :    |                      |j                   d S r   )r3   ru   r=   s     r   visit_union_typez'TypeIndirectionVisitor.visit_union_type   s    ag&&&&&r   types.PartialTypec                    d S r   rA   r=   s     r   visit_partial_typez)TypeIndirectionVisitor.visit_partial_type   rC   r   types.TypeTypec                :    |                      |j                   d S r   )r!   itemr=   s     r   visit_type_typez&TypeIndirectionVisitor.visit_type_type   s    AFr   types.TypeAliasTypec                T    |                      t          j        |                     d S r   )r!   r)   get_proper_typer=   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   )r   r1   r
   r   )r4   r5   r
   r   )r9   r:   r
   r   )r9   r?   r
   r   )r9   rD   r
   r   )r9   rG   r
   r   )r9   rJ   r
   r   )r9   rM   r
   r   )r9   rP   r
   r   )r9   rV   r
   r   )r9   r[   r
   r   )r9   r^   r
   r   )r9   rb   r
   r   )r9   rf   r
   r   )r9   rl   r
   r   )r9   rr   r
   r   )r9   rx   r
   r   )r9   r|   r
   r   )r9   r   r
   r   )r9   r   r
   r   )r9   r   r
   r   )r9   r   r
   r   )r9   r   r
   r   )__name__
__module____qualname____doc__r   r$   r!   r/   r3   r8   r>   rB   rF   rI   rL   rO   rU   rY   r]   ra   re   rk   rq   rw   r{   r~   r   r   r   r   r   rA   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   rA   r   r   <module>r      s    " " " " " " $ $ $ $ $ $       " " " " " " ( ( ( ( ( (   E. E. E. E. E.[. E. E. E. E. E.r   