Ë
    èÿæi¡!  ã                   ó  — d Z ddlZddlZddlZddlZd„ Z e«        ddlmZ ddlm	Z	  e«       d   Z
 e	e
«      Z[[	ddlmZ dd	lmZmZ dd
lmZmZmZmZmZmZmZmZ ddl­ ddlmc mZ ddl­ ddlmZmZmZm Z m!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1Z/ddl1m2Z3 ddl1m4Z4 ddl5Z/ddl6Z/d„ Z7djq                  «       ejr                  z   ejr                  z   Z9dZ:dZ;d„ Z<d„ Z= e<«        ddl>Z>	  e=«       e_?        y)z5
Expose top-level symbols that are safe for import *
é    Nc                  óz  — d„ } t         j                  dd }|dk  rd|d   › d|d   › d�}t        |«      ‚ddl} | |«      }|d	k  rd
|d   › d|d   › d�}t        |«      ‚|dkD  rd|d   › d|d   › d�}t        |«      ‚	 ddl} | |«      }|dk  rd|j
                  › d�}t        |«      ‚y# t        $ r Y yw xY w)aÇ  
    Make sure the Python, NumPy and SciPy present are supported versions.
    This has to be done _before_ importing anything from Numba such that
    incompatible versions can be reported to the user. If this occurs _after_
    importing things from Numba and there's an issue in e.g. a Numba c-ext, a
    SystemError might have occurred which prevents reporting the likely cause of
    the problem (incompatible versions of critical dependencies).
    c                 ól   — t        t        t        | j                  j	                  d«      d d «      «      S )NÚ.é   )ÚtupleÚmapÚintÚ__version__Úsplit)Úmods    úc/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/__init__.pyÚextract_versionz._ensure_critical_deps.<locals>.extract_version   s*   € Ü”Sœ˜cŸo™o×3Ñ3°CÓ8¸¸!Ð<Ó=Ó>Ð>ó    Nr   )é   é
   z/Numba needs Python 3.10 or greater. Got Python r   r   é   )r   é   z-Numba needs NumPy 1.22 or greater. Got NumPy )r   é   z)Numba needs NumPy 2.4 or less. Got NumPy )r   r   z7Numba requires SciPy version 1.0 or greater. Got SciPy )ÚsysÚversion_infoÚImportErrorÚnumpyÚscipyr
   )r   Ú	PYVERSIONÚmsgÚnpÚnumpy_versionr   Ú
sp_versions          r   Ú_ensure_critical_depsr      s  € ò?ô × Ñ   !Ð$€Ià�7ÒØ@Ø˜A‘,�˜q ¨1¡ ¨að1ˆä˜#ÓÐãÙ# BÓ'€Mà�wÒØ>Ø Ñ"Ð# 1 ]°1Ñ%5Ð$6°að9ˆä˜#ÓÐà�vÒØ:Ø Ñ"Ð# 1 ]°1Ñ%5Ð$6°að9ˆä˜#ÓÐð	#Ûñ % UÓ+ˆ
Ø˜ÒØLØ×'Ñ'Ð(¨ð+ˆCä˜cÓ"Ð"ð øô	 ò Ùðús   ÂB. Â.	B:Â9B:r   )Úget_versions)Úgenerate_version_infoÚversion)Úconfig)ÚtypesÚerrors)ÚtypeofÚprangeÚpndindexÚgdbÚgdb_breakpointÚgdb_initÚ	literallyÚliteral_unroll)Ú*)ÚcfuncÚjitÚnjitÚstencilÚ
jit_module)Ú	vectorizeÚguvectorizeÚthreading_layerÚget_num_threadsÚset_num_threadsÚset_parallel_chunksizeÚget_parallel_chunksizeÚget_thread_id)ÚcarrayÚfarrayÚ
from_dtype)Úexperimental)Úobjmode_context)Úparallel_chunksizec                 ó4   — ddl m}  |j                  | fi |¤ŽS )Nr   )Ú	_runtests)Únumba.testingrC   Úmain)ÚargvÚkwdsÚruntestss      r   ÚtestrI   w   s   € õ 4Øˆ8�=‰=˜Ñ& Ñ&Ð&r   aK  
    cfunc
    from_dtype
    guvectorize
    jit
    experimental
    njit
    stencil
    jit_module
    typeof
    prange
    gdb
    gdb_breakpoint
    gdb_init
    vectorize
    objmode
    literal_unroll
    get_num_threads
    set_num_threads
    set_parallel_chunksize
    get_parallel_chunksize
    parallel_chunksize
    )r   é/   r   )é   r   r   c                  óž  — ddl } ddl}t        j                  d«      }|j	                  |j
                  «      }|rRt        t        t        |j                  «       «      «      }|t        k  r4dt        |j
                  fz   z  }t        |«      ‚ | j                  d«       ddlm}m} |t         k  rdt         |z   z  }t        |«      ‚ |«        y)z,
    Make sure llvmlite is operational.
    r   Nz(\d+)\.(\d+).(\d+)zfNumba requires at least version %d.%d.%d of llvmlite.
