
    xKg                         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      _/home/alanp/www/video.onchill/myenv/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#CKK0 1 12k ggook.B.BCO_chhqk:SXXab\+<=OOK00CKK?@	 3 	#45&:; 32s   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    	@ $SXX#'#4 #D$5$56 !899 76 	@SXX'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2k!!+//:3H3HI!!+//:3H3HI!!+"5"5z7L7LMOOK,,78OOGOOKOO<= DAq[__Q/(__44Q79[__Q2(__44Q:<[003(0088;= 322s   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 [__::'+-1u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Ixs   )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36A}}6,33K4H4H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6K!2!2 y6r]   