
    sh                     >    S SK r S SKrS SKrS rS r " S S\5      rg)    Nc                 p   SSK Jn  SU ;   a3  [        R                  " [        R                  S9  U R                  S5        SU ;   a*  U R                  S5        [        5       R                  X5      $ SU ;   a)  U R                  S5        [        SS9R                  X5      $ U" U 4S	S
0UD6R                  5       $ )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      k/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/testing/_runtests.py_mainr      s    ' $'--0G4$%!#((44	D	 O$!d388DD != !!!.	1    c                  4    [        S/[        U 5      -   40 UD6$ )zzkeyword 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                   8    \ rS rSrSrSrS
S jrS rS rS r	Sr
g	)r   #   zA
Test Runner to handle the failed-first (--failed-first) option.
z.runtests_lastfailedc                     Xl         g )Nr   )selfr   s     r   __init___FailedFirstRunner.__init__)   s    &r   c                    SSK Jn  US   nUSS  nU Vs/ s H  oUR                  S5      (       d  M  UPM     nnU R                  U5      u  pxU(       a`  Sn	[	        U	R                  [        U5      5      5        U V
s/ s H  n
X;  d  M
  U
PM     nn
U R                  (       a  [        U5      nO$X-   nOU R                  (       a  / nO[        U5      nU(       d  [	        S5        g[	        SR                  [        U5      5      5        [	        S	U5        U" U/U-   U-   40 UD6n[        U5      UR                  :X  a  U R                  X5        UR                  5       $ s  snf s  sn
f )
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   _FailedFirstRunner.main,   s>   +AwABx 6DqLL$5D6"&"7"7"=	8B"))C-./(1 7	1 ! 5 	M 7\*$4Y#$ ''E
34guD6E>E1:T: u:(""65##%%= 77s   EE=	E$
E$c                    [        SR                  U R                  5      5        / n[        5       nUR                  UR
                  -    H%  nUR                  US   R                  5       5        M'     U H  nXd;   d  M
  UR                  U5        M     [        U R                  S5       n[        R                  " X75        S S S 5        g ! , (       d  f       g = f)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caser0   fouts           r   r)   $_FailedFirstRunner.save_failed_testsP   s    )001D1DEFMMFOO3DJJtAwzz|$ 4 A{Q  $%%s+tIIe" ,++s   *C


Cc                 J   SSK Jn  S/U Vs/ s H  o3R                  S5      (       a  M  UPM     sn-   nU" S5       n[        U6   [        R
                  " S5      nUR                  5       R                  5       nS S S 5        W Vs/ s H  nWR                  U5      c  M  UPM     n	n [        U R                  5      n
U
 n[        R                  " U5      nS S S 5        X4$ s  snf ! , (       d  f       Ns= fs  snf ! , (       d  f       U	W4$ = f! [         a    / n X4$ f = f)Nr   )captured_outputz-lr!   stdoutz^(\w+\.)+\w+$)numba.tests.supportrG   r#   r   recompilegetvalue
splitlinesmatchr>   r7   r?   loadOSError)r   r   rG   r+   listargvstreampatlinesxr-   fobjfinr.   s                r   r$   #_FailedFirstRunner.find_last_failed_   s   7 6F1LL4EQFFX&&(O**-.COO%002E	 '
 !&B11Q	B	.++,D #yy~ && G&&
 C ,&&  	L &&	s?   C"C"=C'C8 C8)D  C='
C5=
DD"!D"r   N)F)__name__
__module____qualname____firstlineno____doc__r7   r   r   r)   r$   __static_attributes__ r   r   r   r   #   s#     ,N'"&H#'r   r   )r?   rJ   r   r   r   objectr   r_   r   r   <module>ra      s&     	 1.2O' O'r   