Installed version is %s.
Please update llvmlite.z'llvmlite version format not recognized!)Úllvm_version_infoÚcheck_jit_executionzNumba requires at least version %d.%d.%d of LLVM.
Installed llvmlite is built against version %d.%d.%d.
Please update llvmlite.)ÚwarningsÚllvmliteÚreÚcompileÚmatchr
   r   r   r	   ÚgroupsÚ_min_llvmlite_versionr   ÚwarnÚllvmlite.bindingrM   rN   Ú_min_llvm_version)rO   rP   ÚregexÚmÚverr   rM   rN   s           r   Ú_ensure_llvmr\   ™   sÆ   € ó Ûô �J‰JÐ,Ó-€EØ�‰�H×(Ñ(Ó)€AÙÜ”Cœ˜QŸX™X›ZÓ(Ó)ˆØÔ&Ò&ð-ô *¨X×-AÑ-AÐ,CÑCñEˆCô ˜cÓ"Ð"ð 	ˆ�‰Ð?Ô@çGàÔ,Ò,ð)ô "Ð$5Ñ5ñ7ˆô ˜#ÓÐáÕr   c                  ón  — t         j                  �s	 t        j                  j	                  d«      r t
        j                  j                  d«       nt        j                  j	                  d«      r t
        j                  j                  d«       n@t        j                  j	                  d«      r t
        j                  j                  d«       ny	  t        t
        j                  j                  d«      «       sy	 t
        j                  j                  dd«       yy# t        $ rA t        j                  «       d	k(  r't         j                  rd
} t        j                  | «       Y yw xY w# t         $ r? t        j                  «       d	k(  r%t         j                  rt        j                  d«       Y yw xY w)zU
    Tries to enable SVML if configuration permits use and the library is found.
    Úlinuxz
libsvml.soÚdarwinzlibsvml.dylibÚwinÚsvml_dispmdFÚhas_svmlÚx86_64z>SVML was found but llvmlite >= 0.23.2 is needed to support it.ÚSVMLz-vector-library=SVMLTz'SVML was not found/could not be loaded.)r#   ÚDISABLE_INTEL_SVMLr   ÚplatformÚ
startswithrP   ÚbindingÚload_library_permanentlyÚgetattrÚtargetsÚAttributeErrorÚmachineÚDEBUGrO   rV   Ú
set_optionÚ	Exception)r   s    r   Ú_try_enable_svmlrq   ¼   sN  € ô ×$Ó$ð'	IÜ�|‰|×&Ñ& wÔ/Ü× Ñ ×9Ñ9¸,ÕGÜ—‘×(Ñ(¨Ô2Ü× Ñ ×9Ñ9¸/ÕJÜ—‘×(Ñ(¨Ô/Ü× Ñ ×9Ñ9¸-ÕHàðØD”wœx×/Ñ/×7Ñ7¸ÓDÔFð !ð Gô ×Ñ×'Ñ'¨Ð0FÔGØð øô! "ò Ü×#Ñ#Ó%¨Ò1´f·l²lð3�Cä—M‘M #Ô&ñ ðûô ò 	IÜ×ÑÓ! XÒ-´&·,²,Ü—‘ÐGÔHøØð	Iús8   “B=E, Ã)D Ã<!E, ÄAE)Å&E, Å(E)Å)E, Å,AF4Æ3F4)@Ú__doc__rf   rQ   r   rO   r   Ú_versionr    Únumba.misc.init_utilsr!   r
   r   Ú
numba.corer#   r$   r%   Únumba.misc.specialr&   r'   r(   r)   r*   r+   r,   r-   Únumba.core.errorsÚnumba.core.typesÚcoreÚnumba.core.decoratorsr/   r0   r1   r2   r3   Únumba.np.ufuncr4   r5   r6   r7   r8   r9   r:   r;   Únumba.np.numpy_supportr<   r=   r>   Únumbar?   Únumba.core.withcontextsr@   ÚobjmoderA   Únumba.core.target_extensionÚnumba.typedrI   r   Ú__all__rU   rX   r\   rq   rP   Ú
USING_SVML© r   r   Ú<module>r…      s  ðñó Û 	Û 
Û ò
+#ñ\ Ô õ
 #Ý 7á‹n˜YÑ'€Ù$ [Ó1€ØØõ ß $÷÷ ó ô  ÷ !Ð  ô ÷/õ /÷+÷ +ó +÷ >Ñ =õ ó Ý >Ý 6ó #ó ò'ð÷, 	‰‹�%—-‘-ñ- ð, #)§.¡.ñ-1€ð2 #Ð ØÐ ò òF-ñ^ „ó ðñ %Ó&€Õ r   