o
    Zh                     @   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 Z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 Zdd Zdd Zdd Ze Zejed< e Zejed< dd Zdd Zdd Z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                   @   s*   e Zd ZdZd
ddZdd Z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 )NZPYTORCH_JITTz> Using PyTorch JITz> PyTorch JIT DISABLED)	parse_envenabledself r	   ?/var/www/auris/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falseFZ1vZ0vzUnknown setting of z. Try using 0 or 1.)osenvirongetlowerprint
ValueError)r   namedefaultZtrue_messageZ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   r   r	   r	   r	   r
   r      s
    
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_classZscript_classr	   r	   r
   _add_script_classF   s   r+   c                 C   s(   t | dd }|d urt|} t| d S )NZ_jit_override_qualname)getattr_get_python_classr'   r   )r*   overrider	   r	   r
   _get_script_classK   s   r/   c                 C   s   t | d S r   )r(   r   r)   r	   r	   r
   r-   R   s   r-   c                   C   s   t   t  d S r   )r'   clearr(   r	   r	   r	   r
   _clear_class_stateV   s   r2   _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>)r4   r   )keyZ
qual_namesr	   r	   r
   _try_get_jit_cached_overloadsg   s   r;   c                 C   s   dd |D t | < d S )Nc                 S   s   g | ]}|j qS r	   r0   )r7   fnr	   r	   r
   r9   p   s    z+_set_jit_overload_cache.<locals>.<listcomp>)r4   )r:   Zcompiled_fnsr	   r	   r
   _set_jit_overload_cacheo   s   r=   c                 C   s2   t | dddu r
d S t| d }|rt|S d S )NZ __disable_jit_function_caching__FT)r,   r3   r   r5   r6   )r:   r8   r	   r	   r
   _try_get_jit_cached_functions   s   
r>   c                 C   s    t |tjjs	J |jt| < d S r   )
isinstancetorchZjitZScriptFunctionr)   r3   )r:   r   r	   r	   r
   _set_jit_function_cache}   s   rA   )r    r   weakreftypingr   r@   r   r#   r$   r&   Z_CZCompilationUnitr5   r'   dicttype__annotations__r(   strr+   r/   r-   r2   WeakKeyDictionaryr3   r4   r;   r=   r>   rA   r	   r	   r	   r
   <module>   s,   

