
    J/Ph                     F    d dl Z d dlZd dlZd Zd Z G d de          ZdS )    Nc                    ddl m} d| v r4t          j        t          j                   |                     d           d| v r7|                     d           t                                          | |          S d| v r9|                     d           t          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   s      W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/testing/_runtests.py_mainr      s    '''''' $'-0000G4$%%%!##((t444	D	 	 O$$$!d33388tDDDy ! != !! !!.	1    c                  >    t          dgt          |           z   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   s     r   r   r      s'     (d4jj(11D111r   c                   0    e Zd ZdZdZd	dZd Zd Zd ZdS )
r   zI
    Test Runner to handle the failed-first (--failed-first) option.
    z.runtests_lastfailedFc                     || _         d S Nr   )selfr   s     r   __init__z_FailedFirstRunner.__init__)   s    &r   c                    ddl m} |d         }|dd          }d |D             }|                     |          \  }r\d}t          |                    t                                         fd|D             }| j        rt                    }	n|z   }	n| j        rg }	nt          |          }	|	st          d           dS t          d	                    t          |	                               t          d
|            ||g|z   |	z   fi |}
t          |	          |
j        k    r| 	                    |
|           |

                                S )Nr   r      c                 <    g | ]}|                     d           |S -
startswith.0as     r   
<listcomp>z+_FailedFirstRunner.main.<locals>.<listcomp>0   s)    666qALL$5$56666r   z%There were {} previously failed testsc                     g | ]}|v|	S  r*   )r&   tfailed_testss     r   r(   z+_FailedFirstRunner.main.<locals>.<listcomp>7   s-     7 7 71 ! 5 5  5 5 5r   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,   s              @r   r   z_FailedFirstRunner.main,   s   ++++++AwABBx66D666"&"7"7"="=	< 	(8B"))C--..///7 7 7 7	 7 7 7M 5\**$}4 (Y 	#$$$4 ''E

33444guD6E>E1::T:: u::((""69555##%%%r   c                    t          d                    | j                             g }t                      }|j        |j        z   D ]/}|                    |d                                                    0|D ]}||v r|                    |           t          | j        d          5 }t          j        ||           d d d            d S # 1 swxY w Y   d S )NzSaving failed tests to {}r   w)r/   r0   cache_filenameseterrorsfailuresaddidappendopenjsondump)r   r:   r6   cachefailedcaser+   fouts           r   r3   z$_FailedFirstRunner.save_failed_testsP   s   )001DEEFFFMFO3 	% 	%DJJtAwzz||$$$$ 	  	 AF{{Q$%s++ 	#tIeT"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   *CCCc                   
 ddl m} dgd |D             z   } |d          5 }t          |  t          j        d          
|                                                                }d d d            n# 1 swxY w Y   
fd|D             }	 t          | j                  }|5 }t          j
        |          }	d d d            n# 1 swxY w Y   n# t          $ r g }	Y nw xY w||	fS )Nr   )captured_outputz-lc                 <    g | ]}|                     d           |S r!   r#   r%   s     r   r(   z7_FailedFirstRunner.find_last_failed.<locals>.<listcomp>c   s)    FFF1ALL4E4EFQFFFr   stdoutz^(\w+\.)+\w+$c                 >    g | ]}                     |          |S r   )match)r&   xpats     r   r(   z7_FailedFirstRunner.find_last_failed.<locals>.<listcomp>i   s(    BBB11)AQ)A)A)Ar   )numba.tests.supportrL   r   recompilegetvalue
splitlinesrD   r=   rE   loadOSError)r   r   rL   listargvstreamlinesr6   fobjfinr,   rR   s             @r   r.   z#_FailedFirstRunner.find_last_failed_   s   777777 6FFFFFF_X&& 	3&(OO*-..COO%%0022E		3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
 CBBBBBB		.+,,D  .#y~~. . . . . . . . . . . . . . .  	 	 	LLL	
 ,&&s6   AA33A7:A7C #CCCCCN)F)	__name__
__module____qualname____doc__r=   r   r   r3   r.   r*   r   r   r   r   #   sg          ,N' ' ' '"& "& "&H# # #' ' ' ' 'r   r   )rE   rT   r   r   r   objectr   r*   r   r   <module>rd      s|     				 1 1 1.2 2 2O' O' O' O' O' O' O' O' O' O'r   