o
    i                     @   s   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	m
Z
mZmZmZ d dlmZ d dlmZ G dd dejZedkrIe  dS dS )	    N)jit)NumbaWarning
deprecatedNumbaDeprecationWarningNumbaPendingDeprecationWarning)errors)ignore_internal_warningsc                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestBuiltinsc                 C   (   d}|  |jt | |t|j d S )NzbFall-back from the nopython compilation path to the object mode compilation path has been detectedassertEqualcategoryr   assertInstrmessageselfwmsg r   W/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/numba/tests/test_warnings.py!check_objmode_deprecation_warning   s   z.TestBuiltins.check_objmode_deprecation_warningc                 C   r
   )Nz0The 'nopython' keyword argument was not suppliedr   r   r   r   r   $check_nopython_kwarg_missing_warning   s   z1TestBuiltins.check_nopython_kwarg_missing_warningc                    s   t jdt jd  fdd}tjdd$}tdt t  tdd|}|  | 	t
|d	 W d
   d
S 1 s;w   Y  d
S )z9
        Rerun test_return_type_warning with nrt
           )dtypec                      s    S Nr   r   yr   r   return_external_array)   s   zMTestBuiltins.test_return_type_warning_with_nrt.<locals>.return_external_arrayTrecordalways)nopythonr   N)nponesfloat32warningscatch_warningssimplefilterr   r   r   r   len)r   r   r   cfuncr   r   r   !test_return_type_warning_with_nrt#   s   "z.TestBuiltins.test_return_type_warning_with_nrtc                 C   sr   dd }t jdd%}t dt t  t|dd}|dd | t|d	 W d    d S 1 s2w   Y  d S )
Nc                 S   s   g }| | S r   r   )xr   ar   r   r   add6   s   z7TestBuiltins.test_no_warning_with_forceobj.<locals>.addTr   r!   )forceobj      r   )r&   r'   r(   r   r   r   r   r)   )r   r.   r   r*   r   r   r   test_no_warning_with_forceobj5   s   
"z*TestBuiltins.test_no_warning_with_forceobjc                 C   s   t ddd }tjdd;}td t  |  | t|d | |d jt | 	d	t
|d j | 	dt
|d j W d    d S 1 sLw   Y  d S )
Nfooc                   S   s   d S r   r   r   r   r   r   barD   s   z)TestBuiltins.test_deprecated.<locals>.barTr   r!   r0   r   r4   )r   r&   r'   r(   r   r   r)   r   DeprecationWarningr   r   r   )r   r4   r   r   r   r   test_deprecatedC   s   

"zTestBuiltins.test_deprecatedc                 C   s  t t j}|dd tt d tt d t  W d    n1 s*w   Y  tjddE}td t  |	  | 
t|d | 
|d jt | 
|d	 jt | dt|d j | dt|d	 j W d    d S 1 s}w   Y  d S )
Nr3   
   sameTr   r!   r1   r   r0   )r   WarningsFixerr   r'   r&   warnr   r   r(   flushr   r)   r   r   r   r   )r   wfixr   r   r   r   test_warnings_fixerR   s    
"z TestBuiltins.test_warnings_fixerc           	      C   s   d}d}d}d|||f }t tjd|g}| \}}| |j| ttj	}d|d< t jtjd|g|d}| \}}| |j| d S )	N7   c   z3'parallel=True' was specified but no transformationa0  if 1:
            import warnings
            from numba.tests.error_usecases import foo
            import numba
            from numba.tests.support import ignore_internal_warnings
            with warnings.catch_warnings(record=True) as w:
                warnings.simplefilter('always')
                ignore_internal_warnings()
                foo()
            for x in w:
                if x.category == numba.errors.NumbaPerformanceWarning:
                    if "%s" in str(x.message):
                        exit(%s)
            exit(%s)
        z-c1"NUMBA_DISABLE_PERFORMANCE_WARNINGS)env)

subprocessPopensys
executablecommunicater   
returncodedictosenviron)	r   not_found_ret_codefound_ret_codeexpectedparallel_codepopenouterrrB   r   r   r   !test_disable_performance_warningsi   s   
z.TestBuiltins.test_disable_performance_warningsc              	   C   s   t  \ t d t jdtd t jdtd t td t td t td t td | t	 t t	d W d    n1 sKw   Y  W d    d S W d    d S 1 scw   Y  d S )Nerrorignorer   this is ignoredthis is not ignored)
r&   r'   r(   r5   PendingDeprecationWarningr:   r   r   assertRaisesr   r   r   r   r    test_filter_deprecation_warnings   s   

"z-TestBuiltins.test_filter_deprecation_warningsc              	   C   s  t   t jdtd t jdtd t jdtd t jdtd | t t td W d    n1 s8w   Y  | t t td W d    n1 sTw   Y  t td t td t jdtd t jdtd | t t td W d    n1 sw   Y  | t t td W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )NrT   rV   rU   rX   rW   )	r&   r'   r(   r5   rY   r   r   rZ   r:   r[   r   r   r   )test_filter_ignore_numba_deprecation_only   s<   
"z6TestBuiltins.test_filter_ignore_numba_deprecation_onlyN)__name__
__module____qualname__r   r   r+   r2   r6   r=   rS   r\   r]   r   r   r   r   r	      s    %r	   __main__)rJ   rC   rE   r&   numpyr#   unittestnumbar   numba.core.errorsr   r   r   r   
numba.corer   numba.tests.supportr   TestCaser	   r^   mainr   r   r   r   <module>   s     (