
    ?i                        U d Z ddlZddlZddlmZ ddlZ G 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 Zd ZddZ ej                    Zej        ed<    ej                    Zej        ed<   d ZddZ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                   ,    e Zd ZdZddZd Zdef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                 @    |                      dddd          | _        d S )NPYTORCH_JITTz> Using PyTorch JITz> PyTorch JIT DISABLED)	parse_envenabledselfs    C/var/www/icac/venv/lib/python3.11/site-packages/torch/jit/_state.py__init__zEnabledProxy.__init__   s&    ~~4!68P
 
    c                 *   t           j                            |          }||S |                                dv rdS |                                dv rdS |dk    rt	          |           dS |dk    rt	          |           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values         r   r	   zEnabledProxy.parse_env   s    
t$$=N;;==0004[[]]2225D==,4d]]-   5HtHHHIIIr   c                     | j         S N)r
   r   s    r   __bool__zEnabledProxy.__bool__,   s
    |r   r   N)__name__
__module____qualname____doc__r   r	   boolr&    r   r   r   r      s_         

 
 
 

J J J $      r   r   r   c                      dt           _        d S )NF_enabledr
   r-   r   r   disabler1   3   s    Hr   c                      dt           _        d S )NTr/   r-   r   r   enabler3   7   s    Hr   _script_classes_name_to_pyclassc                 R    |t           | <   | t          |                                <   d S r%   )r4   r5   qualified_name)python_classscript_classs     r   _add_script_classr:   F   s)    $0OL!6B\0022333r   c                 z    t          | dd           }|t          |          } t                              |           S )N_jit_override_qualname)getattr_get_python_classr4   r   )r8   overrides     r   _get_script_classr@   K   s;    |%=tDDH(22|,,,r   c                 6    t                               |           S r%   )r5   r   r7   s    r   r>   r>   R   s    ///r   c                  j    t                                            t                                           d S r%   )r4   clearr5   r-   r   r   _clear_class_staterE   V   s,    r   _jit_caching_layer_jit_function_overload_cachingc                 X    t                               | d           }|rd |D             S d S )Nc                 B    g | ]}t                               |          S r-   )
_python_cufind_function).0	qual_names     r   
<listcomp>z1_try_get_jit_cached_overloads.<locals>.<listcomp>j   s&    PPP	
((33PPPr   )rG   r   )key
qual_namess     r   _try_get_jit_cached_overloadsrQ   g   s8    /33C>>J PPZPPPPtr   c                 .    d |D             t           | <   d S )Nc                     g | ]	}|j         
S r-   rB   )rL   fns     r   rN   z+_set_jit_overload_cache.<locals>.<listcomp>p   s    *T*T*T2+<*T*T*Tr   )rG   )rO   compiled_fnss     r   _set_jit_overload_cacherV   o   s!    *T*T|*T*T*T"3'''r   c                     t          | dd          du rd S t                              | d           }|rt                              |          S d S )N __disable_jit_function_caching__FT)r=   rF   r   rJ   rK   )rO   rM   s     r   _try_get_jit_cached_functionrY   s   sU    s6>>$FFt"&&sD11I ''	222tr   c                 f    t          |t          j        j                  sJ |j        t
          | <   d S r%   )
isinstancetorchjitScriptFunctionr7   rF   )rO   r#   s     r   _set_jit_function_cacher_   }   s1    eUY566666#2sr   r'   )r+   r   weakreftypingr   r\   r   r0   r1   r3   _CCompilationUnitrJ   r4   dicttype__annotations__r5   strr:   r@   r>   rE   WeakKeyDictionaryrF   rG   rQ   rV   rY   r_   r-   r   r   <module>ri      s     
			               > <>>       X%%''
 /1d3ic*+ 0 0 0)+ $sDI~& + + +C C C C
- - -0 0 0    1J0I0K0K G- K K K<UG<U<W<W  9 W W W  U U U U  3 3 3 3 3 3r   