§
    2@Äj  ã                   ó®   — 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dS )é    N)ÚStringIO)ÚSerialMixinÚcreate_temp_module)Ú
dispatcherc              #   óà   K  — 	 t          ¦   «         }t          j        |¦  «        }|                      |¦  «         |V — |                      |¦  «         d S # |                      |¦  «         w xY w©N)r   ÚloggingÚStreamHandlerÚ
addHandlerÚremoveHandler)ÚlÚbufferÚhandlers      úLC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_jit_module.pyÚcaptured_logsr      so   è è € ð!Ý‘”ˆÝÔ'¨Ñ/Ô/ˆØ	�Š�WÑÔÐØˆˆˆà	�Š˜Ñ Ô Ð Ð Ð øˆ�Š˜Ñ Ô Ð Ð øøøs   „;A ÁA-c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
Ú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                 ór  — t          t          j        ¦  «        }t          t          j        ¦  «        }t          | j        ¦  «        5 }t          j                             |j	        ¦  «        }|  
                    |t          j        d         ¦  «         |  
                    t          j        dd …         |¦  «         |                      |j        t          j        v ¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    t          j        |¦  «         |  
                    t          j        |¦  «         d S )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œNÐÝ#¥C¤KÑ0Ô0ÐÝ Ô 1Ñ2Ô2ð 	A°kÝ œgŸošo¨kÔ.BÑCÔCˆOØ×Ò˜_­c¬h°q¬kÑ:Ô:Ð:Ø×Ò�SœX a b bœ\Ð+<Ñ=Ô=Ð=Ø�OŠO˜KÔ0µC´KÐ?Ñ@Ô@Ð@ð		Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Að 	×Ò�œÐ#4Ñ5Ô5Ð5Ø×Ò�œÐ&:Ñ;Ô;Ð;Ð;Ð;s   ÁBC,Ã,C0Ã3C0c                 ól  — 	 t          t          j        ¦  «        }t          t          j        ¦  «        }t          | j        ¦  «        5  t          d¦  «        ‚# 1 swxY w Y   d S # t          $ rD |                      t          j        |¦  «         |                      t          j        |¦  «         Y d S 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¡¤ÐÝ#'­¬Ñ#4Ô#4Ð Ý# DÔ$5Ñ6Ô6ð :ð :Ý Ð!8Ñ9Ô9Ð9ð:ð :ð :ð :øøøð :ð :ð :ð :ð :ð :øåð 	@ð 	@ð 	@à×Ò�SœXÐ'8Ñ9Ô9Ð9Ø×Ò�Sœ[Ð*>Ñ?Ô?Ð?Ð?Ð?Ð?ð	@øøøs1   ‚AA% ÁAÁAÁA% ÁAÁ A% Á%A
