Ë
    èÿæi€  ã                   ó´   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	Z	d dl
mZmZ d dlmZ ej                  d„ «       Z G d„ dee	j"                  «      Zy)é    N)ÚStringIO)ÚSerialMixinÚcreate_temp_module)Ú
dispatcherc              #   óÄ   K  — 	 t        «       }t        j                  |«      }| j                  |«       |–— | j	                  |«       y # | j	                  «       w xY w­w©N)r   ÚloggingÚStreamHandlerÚ
addHandlerÚremoveHandler)ÚlÚbufferÚhandlers      úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_jit_module.pyÚcaptured_logsr      sK   è ø€ ð!Ü“ˆÜ×'Ñ'¨Ó/ˆØ	�‰�WÔØŠà	�‰˜Õ øˆ�‰˜Õ üs   ‚A „4A
 ¸A Á
AÁA c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestJitModulezí
from numba import jit_module

def inc(x):
    return x + 1

def add(x, y):
    return x + y

def inc_add(x):
    y = inc(x)
    return add(x, y)

import numpy as np
mean = np.mean

class Foo(object):
    pass

jit_module({jit_options})
c                 óp  — t        t        j                  «      }t        t        j                  «      }t        | j                  «      5 }t        j                  j                  |j                  «      }| j                  |t        j                  d   «       | j                  t        j                  dd  |«       | j                  |j                  t        j                  v «       d d d «       | j                  t        j                  |«       | j                  t        j                  |«       y # 1 sw Y   ŒJxY w)Nr   é   )ÚlistÚsysÚpathÚdictÚmodulesr   Úsource_linesÚosÚdirnameÚ__file__ÚassertEqualÚ
assertTrueÚ__name__)ÚselfÚsys_path_originalÚsys_modules_originalÚtest_moduleÚtemp_module_dirs        r   Útest_create_temp_jitted_modulez,TestJitModule.test_create_temp_jitted_module1   sÏ   € Ü ¤§¡›NÐÜ#¤C§K¡KÓ0ÐÜ × 1Ñ 1Ô2°kÜ Ÿg™gŸo™o¨k×.BÑ.BÓCˆOØ×Ñ˜_¬c¯h©h°q©kÔ:Ø×ÑœSŸX™X a b˜\Ð+<Ô=Ø�O‰O˜K×0Ñ0´C·K±KÐ?Ô@÷	 3ð 	×ÑœŸ™Ð#4Ô5Ø×ÑœŸ™Ð&:Õ;÷ 3Ð2ús   ÁBD,Ä,D5c                 ó`  — 	 t        t        j                  «      }t        t        j                  «      }t        | j                  «      5  t        d«      ‚# 1 sw Y   y xY w# t        $ rC | j                  t        j                  «       | j                  t        j                  «       Y y w xY w)NzSomething went wrong!)	r   r   r   r   r   r   r   Ú
ValueErrorr   )r"   r#   r$   s      r   Ú-test_create_temp_jitted_module_with_exceptionz;TestJitModule.test_create_temp_jitted_module_with_exception=   s‚   € ð	@Ü $¤S§X¡X£ÐÜ#'¬¯©Ó#4Ð Ü# D×$5Ñ$5Õ6Ü Ð!8Ó9Ð9÷ 7Ð6ûäò 	@à×ÑœSŸX™XÐ'8Ô9Ø×ÑœSŸ[™[Ð*>Ö?ð	@ús+   ‚AA! Á	AÁAÁA! ÁA! Á!A	B-Â,B-c                 óp  — t        | j                  «      5 }| j                  |j                  t        j
                  «       | j                  |j                  t        j
                  «       | j                  |j                  t        j
                  «       | j                  |j                  t        j                  u «       | j                  t        j                  |j                  «      «       d\  }}| j                  |j                  |«      |j                  j                  |«      «       | j                  |j                  ||«      |j                  j                  ||«      «       | j                  |j                  |«      |j                  j                  |«      «       d d d «       y # 1 sw Y   y xY w)N)g333333û?gffffff@)r   r   ÚassertIsInstanceÚincr   Ú
