U
    9%e                     @   s<   d dl Z d dlZd dlZdd Zdd ZG dd deZdS )    Nc                 K   s   ddl m} d| kr,tjtjd | d d| krL| d t | |S d| krp| d tdd| |S || fd	d
i| S d S )Nr   	run_testsz--log)levelz--failed-firstz--last-failedTlast_failedZdefaultTestznumba.tests)	numba.testingr   loggingbasicConfigDEBUGremove_FailedFirstRunnermainwasSuccessful)argvkwdsr    r   V/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/testing/_runtests.py_main   s    


r   c                  O   s   t dgt|  f|S )z~keyword arguments are accepted for backward compatibility only.
    See `numba.testing.run_tests()` documentation for details.z<main>)r   list)r   r   r   r   r   r      s    r   c                   @   s6   e Zd ZdZdZdddZdd Zdd	 Zd
d ZdS )r   zI
    Test Runner to handle the failed-first (--failed-first) option.
    z.runtests_lastfailedFc                 C   s
   || _ d S Nr   )selfr   r   r   r   __init__)   s    z_FailedFirstRunner.__init__c                    s   ddl m} |d }|dd  }dd |D }| |\}  rd}t|t   fdd|D }| jrxt }	q | }	n| jrg }	nt|}	|	std d	S td
t|	 td| ||g| |	 f|}
t|	|
jkr| 	|
| |

 S )Nr   r      c                 S   s   g | ]}| d r|qS -
startswith.0ar   r   r   
<listcomp>0   s     
 z+_FailedFirstRunner.main.<locals>.<listcomp>z%There were {} previously failed testsc                    s   g | ]}| kr|qS r   r   )r   tfailed_testsr   r   r    7   s    zNo tests to runTzRunning {} testsFlags)r   r   find_last_failedprintformatlenr   r   ZtestsRunsave_failed_testsr   )r   r   r   r   progflags	all_testsftZremaing_teststestsresultr   r"   r   r   ,   s0    


z_FailedFirstRunner.mainc              	   C   s   t d| j g }t }|j|j D ]}||d   q&|D ]}||krB|| qBt	| jd}t
|| W 5 Q R X d S )NzSaving failed tests to {}r   w)r&   r'   cache_filenameseterrorsZfailuresaddidappendopenjsondump)r   r/   r,   cachefailedcaser!   Zfoutr   r   r   r)   P   s    z$_FailedFirstRunner.save_failed_testsc           
   	      s   ddl m} dgdd |D  }|d$}t|  td |  }W 5 Q R X  fdd|D }zt| j}W n t	k
r   g }Y nX |}	t
|	}W 5 Q R X ||fS )	Nr   )captured_outputz-lc                 S   s   g | ]}| d s|qS r   r   r   r   r   r   r    c   s     
 z7_FailedFirstRunner.find_last_failed.<locals>.<listcomp>stdoutz^(\w+\.)+\w+$c                    s   g | ]}  |d k	r|qS r   )match)r   xpatr   r   r    i   s      )Znumba.tests.supportr=   r   recompilegetvalue
splitlinesr7   r1   OSErrorr8   load)
r   r   r=   Zlistargvstreamlinesr,   Zfobjr#   Zfinr   rA   r   r%   _   s    


z#_FailedFirstRunner.find_last_failedN)F)	__name__
__module____qualname____doc__r1   r   r   r)   r%   r   r   r   r   r   #   s   
$r   )r8   rC   r   r   r   objectr   r   r   r   r   <module>   s
   