§
    1@Äj•
  ã                   ó¼   — 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    úDC:\Projects\Historical\venv\Lib\site-packages\numba/core/registry.pyÚ_toplevel_target_contextz"CPUTarget._toplevel_target_context   s   € õ Œ~˜dÔ1°4Ô3DÑ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   € € € € € Ø€K€K€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        ¦   «         | _        |                     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ˆŒØœ=Ð;¨D¬OˆÔØ-��o˜tÑ$Ô$Ô-¨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   € Ý˜d¥DÑ)Ô)ð :Ø 1¤9Ð,Ð,Ð,¨q°$¨iÑ,Ô,Ð,Ð,Ð,å% a¨Ñ.Ô.Ð9Ð9°°D°	Ñ9Ô9Ð.Ð9Ð9r   )r0   r+   r,   r1   r)   Ú__setitem__)r   ÚkeyÚvaluer@   r5   s       €r   rA   zDelayedRegistry.__setitem__I   sw   ø€ ØÔð 		.ð:ð :ð :ð
 Œ}Ð(Ø��c˜4œ=Ñ)Ô)Ð)ØŒÐ*Ø��e˜Tœ_Ñ-Ô-Ð-Ý•_ 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ð-ð -ð -ð -ð -Ð ñ -ô -ð -ð: ˆY�uÑÔ€
ðð ð ð ð �JÔ)ñ ô ð ð$Dð $Dð $Dð $Dð $D�eÔ&ñ $Dô $Dð $Dð $Dð $Dr   