
    ni                    ^    d dl mZ d dlmZ d dlmZ d dlmZ  G d ded                   ZdS )    )annotations)IterableN)TypeVisitorc                      e Zd Z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dOd.ZdPd0ZdQd2ZdRd4ZdSd6ZdTd8ZdUd:Zd;S )VTypeIndirectionVisitorz7Returns all module references within a particular type.returnNonec                R    t                      | _        t                      | _        d S N)setmodules
seen_types)selfs    M/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/mypy/indirection.py__init__zTypeIndirectionVisitor.__init__   s    !$EHUU    typsIterable[types.Type]set[str]c                    t                      | _        t                      | _        |D ]}|                     |           | j        S r   )r   r   r   _visitr   r   typs      r   find_modulesz#TypeIndirectionVisitor.find_modules   sD    uu%% 	 	CKK|r   r   
types.Typec                   t          |t          j                  s4t          |t          j                  r?t          |t          j                  r%|| j        v rd S | j                            |           |                    |            d S r   
isinstancetypesTypeAliasType
ProperTypeInstancer   addaccept)r   r   s     r   r   zTypeIndirectionVisitor._visit   s     sE/00	%#u/00	% 3//	% do%%O$$$

4r   tuple[types.Type, ...]c                   |D ]}t          |t          j                  s4t          |t          j                  r>t          |t          j                  r$|| j        v rZ| j                            |           |                    |            d S r   r   r   s      r   _visit_type_tuplez(TypeIndirectionVisitor._visit_type_tuple&        
	 
	C3 344)c5#344) sEN33) $/))##C(((JJt
	 
	r   list[types.Type]c                   |D ]}t          |t          j                  s4t          |t          j                  r>t          |t          j                  r$|| j        v rZ| j                            |           |                    |            d S r   r   r   s      r   _visit_type_listz'TypeIndirectionVisitor._visit_type_list4   r(   r   ttypes.UnboundTypec                :    |                      |j                   d S r   )r'   argsr   r,   s     r   visit_unbound_typez)TypeIndirectionVisitor.visit_unbound_typeB   s    qv&&&&&r   types.AnyTypec                    d S r    r0   s     r   	visit_anyz TypeIndirectionVisitor.visit_anyE       r   types.NoneTypec                    d S r   r4   r0   s     r   visit_none_typez&TypeIndirectionVisitor.visit_none_typeH   r6   r   types.UninhabitedTypec                    d S r   r4   r0   s     r   visit_uninhabited_typez-TypeIndirectionVisitor.visit_uninhabited_typeK   r6   r   types.ErasedTypec                    d S r   r4   r0   s     r   visit_erased_typez(TypeIndirectionVisitor.visit_erased_typeN   r6   r   types.DeletedTypec                    d S r   r4   r0   s     r   visit_deleted_typez)TypeIndirectionVisitor.visit_deleted_typeQ   r6   r   types.TypeVarTypec                    |                      |j                   |                     |j                   |                     |j                   d S r   )r+   valuesr   upper_bounddefaultr0   s     r   visit_type_varz%TypeIndirectionVisitor.visit_type_varT   sF    ah'''AM"""AIr   types.ParamSpecTypec                    |                      |j                   |                      |j                   |                      |j                   d S r   )r   rF   rG   prefixr0   s     r   visit_param_specz'TypeIndirectionVisitor.visit_param_specY   sD    AM"""AIAHr   types.TypeVarTupleTypec                n    |                      |j                   |                      |j                   d S r   )r   rF   rG   r0   s     r   visit_type_var_tuplez+TypeIndirectionVisitor.visit_type_var_tuple^   s0    AM"""AIr   types.UnpackTypec                :    |j                             |            d S r   )typer$   r0   s     r   visit_unpack_typez(TypeIndirectionVisitor.visit_unpack_typeb   s    	dr   types.Parametersc                :    |                      |j                   d S r   )r+   	arg_typesr0   s     r   visit_parametersz'TypeIndirectionVisitor.visit_parameterse   s    ak*****r   types.Instancec                   |                      |j                   |j        r|j        j        D ]L}| j                            |j                   |j        D ]#}|j        r|                      |j                   $M|j        j        r| 	                    |j        j                   |j        j
        r| 	                    |j        j
                   |j        j        r#| 	                    |j        j                   d S d S d S r   )r'   r/   rR   mror   r#   module_namebasesmetaclass_typer   typeddict_type
tuple_type)r   r,   sbases       r   visit_instancez%TypeIndirectionVisitor.visit_instanceh   s    	qv&&&6 	/ VZ : :  ///G : :Dy :..ty999: v$ 3AF1222v$ 3AF1222v  /AF-.....	/ 	// /r   types.CallableTypec                    |                      |j                   |                     |j                   |                     |j                   d S r   )r+   rV   r   ret_typer'   	variablesr0   s     r   visit_callable_typez*TypeIndirectionVisitor.visit_callable_type   sH    ak***AJq{+++++r   types.Overloadedc                x    |j         D ]}|                     |           |                     |j                   d S r   )itemsr   fallback)r   r,   items      r   visit_overloadedz'TypeIndirectionVisitor.visit_overloaded   sB    G 	 	DKKAJr   types.TupleTypec                n    |                      |j                   |                     |j                   d S r   )r+   rj   r   partial_fallbackr0   s     r   visit_tuple_typez'TypeIndirectionVisitor.visit_tuple_type   s3    ag&&&A&'''''r   types.TypedDictTypec                    |                      t          |j                                                             |                     |j                   d S r   )r+   listrj   rE   r   rk   r0   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   rk   r0   s     r   visit_literal_typez)TypeIndirectionVisitor.visit_literal_type   s    AJr   types.UnionTypec                :    |                      |j                   d S r   )r+   rj   r0   s     r   visit_union_typez'TypeIndirectionVisitor.visit_union_type   s    ag&&&&&r   types.PartialTypec                    d S r   r4   r0   s     r   visit_partial_typez)TypeIndirectionVisitor.visit_partial_type   r6   r   types.TypeTypec                :    |                      |j                   d S r   )r   rl   r0   s     r   visit_type_typez&TypeIndirectionVisitor.visit_type_type   s    AFr   types.TypeAliasTypec                    |j         rC| j                            |j         j                   |                     |j         j                   |                     |j                   d S r   )aliasr   r#   moduler   targetr+   r/   r0   s     r   visit_type_alias_typez,TypeIndirectionVisitor.visit_type_alias_type   sZ     7 	(LQW^,,,KK'''af%%%%%r   N)r   r	   )r   r   r   r   )r   r   r   r	   )r   r%   r   r	   )r   r)   r   r	   )r,   r-   r   r	   )r,   r2   r   r	   )r,   r7   r   r	   )r,   r:   r   r	   )r,   r=   r   r	   )r,   r@   r   r	   )r,   rC   r   r	   )r,   rI   r   r	   )r,   rM   r   r	   )r,   rP   r   r	   )r,   rT   r   r	   )r,   rX   r   r	   )r,   rc   r   r	   )r,   rh   r   r	   )r,   rn   r   r	   )r,   rr   r   r	   )r,   rv   r   r	   )r,   ry   r   r	   )r,   r|   r   r	   )r,   r   r   r	   )r,   r   r   r	   )__name__
__module____qualname____doc__r   r   r   r'   r+   r1   r5   r9   r<   r?   rB   rH   rL   rO   rS   rW   rb   rg   rm   rq   ru   rx   r{   r~   r   r   r4   r   r   r   r   	   s&       AAK K K K            ' ' ' '                  
   
      + + + +/ / / /., , , ,
       
( ( ( (              ' ' ' '      & & & & & &r   r   )
__future__r   collections.abcr   
mypy.typesr   r   r   r4   r   r   <module>r      s    " " " " " " $ $ $ $ $ $       " " " " " "Z& Z& Z& Z& Z&[. Z& Z& Z& Z& Z&r   