
    J/Phg                     T    d dl Z d dlZd dlmZ  G d dej                  Zd Zd ZdS )    N)_dynfuncc                   b    e Zd ZdZdZ ej                    Zed             Z	d Z
d Zd Zd ZdS )	Environmentz~Stores globals and constant pyobjects for runtime.

    It is often needed to convert b/w nopython objects and pyobjects.
    )env_name__weakref__c                     	 | j         |j                 S # t          $ r=  | |                                          }|j        |_        || j         |j        <   |cY S w xY wN)_memor   KeyErrorlookup_globals)clsfndescinsts      V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/core/environment.pyfrom_fndesczEnvironment.from_fndesc   sl    	9V_-- 	 	 	3v,,..//D"ODM)-CIfo&KKK		s    AAAc                     d| j         v}| S N__name__)globals)selfis_dyns     r   	can_cachezEnvironment.can_cache   s    4</z    c                 ^    t           | j                            d          | j        | j        ffS r   )_rebuild_envr   getconstsr   r   s    r   
__reduce__zEnvironment.__reduce__    s1    LZ((KM
 
 	
r   c                     d S r	    r   s    r   __del__zEnvironment.__del__'   s    r   c                     d| j         dS )Nz<Environment z >r   r   s    r   __repr__zEnvironment.__repr__*   s    2t}2222r   N)r   
__module____qualname____doc__	__slots__weakrefWeakValueDictionaryr
   classmethodr   r   r   r"   r%   r!   r   r   r   r      s          ,I (G'))E  [  
 
 
  3 3 3 3 3r   r   c                     t          |          }||S t          j        |           }t          |j                  }||j        d d <   ||_        |t          j        |<   |S r	   )lookup_environment	importlibimport_moduler   __dict__r   r   r
   )modnamer   r   envmods        r   r   r   .   s`    
X
&
&C



!'
*
*C
cl
#
#CCJqqqMCL"%KhJr   c                 @    t           j                            |           S )zPReturns the Environment object for the given name;
    or None if not found
    )r   r
   r   r$   s    r   r.   r.   <   s       ***r   )r*   r/   numbar   r   r   r.   r!   r   r   <module>r7      s              $3 $3 $3 $3 $3(& $3 $3 $3N  + + + + +r   