B3Â2B3c                 óv  — t          | j        ¦  «        5 }|                      |j        t          j        ¦  «         |                      |j        t          j        ¦  «         |                      |j        t          j        ¦  «         |                      |j	        t          j	        u ¦  «         |                      t          j        |j        ¦  «        ¦  «         d\  }}|                      |                     |¦  «        |j                             |¦  «        ¦  «         |                      |                     ||¦  «        |j                             ||¦  «        ¦  «         |                      |                     |¦  «        |j                             |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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   s½  € Ý Ô 1Ñ2Ô2ð 	=°kØ×!Ò! +¤/µ:Ô3HÑIÔIÐIØ×!Ò! +¤/µ:Ô3HÑIÔIÐIØ×!Ò! +Ô"5µzÔ7LÑMÔMÐMØ�OŠO˜KÔ,µ´Ð7Ñ8Ô8Ð8Ø�OŠO�GœO¨K¬OÑ<Ô<Ñ=Ô=Ð=ð ‰DˆAˆqØ×Ò˜[Ÿ_š_¨QÑ/Ô/Ø(œ_×4Ò4°QÑ7Ô7ñ9ô 9ð 9à×Ò˜[Ÿ_š_¨Q°Ñ2Ô2Ø(œ_×4Ò4°Q¸Ñ:Ô:ñ<ô <ð <à×Ò˜[×0Ò0°Ñ3Ô3Ø(Ô0×8Ò8¸Ñ;Ô;ñ=ô =ð =ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   •FF.Æ.F2Æ5F2c                 óª   — dddddœ}t          | j        fi |¤Ž5 }|                      |j        j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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ð /ð /Ø"-ð/ð /ð 	IØ2=Ø×Ò˜[œ_Ô:¸KÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið 	Ið 	Is   š!AÁAÁAc           	      óî   — d}ddddœ}t          dd|i|¤Ž5 }|                      |j        j        |¦  «         |                      |j        j        ddd ddœ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	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  € ðˆð $(Ø&-Ø&+ðð ˆõ  ð /ð /¨\ð /Ø"-ð/ð /ð 	GØ2=Ø×Ò˜[œ_Ô:¸KÑHÔHÐHð ×Ò˜[œ_Ô:Ø'+¸Ø-1¸uðFð FñGô Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   —AA*Á*A.Á1A.c                 ó   ‡— t          j        d¦  «        }|                     t           j        ¦  «         dddœ}t	          |¦  «        5 Št          | j        fi |¤Ž5 }‰                     ¦   «         Šdd                     |j	        ¦  «        d                     |¦  «        g}|  
                    t          ˆfd„|D ¦   «         ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Núnumba.core.decoratorsTr;   )r<   r>   zAuto decorating functionzfrom module {}zwith jit and options: {}c              3   ó    •K  — | ]}|‰v V — Œ	d S r   rE   )Ú.0ÚiÚlogss     €r   ú	<genexpr>z?TestJitModule.test_jit_module_logging_output.<locals>.<genexpr>Š   s'   øè è € Ð#@Ð#@°! A¨ IÐ#@Ð#@Ð#@Ð#@Ð#@Ð#@ó    )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Ñ"Ô"ð 	B dÝ# DÔ$5ð 3ð 3Ø&1ð3ð 3ð BØ6AØ—}’}‘”�Ø6Ø,×3Ò3°KÔ4HÑIÔIØ6×=Ò=¸kÑJÔJðL�ð —’¥Ð#@Ð#@Ð#@Ð#@°xÐ#@Ñ#@Ô#@Ñ @Ô @ÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bs7   Á	C3ÁA3CÃC3ÃC	ÃC3Ã"C	Ã#C3Ã3C7Ã:C7c                 ód  — t          j        d¦  «        }|                     t           j        ¦  «         t	          |¦  «        5 }t          | j        ¦  «        5  |                      |                     ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrH   Ú )	r	   rO   rP   ÚINFOr   r   r   r   rR   )r"   rU   rL   s      r   Útest_jit_module_logging_levelz+TestJitModule.test_jit_module_logging_levelŒ   s  € ÝÔ"Ð#:Ñ;Ô;ˆà�Š�œÑ%Ô%Ð%Ý˜6Ñ"Ô"ð 	6 dÝ# DÔ$5Ñ6Ô6ð 6ð 6Ø× Ò  §¢¡¤°"Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s6   ÁB%Á)BÂB%ÂB	ÂB%ÂB	ÂB%Â%B)Â,B)N)r!   Ú
__module__Ú__qualname__r   r'   r*   r9   rB   rF   rW   r[   rE   rN   r   r   r      s�   € € € € € ð€Lð,
<ð 
<ð 
<ð	@ð 	@ð 	@ð=ð =ð =ð"Ið Ið IðGð Gð Gð4Bð Bð Bð6ð 6ð 6ð 6ð 6rN   r   )r   r   r3   Ú
contextlibr;   r2   r	   Úior   ÚunittestÚnumba.tests.supportr   r   Ú
numba.corer   Úcontextmanagerr   ÚTestCaser   rE   rN   r   ú<module>re      sè   ðØ 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø !Ð !Ð !Ð !Ð !Ð !ð Ôð!ð !ñ Ôð!ðy6ð y6ð y6ð y6ð y6�K Ô!2ñ y6ô y6ð y6ð y6ð y6rN   