a
    h                     @   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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
    N)returnc                 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.9/site-packages/torch/jit/_state.py__init__   s    zEnabledProxy.__init__c                 C   st   t j|}|d u r|S | dv r(dS | dv r8dS |dkrLt| dS |dkr`t| dS td| dd S )	N>   trueyes1T>   nofalse0FZ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__)__name__
__module____qualname____doc__r   r   r   r	   r	   r	   r
   r      s   r   c                   C   s
   dt _d S )NF_enabledr   r	   r	   r	   r
   disable3   s    r#   c                   C   s
   dt _d S )NTr!   r	   r	   r	   r
   enable7   s    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    r0   _jit_caching_layer_jit_function_overload_cachingc                 C   s&   t | d }|rdd |D S d S d S )Nc                 S   s   g | ]}t |qS r	   )
_python_cufind_function).0	qual_namer	   r	   r
   
<listcomp>j       z1_try_get_jit_cached_overloads.<locals>.<listcomp>)r2   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	   r.   )r5   fnr	   r	   r
   r7   p   r8   z+_set_jit_overload_cache.<locals>.<listcomp>)r2   )r9   Zcompiled_fnsr	   r	   r
   _set_jit_overload_cacheo   s    r<   c                 C   s6   t | dddu rd S t| d }|r.t|S d S d S )NZ __disable_jit_function_caching__FT)r*   r1   r   r3   r4   )r9   r6   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'   r1   )r9   r   r	   r	   r
   _set_jit_function_cache}   s    r@   )r    r   weakreftypingr   r?   r   r"   r#   r$   Z_CZCompilationUnitr3   r%   dicttype__annotations__r&   strr)   r-   r+   r0   WeakKeyDictionaryr1   r2   r:   r<   r=   r@   r	   r	   r	   r
   <module>   s*   

