
    J/PhA
                         d dl Z d dlmZ d dlmZ d dlmZmZm	Z	m
Z
  G d de          Z ed          Z G d d	e	j                  Z G d
 dej                  ZdS )    N)threadsafe_cached_property)TargetDescriptor)utilstyping
dispatchercpuc                   t    e Zd Zej        Zed             Zed             Ze	d             Z
e	d             ZdS )	CPUTargetc                 @    t          j        | j        | j                  S N)r   
CPUContexttyping_context_target_nameselfs    S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/core/registry.py_toplevel_target_contextz"CPUTarget._toplevel_target_context   s     ~d143DEEE    c                 (    t          j                    S r   )r   Contextr   s    r   _toplevel_typing_contextz"CPUTarget._toplevel_typing_context   s     ~r   c                     | j         S )z5
        The target context for CPU targets.
        )r   r   s    r   target_contextzCPUTarget.target_context       
 ,,r   c                     | j         S )z5
        The typing context for CPU targets.
        )r   r   s    r   r   zCPUTarget.typing_context    r   r   N)__name__
__module____qualname__r   CPUTargetOptionsoptionscached_propertyr   r   propertyr   r    r   r   r
   r
      s        "GF F _F     _  - - X- - - X- - -r   r
   r   c                       e Zd ZeZdS )CPUDispatcherN)r   r   r   
cpu_targettargetdescrr#   r   r   r%   r%   ,   s        KKKr   r%   c                   6     e Zd ZdZ fdZ fdZ fdZ xZS )DelayedRegistrya#  
    A unique dictionary but with deferred initialisation of the values.

    Attributes
    ----------
    ondemand:

        A dictionary of key -> value, where value is executed
        the first time it is is used.  It is used for part of a deferred
        initialization strategy.
    c                 
   t          j                    | _        |                    dd           | _        |                    dd           | _        | j        p| j        | _         t          t          |           j	        |i | d S )Nkey_type
value_type)
r   
UniqueDictondemandpopr+   r,   _type_checksuperr)   __init__)r   argskws	__class__s      r   r2   zDelayedRegistry.__init__<   sv    (**
D11'',55=;DO-ot$$-t;s;;;;;r   c                     || j         v r  | j         |                     | |<   | j         |= t          t          |                               |          S r   )r.   r1   r)   __getitem__)r   itemr5   s     r   r7   zDelayedRegistry.__getitem__C   sP    4=  ,t,..DJd#_d++77===r   c                     | j         r3d }| j         ||| j                   | j         ||| j                   t          t          |                               ||          S )Nc                     t          |t                    r|| j        v sJ | |f            d S t          | |          sJ | |f            d S r   )
isinstancetype__mro__)xty_xs     r   checkz*DelayedRegistry.__setitem__.<locals>.checkK   sa    dD)) :19,,,q$i,,,,,%a..99D	99999r   )r0   r+   r,   r1   r)   __setitem__)r   keyvaluer@   r5   s       r   rA   zDelayedRegistry.__setitem__I   sw     		.: : :
 }(c4=)))*eT_---_d++77UCCCr   )r   r   r   __doc__r2   r7   rA   __classcell__)r5   s   @r   r)   r)   0   s}        
 
< < < < <> > > > >D D D D D D D D Dr   r)   )
contextlibnumba.core.utilsr   r!   numba.core.descriptorsr   
numba.corer   r   r   r   r
   r&   
Dispatcherr%   r-   r)   r#   r   r   <module>rK      s       J J J J J J 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5- - - - -  - - -: Yu
    J)   $D $D $D $D $De& $D $D $D $D $Dr   