o
    b
                     @   s   d Z ddlZddlmZmZmZmZmZmZ ddhZ	ddhZ
dd	hZd
ZeejZdd ZdddZdd ZdddZeejeee eejeee dS )z$Astroid hooks for typing.py support.    N)MANAGERUseInferenceDefaultextract_nodeinference_tipnodesInferenceError
NamedTupleztyping.NamedTupleTypeVarNewTypeztyping.TypeVarztyping.NewTypez
class Meta(type):
    def __getitem__(self, item):
        return self

    @property
    def __args__(self):
        return ()

class {0}(metaclass=Meta):
    pass
c                 C   s6   | j }t|tjr|jtv S t|tjr|jtv S dS )NF)func
isinstancer   	AttributeattrnameTYPING_TYPEVARSNamename)noder    r   Y/var/www/secure340b-portal/env/lib/python3.10/site-packages/astroid/brain/brain_typing.py$looks_like_typing_typevar_or_newtype&   s   

r   c              
   C   s~   zt | jj|d}W n ty } zt|d}~ww | tvr#t| js(t| jd  	d}t
t|} | j|dS )z7Infer a typing.TypeVar(...) or typing.NewType(...) callcontextNr   ')nextr   inferr   r   qnameTYPING_TYPEVARS_QUALIFIEDargs	as_stringstripr   TYPING_TYPE_TEMPLATEformat)r   r   r   exctypenamer   r   r   infer_typing_typevar_or_newtype/   s   r$   c                 C   sF   t | tjr| jtv S t | tjr| jtv S t | tjr!t| j	S dS )zKTry to figure out if a Subscript node *might* be a typing-related subscriptF)
r   r   r   r   TYPING_MEMBERSr   r   	Subscript_looks_like_typing_subscriptvalue)r   r   r   r   r'   @   s   


r'   c              
   C   sl   z	t | j }W n ty } zt|d}~ww | ds"ttt	| 
dd } | j|dS )zInfer a typing.X[...] subscriptNztyping..r   )r   r(   r   r   r   r   
startswithr   r    r!   split)r   r   r(   r"   r   r   r   infer_typing_attrK   s   r-   )N)__doc__typingZastroidr   r   r   r   r   r   ZTYPING_NAMEDTUPLE_BASENAMESr   r   r    set__all__r%   r   r$   r'   r-   Zregister_transformCallr&   r   r   r   r   <module>   s(    


	
