o
    i                     @   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| v rtjtjd | d d| v r&| d t | |S d| v r8| d tdd| |S || fd	d
i| S )Nr   	run_testsz--log)levelz--failed-firstz--last-failedTlast_faileddefaultTestznumba.tests)	numba.testingr   loggingbasicConfigDEBUGremove_FailedFirstRunnermainwasSuccessful)argvkwdsr    r   U/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/numba/testing/_runtests.py_main   s   


r   c                  O   s   t dgt|  fi |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 }| |\}  rAd}t|t   fdd|D }| jr<t }	n | }	n
| jrGg }	nt|}	|	sStd d	S td
t|	 td| ||g| |	 fi |}
t|	|
jkr{| 	|
| |

 S )Nr   r      c                 S   s   g | ]	}| d r|qS -
startswith.0ar   r   r   
<listcomp>0       z+_FailedFirstRunner.main.<locals>.<listcomp>z%There were {} previously failed testsc                    s   g | ]}| v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   testsRunsave_failed_testsr   )r   r   r   r   progflags	all_testsftremaing_teststestsresultr   r$   r   r   ,   s0   


z_FailedFirstRunner.mainc                 C   s   t d| j g }t }|j|j D ]}||d   q|D ]}||v r,|| q!t	| jd}t
|| W d    d S 1 sEw   Y  d S )NzSaving failed tests to {}r   w)r(   r)   cache_filenameseterrorsfailuresaddidappendopenjsondump)r   r3   r/   cachefailedcaser#   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 d    n1 s.w   Y   fdd|D }zt| j}W n t	yQ   g }Y ||fS w |}	t
|	}W d    ||fS 1 sgw   Y  ||fS )	Nr   )captured_outputz-lc                 S   s   g | ]	}| d s|qS r   r   r   r   r   r   r!   c   r"   z7_FailedFirstRunner.find_last_failed.<locals>.<listcomp>stdoutz^(\w+\.)+\w+$c                    s   g | ]}  |d ur|qS r   )match)r   xpatr   r   r!   i   s    )numba.tests.supportrC   r   recompilegetvalue
splitlinesr<   r5   OSErrorr=   load)
r   r   rC   listargvstreamlinesr/   fobjr%   finr   rG   r   r'   _   s(   


z#_FailedFirstRunner.find_last_failedN)F)	__name__
__module____qualname____doc__r5   r   r   r,   r'   r   r   r   r   r   #   s    
$r   )r=   rJ   r	   r   r   objectr   r   r   r   r   <module>   s    