DispatcherÚaddÚinc_addr    ÚmeanÚnpÚinspectÚisclassÚFoor   Úpy_func)r"   r%   ÚxÚys       r   Útest_jit_modulezTestJitModule.test_jit_moduleH   s6  € Ü × 1Ñ 1Ô2°kØ×!Ñ! +§/¡/´:×3HÑ3HÔIØ×!Ñ! +§/¡/´:×3HÑ3HÔIØ×!Ñ! +×"5Ñ"5´z×7LÑ7LÔMØ�O‰O˜K×,Ñ,´·±Ð7Ô8Ø�O‰OœGŸO™O¨K¯O©OÓ<Ô=ð ‰DˆAˆqØ×Ñ˜[Ÿ_™_¨QÓ/Ø(Ÿ_™_×4Ñ4°QÓ7ô9à×Ñ˜[Ÿ_™_¨Q°Ó2Ø(Ÿ_™_×4Ñ4°Q¸Ó:ô<à×Ñ˜[×0Ñ0°Ó3Ø(×0Ñ0×8Ñ8¸Ó;ô=÷ 3×2Ñ2ús   –FF,Æ,F5c                 ó´   — dddddœ}t        | j                  fi |¤Ž5 }| j                  |j                  j                  |«       d d d «       y # 1 sw Y   y xY w)NTFÚnumpy)ÚnopythonÚnogilÚerror_modelÚboundscheck)r   r   r   r-   Útargetoptions)r"   Újit_optionsr%   s      r   Útest_jit_module_jit_optionsz)TestJitModule.test_jit_module_jit_optionsY   s\   € Ø#'Ø %Ø&-Ø&+ñˆô
   × 1Ñ 1ñ /Ø"-ò/Ø2=Ø×Ñ˜[Ÿ_™_×:Ñ:¸KÔH÷/÷ /ñ /ús   ž'AÁAc           	      óú   — d}ddddœ}t        dd|i|¤Ž5 }| j                  |j                  j                  |«       | j                  |j                  j                  ddd ddœ«       d d d «       y # 1 sw Y   y xY w)	Nz�
from numba import jit, jit_module

@jit(nogil=True, forceobj=True)
def inc(x):
    return x + 1

def add(x, y):
    return x + y

jit_module({jit_options})
Tr;   F)r<   r>   r?   r   )r=   Úforceobjr?   r<   © )r   r   r/   r@   r-   )r"   r   rA   r%   s       r   Ú$test_jit_module_jit_options_overridez2TestJitModule.test_jit_module_jit_options_overridec   sŽ   € ðˆð $(Ø&-Ø&+ñˆô  ñ /¨\ð /Ø"-ò/Ø2=Ø×Ñ˜[Ÿ_™_×:Ñ:¸KÔHð ×Ñ˜[Ÿ_™_×:Ñ:Ø'+¸Ø-1¸uñFôG÷/÷ /ñ /ús   –AA1Á1A:c                 óÎ  ‡— t        j                  d«      }|j                  t         j                  «       dddœ}t	        |«      5 Št        | j                  fi |¤Ž5 }‰j                  «       Šddj                  |j                  «      dj                  |«      g}| j                  t        ˆfd„|D «       «      «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)	Núnumba.core.decoratorsTr;   )r<   r>   zAuto decorating functionzfrom module {}zwith jit and options: {}c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   rE   )Ú.0ÚiÚlogss     €r   Ú	<genexpr>z?TestJitModule.test_jit_module_logging_output.<locals>.<genexpr>Š   s   øè ø€ Ð#@±x°! A¨¤I±xùs   ƒ)r	   Ú	getLoggerÚsetLevelÚDEBUGr   r   r   ÚgetvalueÚformatr!   r    Úall)r"   ÚloggerrA   r%   ÚexpectedrL   s        @r   Útest_jit_module_logging_outputz,TestJitModule.test_jit_module_logging_output}   sÊ   ø€ Ü×"Ñ"Ð#:Ó;ˆØ�‰œŸ™Ô&Ø#'Ø&-ñˆô ˜6Ô" dÜ# D×$5Ñ$5ñ 3Ø&1ò3Ø6AØ—}‘}“�Ø6Ø,×3Ñ3°K×4HÑ4HÓIØ6×=Ñ=¸kÓJðL�ð —‘¤Ó#@±xÓ#@Ó @ÔA÷3÷ #Ð"÷3ð 3ú÷ #Ð"ús%   ÁCÁA!CÂ>CÃC	ÃCÃC$c                 ó@  — t        j                  d«      }|j                  t         j                  «       t	        |«      5 }t        | j                  «      5  | j                  |j                  «       d«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrH   Ú )	r	   rN   rO   ÚINFOr   r   r   r   rQ   )r"   rT   rL   s      r   Útest_jit_module_logging_levelz+TestJitModule.test_jit_module_logging_levelŒ   sn   € Ü×"Ñ"Ð#:Ó;ˆà�‰œŸ™Ô%Ü˜6Ô" dÜ# D×$5Ñ$5Õ6Ø× Ñ  §¡£°"Ô5÷ 7÷ #Ð"ß6Ð6ú÷ #Ð"ús$   Á BÁ!BÁ7BÂB	ÂBÂBN)r!   Ú
__module__Ú__qualname__r   r'   r*   r9   rB   rF   rV   rZ   rE   ó    r   r   r      s0   „ ð€Lò,
<ò	@ò=ò"IòGò4Bó6r]   r   )r   r   r3   Ú
contextlibr;   r2   r	   Úior   ÚunittestÚnumba.tests.supportr   r   Ú
numba.corer   Úcontextmanagerr   ÚTestCaser   rE   r]   r   Ú<module>re      sS   ðÛ 	Û 
Û Û Û Û Ý ã ß ?Ý !ð ×Ññ!ó ð!ôy6�K ×!2Ñ!2õ y6r]   