o
    i                     @   s   U d Z ddlZddlZddlmZ ddlZG dd dZe ZdddZdd	d
Z	ej
 Zi Zeee ee f ed< i Zeeee f ed< dddZdd Zdd ZdddZe Zejed< e Zejed< dd ZdddZdd ZdddZdS ) zJIT-related state.

This module stores various pieces of Python-global state relating to the JIT.

This is not intended to be imported directly; please the exposed
functionalities in `torch.jit`.
    N)Anyc                   @   s0   e Zd ZdZd
ddZdd Zdefdd	ZdS )EnabledProxyzyStores whether the JIT is enabled or not.

    This is just a wrapper for a bool, so that we get reference semantics
    returnNc                 C   s   |  dddd| _d S )NPYTORCH_JITTz> Using PyTorch JITz> PyTorch JIT DISABLED)	parse_envenabledself r
   R/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/torch/jit/_state.py__init__   s   
zEnabledProxy.__init__c                 C   sp   t j|}|d u r|S | dv rdS | dv rdS |dkr&t| dS |dkr0t| dS td| d)	N>   1yestrueT>   0nofalseF1v0vzUnknown setting of z. Try using 0 or 1.)osenvirongetlowerprint
ValueError)r	   namedefaulttrue_messagefalse_messagevaluer
   r
   r   r      s   zEnabledProxy.parse_envc                 C   s   | j S N)r   r   r
   r
   r   __bool__,   s   zEnabledProxy.__bool__r   N)__name__
__module____qualname____doc__r   r   boolr!   r
   r
   r
   r   r      s
    
r   r   c                   C   
   dt _d S )NF_enabledr   r
   r
   r
   r   disable3      
r+   c                   C   r(   )NTr)   r
   r
   r
   r   enable7   r,   r-   _script_classes_name_to_pyclassc                 C   s   |t | < | t| < d S r    )r.   r/   qualified_name)python_classscript_classr
   r
   r   _add_script_classF   s   r3   c                 C   s&   t | dd }|d urt|} t| S )N_jit_override_qualname)getattr_get_python_classr.   r   )r1   overrider
   r
   r   _get_script_classK   s   
r8   c                 C   s
   t | S r    )r/   r   r0   r
   r
   r   r6   R   r,   r6   c                   C   s   t   t  d S r    )r.   clearr/   r
   r
   r
   r   _clear_class_stateV   s   r;   _jit_caching_layer_jit_function_overload_cachingc                 C   s"   t | d }|rdd |D S d S )Nc                 S   s   g | ]}t |qS r
   )
_python_cufind_function).0	qual_namer
   r
   r   
<listcomp>j   s    z1_try_get_jit_cached_overloads.<locals>.<listcomp>)r=   r   )key
qual_namesr
   r
   r   _try_get_jit_cached_overloadsg   s   rE   c                 C   s   dd |D t | < d S )Nc                 S   s   g | ]}|j qS r
   r9   )r@   fnr
   r
   r   rB   p   s    z+_set_jit_overload_cache.<locals>.<listcomp>)r=   )rC   compiled_fnsr
   r
   r   _set_jit_overload_cacheo   s   rH   c                 C   s2   t | dddu r
d S t| d }|rt|S d S )N __disable_jit_function_caching__FT)r5   r<   r   r>   r?   )rC   rA   r
   r
   r   _try_get_jit_cached_functions   s   
rJ   c                 C   s    t |tjjs	J |jt| < d S r    )
isinstancetorchjitScriptFunctionr0   r<   )rC   r   r
   r
   r   _set_jit_function_cache}   s   rO   r"   )r&   r   weakreftypingr   rL   r   r*   r+   r-   _CCompilationUnitr>   r.   dicttype__annotations__r/   strr3   r8   r6   r;   WeakKeyDictionaryr<   r=   rE   rH   rJ   rO   r
   r
   r
   r   <module>   s,   






