
    xKgA
                         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y)    N)threadsafe_cached_property)TargetDescriptor)utilstyping
dispatchercpuc                   d    e Zd Zej                  Zed        Zed        Ze	d        Z
e	d        Zy)	CPUTargetc                 V    t        j                  | j                  | j                        S N)r   
CPUContexttyping_context_target_nameselfs    W/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/core/registry.py_toplevel_target_contextz"CPUTarget._toplevel_target_context   s!     ~~d1143D3D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     - - - -r   r
   r   c                       e Zd ZeZy)CPUDispatcherN)r   r   r   
cpu_targettargetdescrr#   r   r   r%   r%   ,   s    Kr   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                         | _        |j                  dd       | _        |j                  dd       | _        | j                  xs | j
                  | _        t        t        | &  |i | y )Nkey_type
value_type)
r   
UniqueDictondemandpopr+   r,   _type_checksuperr)   __init__)r   argskws	__class__s      r   r2   zDelayedRegistry.__init__<   s`    ((*
D1'',5==;DOO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   sD    4== ,t,.DJd#_d7==r   c                     | j                   rAd }| j                   ||| j                         | j                   ||| j                         t        t        |   ||      S )Nc                 ~    t        |t              r|| j                  v s	J | |f       y t        | |      s	J | |f       y r   )
isinstancetype__mro__)xty_xs     r   checkz*DelayedRegistry.__setitem__.<locals>.checkK   s@    dD)199,7q$i7,%a.9D	9.r   )r0   r+   r,   r1   r)   __setitem__)r   keyvaluer@   r5   s       r   rA   zDelayedRegistry.__setitem__I   sW    :
 }}(c4==)*eT__-_d7UCCr   )r   r   r   __doc__r2   r7   rA   __classcell__)r5   s   @r   r)   r)   0   s    
<>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      sS     J 3 5 5-  -: u
J)) $De&& $Dr   