
    wg                     >    d dl Z d dlZd dlZd Zd Z G d de      Zy)    Nc                 r   ddl m} d| v r5t        j                  t        j                         | j                  d       d| v r+| j                  d       t               j                  | |      S d| v r-| j                  d       t        d      j                  | |      S  || fd	d
i|j                         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      \/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/testing/_runtests.py_mainr      s    ' $'--0G4$%!#((t44	D	 O$!d388tDD != !!!.	1    c                  4    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     (d4j(1D11r   c                   .    e Zd ZdZdZddZd Zd Zd Zy)	r   zI
    Test Runner to handle the failed-first (--failed-first) option.
    z.runtests_lastfailedc                     || _         y )Nr   )selfr   s     r   __init__z_FailedFirstRunner.__init__)   s
    &r   c                    ddl m} |d   }|dd  }|D cg c]  }|j                  d      s| }}| j                  |      \  }}|rVd}	t	        |	j                  t        |                   |D 
cg c]  }
|
|vr|

 }}
| j                  rt        |      }n ||z   }n| j                  rg }nt        |      }|st	        d       yt	        dj                  t        |                   t	        d	|        ||g|z   |z   fi |}t        |      |j                  k(  r| j                  ||       |j                         S c c}w c c}
w )
Nr   r      -z%There were {} previously failed testszNo tests to runTzRunning {} testsFlags)r
   r   
startswithfind_last_failedprintformatlenr   r   testsRunsave_failed_testsr   )r   r   r   r   progaflags	all_testsfailed_testsfttremaing_teststestsresults                 r   r   z_FailedFirstRunner.main,   sH   +AwABx 6qALL$566"&"7"7"=	<8B"))C-./(1 71 ! 5  7M 7\*$}4Y#$ ''E
34guD6E>E1:T: u:(""695##%%= 77s   D?D?1Ec                    t        dj                  | j                               g }t               }|j                  |j
                  z   D ]$  }|j                  |d   j                                & |D ]  }||v s|j                  |        t        | j                  d      5 }t        j                  ||       d d d        y # 1 sw Y   y xY w)NzSaving failed tests to {}r   w)r#   r$   cache_filenameseterrorsfailuresaddidappendopenjsondump)r   r1   r+   cachefailedcaser.   fouts           r   r'   z$_FailedFirstRunner.save_failed_testsP   s    )001D1DEFMMFOO3 	%DJJtAwzz|$	%  	 AF{Q	  $%%s+ 	#tIIeT"	# 	# 	#s   $CCc                    ddl m} dg|D cg c]  }|j                  d      r| c}z   } |d      5 }t        |  t	        j
                  d      }|j                         j                         }d d d        D cg c]  }j                  |      | }	}	 t        | j                        }
|
5 }t        j                  |      }d d d        |	|fS c c}w # 1 sw Y   ixY wc c}w # 1 sw Y   |	fS xY w# t        $ r g }Y |	|fS w xY w)Nr   )captured_outputz-lr   stdoutz^(\w+\.)+\w+$)numba.tests.supportrC   r!   r   recompilegetvalue
splitlinesmatchr;   r4   r<   loadOSError)r   r   rC   r)   listargvstreampatlinesxr+   fobjfinr,   s                r   r"   z#_FailedFirstRunner.find_last_failed_   s   7 6F1ALL4EQFFX& 	3&(O**-.COO%002E		3
 !&B11)AQB	B	.++,D  .#yy~.,&& G	3 	3
 C.,&&  	L ,&&	s?   CC<C=C%C%C9 2C*C"*C69D
	D
N)F)	__name__
__module____qualname____doc__r4   r   r   r'   r"    r   r   r   r   #   s#     ,N'"&H#'r   r   )r<   rF   r   r   r   objectr   rX   r   r   <module>rZ      s&     	 1.2O' O'r   