
    sh                         S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	r	S SK
JrJr  S SKJr  \R                  S 5       r " S S\\	R"                  5      rg)    N)StringIO)SerialMixincreate_temp_module)
dispatcherc              #      #     [        5       n[        R                  " U5      nU R                  U5        Uv   U R	                  U5        g ! U R	                  W5        f = f7fN)r   loggingStreamHandler
addHandlerremoveHandler)lbufferhandlers      o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_jit_module.pycaptured_logsr      sJ     !''/	W	  s   A!5A A!AA!c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)TestJitModule   z
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                 |   [        [        R                  5      n[        [        R                  5      n[        U R                  5       n[        R                  R                  UR                  5      nU R                  U[        R                  S   5        U R                  [        R                  SS  U5        U R                  UR                  [        R                  ;   5        S S S 5        U R                  [        R                  U5        U R                  [        R                  U5        g ! , (       d  f       NO= f)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_module,TestJitModule.test_create_temp_jitted_module1   s     N#CKK0 1 12k ggook.B.BCO_chhqk:SXXab\+<=OOK00CKK?@	 3 	#45&:; 32s   BD--
D;c                 l    [        [        R                  5      n[        [        R                  5      n[        U R                  5         [        S5      e! , (       d  f       g = f! [         aC    U R                  [        R                  W5        U R                  [        R                  W5         g f = f)NzSomething went wrong!)	r   r   r   r   r   r   r   
ValueErrorr    )r#   r$   r%   s      r   -test_create_temp_jitted_module_with_exception;TestJitModule.test_create_temp_jitted_module_with_exception=   s    	@ $SXX#'#4 #D$5$56 !899 76 	@SXX'89S[[*>?	@s+   AA& 	A
A#A& #A& &A
B32B3c                 v   [        U R                  5       nU R                  UR                  [        R
                  5        U R                  UR                  [        R
                  5        U R                  UR                  [        R
                  5        U R                  UR                  [        R                  L 5        U R                  [        R                  " UR                  5      5        Su  p#U R                  UR                  U5      UR                  R                  U5      5        U R                  UR                  X#5      UR                  R                  X#5      5        U R                  UR                  U5      UR                  R                  U5      5        S S S 5        g ! , (       d  f       g = f)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_moduleTestJitModule.test_jit_moduleH   s0    1 12k!!+//:3H3HI!!+//:3H3HI!!+"5"5z7L7LMOOK,,78OOGOOKOO<= DA[__Q/(__44Q79[__Q2(__44Q:<[003(0088;= 322s   FF**
F8c                     SSSSS.n[        U R                  40 UD6 nU R                  UR                  R                  U5        S S S 5        g ! , (       d  f       g = f)NTFnumpy)nopythonnogilerror_modelboundscheck)r   r   r    r0   targetoptions)r#   jit_optionsr&   s      r   test_jit_module_jit_options)TestJitModule.test_jit_module_jit_optionsY   s\    #' %&-&+
   1 1 /"-/2=[__::KH/ / /s   'A
Ac           	         SnSSSS.n[        SSU0UD6 nU R                  UR                  R                  U5        U R                  UR                  R                  SSS SS.5        S S S 5        g ! , (       d  f       g = f)	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@   rB   rC   r   )rA   forceobjrC   r@    )r   r    r2   rD   r0   )r#   r   rE   r&   s       r   $test_jit_module_jit_options_override2TestJitModule.test_jit_module_jit_options_overridec   s     $(&-&+   /\ /"-/2=[__::KH [__::'+-1uFG/ / /s   AA11
A?c                   ^ [         R                  " S5      nUR                  [         R                  5        SSS.n[	        U5       m[        U R                  40 UD6 nTR                  5       mSSR                  UR                  5      SR                  U5      /nU R                  [        U4S jU 5       5      5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nnumba.core.decoratorsTr?   )r@   rB   zAuto decorating functionzfrom module {}zwith jit and options: {}c              3   ,   >#    U  H	  oT;   v   M     g 7fr   rJ   ).0ilogss     r   	<genexpr>?TestJitModule.test_jit_module_logging_output.<locals>.<genexpr>   s     #@x!Ixs   )r	   	getLoggersetLevelDEBUGr   r   r   getvalueformatr"   r!   all)r#   loggerrE   r&   expectedrR   s        @r   test_jit_module_logging_output,TestJitModule.test_jit_module_logging_output}   s    ""#:;&#'&- 6"d#D$5$5 3&136A}}6,33K4H4HI6==kJL #@x#@ @A3 #"3 3 #"s%   C"A"C C"
C	C""
C0c                 V   [         R                  " S5      nUR                  [         R                  5        [	        U5       n[        U R                  5         U R                  UR                  5       S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrN    )	r	   rU   rV   INFOr   r   r   r    rX   )r#   r[   rR   s      r   test_jit_module_logging_level+TestJitModule.test_jit_module_logging_level   sn    ""#:;%6"d#D$5$56  "5 7 #"66 #"s$   B!B	8B	
B	B
B(rJ   N)r"   
__module____qualname____firstlineno__r   r(   r,   r<   rF   rK   r]   rb   __static_attributes__rJ       r   r   r      s0    L,
<	@="IG4B6rh   r   )r   r   r6   
contextlibr?   r5   r	   ior   unittestnumba.tests.supportr   r   
numba.corer   contextmanagerr   TestCaser   rJ   rh   r   <module>rp      sS    	 
       ? ! ! !y6K!2!2 y6rh   