Ë
    æÿæiÔ3  ã                   ó’  — d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dl
mZmZmZ  G d„ de
j                  «      Zee
_        d„ Z G d„ de«      Z G d	„ d
e j(                  «      Z G d„ dej,                  «      Z G d„ dej0                  «      Zd„ Z G d„ dej,                  «      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ dej0                  «      Z 	 d dl!Z!	  e!jD                  «        y# e#$ r.Z$dZ% ejL                  e%jO                  e$¬«      «       Y dZ$[$ydZ$[$ww xY w# e($ r Y yw xY w)é    N)ÚStringIO)ÚresultÚrunnerÚsignalsc                   óV   ‡ — e Zd ZdZdZdZdZˆ fd„Zˆ fd„Zˆ fd„Z	ˆ fd„Z
ˆ fd„Zˆ xZS )ÚNumbaTestProgramzã
    A TestProgram subclass adding the following options:
    * a -R option to enable reference leak detection
    * a --profile option to enable profiling of the test run

    Currently the options are only added in 3.4+.
    Fc                 ó˜   •— |j                  dd «      | _        t        j                  j	                  d«       t        t        | �  |i |¤Ž y )NÚsuitez:x)ÚpopÚdiscovered_suiteÚsysÚwarnoptionsÚappendÚsuperr   Ú__init__)ÚselfÚargsÚkwargsÚ	__class__s      €úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/llvmlite/tests/customize.pyr   zNumbaTestProgram.__init__!   s?   ø€ Ø &§
¡
¨7°DÓ 9ˆÔô 	�‰×Ñ˜tÔ$ÜÔ Ñ.°Ð?¸Ó?ó    c                 óf   •— | j                   �| j                   | _        y t        t        | �  «        y ©N)r   Útestr   r   ÚcreateTests)r   r   s    €r   r   zNumbaTestProgram.createTests(   s*   ø€ Ø× Ñ Ð,Ø×-Ñ-ˆD�IäÔ" DÑ5Õ7r   c                 óÆ   •— t         t        | �  «       }| j                  €|j	                  ddddd¬«       |j	                  ddd	dd
¬«       |j	                  dddd¬«       |S )Nú-Rz	--refleakÚrefleakÚ
store_truezDetect reference / memory leaks)ÚdestÚactionÚhelpú-mz--multiprocessÚmultiprocesszParallelize testsz	--profileÚprofilezProfile the test run)r   r   Ú_getParentArgParserÚ
testRunnerÚadd_argument)r   Úparserr   s     €r   r&   z$NumbaTestProgram._getParentArgParser.   s‡   ø€ ô Ô'¨ÑBÓDˆØ�?‰?Ð"Ø×Ñ  k¸	Ø'3Ø%Fð  ô Hð 	×Ñ˜DÐ"2¸Ø#/Ø!4ð 	ô 	6ð 	×Ñ˜K¨iØ#/Ø!7ð 	ô 	9ð ˆr   c                 óð   •— t         j                  dk  r8d|v r|j                  d«       d| _        d|v r|j                  d«       d| _        t
        t        | �  |«       | j                  dk  rd| _	        y y )N)é   é   r   Tr#   r   )
r   Úversion_infoÚremover   r$   r   r   Ú	parseArgsÚ	verbosityÚbuffer)r   Úargvr   s     €r   r/   zNumbaTestProgram.parseArgs?   sp   ø€ Ü×Ñ˜fÒ$à�t‰|Ø—‘˜DÔ!Ø#�”Ø�t‰|Ø—‘˜DÔ!Ø$(�Ô!ÜÔ Ñ/°Ô5Ø�>‰>˜QÒð ˆD�Kð r   c                 ó”  •‡ — ‰ j                   r1t        ‰ _        t        t        d«      s7t        j                  d«       n!‰ j                  €t        j                  ‰ _        ‰ j                  r<t        ‰ j                  ‰ j                  ‰ j                  ‰ j                  ¬«      ‰ _        ˆˆ fd„}‰ j                  rÓt        j                   j#                  t        j                   j%                  t        j&                  d   j(                  «      «      d   dz   }t+        j,                  t.        j0                  ¬«      }|j3                  «        	 |j5                  |«       |j7                  «        t9        d	|›�«       |j;                  |«       y  |«        y # |j7                  «        t9        d	|›�«       |j;                  |«       w xY w)
NÚgettotalrefcountz^detecting reference leaks requires a debug build of Python, only memory leaks will be detected)r0   Úfailfastr1   c                  ó*   •— t         t        ‰�  «        y r   )r   r   ÚrunTests)r   r   s   €€r   Úrun_tests_realz1NumbaTestProgram.runTests.<locals>.run_tests_real`   s   ø€ ÜÔ" DÑ2Õ4r   Ú__main__r   z.prof)ÚtimerzWriting test profile data into )r   ÚRefleakTestRunnerr'   Úhasattrr   ÚwarningsÚwarnÚunittestÚTextTestRunnerr$   ÚParallelTestRunnerr0   r5   r1   r%   ÚosÚpathÚsplitextÚbasenameÚmodulesÚ__file__ÚcProfileÚProfileÚtimeÚperf_counterÚenableÚruncallÚdisableÚprintÚ
dump_stats)r   r8   ÚfilenameÚpr   s   `   €r   r7   zNumbaTestProgram.runTestsN   sF  ù€ Ø�<Š<Ü/ˆDŒOäœ3Ð 2Ô3Ü—‘ð )õ *ð �_‰_Ð$Ü&×5Ñ5ˆDŒOà×ÒÜ0°·±Ø;?¿>¹>Ø:>¿-¹-Ø8<¿¹ôEˆDŒOõ
	5ð �<Š<Ü—w‘w×'Ñ'Ü—‘× Ñ ¤§¡¨ZÑ!8×!AÑ!AÓBóàñàñˆHô × Ñ ¤t×'8Ñ'8Ô9ˆAØ�H‰HŒJð'Ø—	‘	˜.Ô)à—	‘	”Ý¹XÐGÔHØ—‘˜XÕ&áÕøð	 —	‘	”Ý¹XÐGÔHØ—‘˜XÕ&ús   ÅF Æ1G)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r%   r$   r   r   r&   r/   r7   Ú__classcell__©r   s   @r   r   r      s8   ø„ ñð €GØ€GØ€Lô@ô8ôô"÷"ð "r   r   c                  ó¦  — 	 t         j                  } 	 t         j                  }t         j                  t         j
                  t         j                  t         j                  fD ]  }|€Œ|j                  «        Œ t        j                  «        t        j                  «         | «        |«       fS # t        $ r d„ } Y Œ«w xY w# t        $ r d„ }Y Œ¬w xY w)Nc                   ó   — y©Né*   © r]   r   r   Úfunc1z_refleak_cleanup.<locals>.func1€   ó   € Ør   c                   ó   — yr[   r]   r]   r   r   Úfunc2z_refleak_cleanup.<locals>.func2…   r_   r   )r   ÚgetallocatedblocksÚAttributeErrorr4   ÚstdoutÚstderrÚ
__stdout__Ú
__stderr__ÚflushÚ_clear_type_cacheÚgcÚcollect)r^   ra   Ústreams      r   Ú_refleak_cleanuprm   {   s¨   € ðÜ×&Ñ&ˆðÜ×$Ñ$ˆô —:‘:œsŸz™z¬3¯>©>¼3¿>¹>ÓJˆØÑØ�L‰L�Nð Kô ×ÑÔä‡J�J„LÙ‹7‘E“GÐÐøô% ò ô	ðûô
 ò ô	ðús"   ‚B/ “C Â/B>Â=B>ÃCÃCc                   ó   — e Zd Zy)ÚReferenceLeakErrorN)rS   rT   rU   r]   r   r   ro   ro   ”   s   „ Ør   ro   c                   ó   — e Zd Zd„ Zy)ÚIntPoolc                 ó   — |S r   r]   )r   Úkeys     r   Ú__missing__zIntPool.__missing__š   s   € Øˆ
r   N)rS   rT   rU   rt   r]   r   r   rq   rq   ˜   s   „ ór   rq   c                   ó,   ‡ — e Zd ZdZdZd„ Zˆ fd„Zˆ xZS )ÚRefleakTestResultr+   é   c                 ój  — | j                   j                  «        | j                  }| j                  }dg||z
  z  }dg||z
  z  }t	        «       }t        dd«      D ]  }||    Œ	 dx}}	t        |«      D ]º  }t        j                  «       }
|j                  |
«       |
j                  «       sP| j                  j                  |
j                  «       | j                  j                  |
j                  «       t        ‚~
t        «       \  }}||k\  r|||	z
     |||z
  <   |||z
     |||z
  <   ||}	}Œ¼ ||fS )Nr   i8ÿÿÿéÈ   )rl   rh   ÚrepetitionsÚwarmuprq   Úranger   Ú
TestResultÚrunÚwasSuccessfulÚfailuresÚextendÚerrorsÚAssertionErrorrm   )r   r   ÚrepcountÚnwarmupÚ	rc_deltasÚalloc_deltasÚ	_int_poolÚiÚalloc_beforeÚ	rc_beforeÚresÚalloc_afterÚrc_afters                r   Ú
_huntLeakszRefleakTestResult._huntLeaks£   sJ  € Ø�‰×ÑÔà×#Ñ#ˆØ—+‘+ˆØ�C˜8 gÑ-Ñ.ˆ	Ø�s˜h¨Ñ0Ñ1ˆô “Iˆ	Ü�t˜SÖ!ˆAØ�a‹Lð "ð $%Ð$ˆ�yÜ�x–ˆAä×#Ñ#Ó%ˆCØ�H‰H�SŒMð ×$Ñ$Ô&Ø—‘×$Ñ$ S§\¡\Ô2Ø—‘×"Ñ" 3§:¡:Ô.Ü$Ð$ØÜ$4Ó$6Ñ!ˆK˜Ø�GŠ|Ø)2°8¸iÑ3GÑ)H�	˜!˜g™+Ñ&à(1°+Ø2>ñ3?ñ )@ð ˜QØ$ñ%ñ &ð '2°8˜)‰Lð# !ð$ ˜,Ð&Ð&r   c           
      óò  •— 	 | j                  |«      \  }}d„ }d„ }d}|d|f|d|ffD ]2  \  }}}	 |	|«      sŒ|›d|›d|›dt        |«      ›�}
d	}	 t	        |
«      ‚ |st        t        | �;  |«       y y # t        $ r | j                  «       rJ ‚Y y w xY w# t
        $ r t        j                  «       }Y nw xY w| j                  r!| j                  j                  |›d
|›d�«       | j                  ||«       ŒÐ)Nc                 ó   — t        | «      S r   )Úany©Údeltass    r   Úcheck_rc_deltasz5RefleakTestResult.addSuccess.<locals>.check_rc_deltasÎ   s   € Ü�v“;Ðr   c                 óv   — d| j                  d«      z  t        | «      k  ryt        | «      t        d«      k  syy)Nr+   r   T)é   r   éÿÿÿÿF)ÚcountÚlenÚsetr“   s    r   Úcheck_alloc_deltasz8RefleakTestResult.addSuccess.<locals>.check_alloc_deltasÑ   s4   € à�6—<‘< “?Ñ"¤S¨£[Ò0Øä�v“;¤# j£/Ò1ØØr   FÚ
referenceszmemory blocksz leaked Ú z, sum=Tz = )r�   rƒ   r   Úsumro   Ú	Exceptionr   Úexc_infoÚshowAllrl   ÚwriteÚ
addFailurer   rv   Ú
addSuccess)r   r   r†   r‡   r•   rœ   Úfailedr”   Ú	item_nameÚcheckerÚmsgr¡   r   s               €r   r¥   zRefleakTestResult.addSuccessÅ   s  ø€ ð	Ø&*§o¡o°dÓ&;Ñ#ˆI�|ò	ò	ð ˆð ˜ oÐ6Ø˜Ð0BÐCó+EÑ&ˆF�I˜wñ �v�âš&¢)¬S°¬[ð:�à�ð.Ü,¨SÓ1Ð1ð+Eñ ÜÔ# TÑ5°dÕ;ð øôG ò 	à×)Ñ)Ô+Ð+Ð+Ùð	ûô: !ò .Ü"Ÿ|™|›~’Hð.úà—<’<Ø—K‘K×%Ñ%²IºvÐ&FÔGØ—‘  hÕ/s#   ƒA5 ÁBÁ5BÂBÂB6Â5B6)rS   rT   rU   r{   rz   r�   r¥   rW   rX   s   @r   rv   rv   ž   s   ø„ à€FØ€Kò '÷D'<ð '<r   rv   c                   ó   — e Zd ZeZy)r;   N)rS   rT   rU   rv   Úresultclassr]   r   r   r;   r;   ï   s   „ Ø#�Kr   r;   c                 ó†   — t        | t        j                  «      r%g }| D ]  }|j                  t	        |«      «       Œ |S | gS )z$Expand suite into list of tests
    )Ú
isinstancer?   Ú	TestSuiter�   Ú_flatten_suite)r   ÚtestsÚxs      r   r¯   r¯   ó   s@   € ô �$œ×*Ñ*Ô+ØˆÛˆAØ�L‰Lœ¨Ó*Õ+ð àˆàˆvˆr   c                   ó   — e Zd ZdZd„ Zy)ÚParallelTestResultzA
    A TestResult able to inject results from other results.
    c                 óN  — | j                   j                  |j                   j                  «       «       | j                   j                  «        | xj                  |j                  z  c_        | j
                  j                  |j
                  «       | j                  j                  |j                  «       | j                  j                  |j                  «       | j                  j                  |j                  «       | j                  j                  |j                  «       y)zI
        Add the results from the other *result* to this result.
        N)rl   r£   Úgetvaluerh   ÚtestsRunr€   r�   r‚   ÚskippedÚexpectedFailuresÚunexpectedSuccesses)r   r   s     r   Úadd_resultszParallelTestResult.add_results  s»   € ð 	�‰×Ñ˜&Ÿ-™-×0Ñ0Ó2Ô3Ø�‰×ÑÔØ�Š˜Ÿ™Ñ(�Ø�‰×Ñ˜VŸ_™_Ô-Ø�‰×Ñ˜6Ÿ=™=Ô)Ø�‰×Ñ˜FŸN™NÔ+Ø×Ñ×$Ñ$ V×%<Ñ%<Ô=Ø× Ñ ×'Ñ'¨×(BÑ(BÕCr   N)rS   rT   rU   rV   rº   r]   r   r   r³   r³   ÿ   s   „ ñóDr   r³   c                   ó    — e Zd ZdZdZd„ Zd„ Zy)Ú_MinimalResultz7
    A minimal, picklable TestResult-alike object.
    )r€   r‚   r·   r¸   r¹   rl   Ú
shouldStopr¶   c                 ó   — d|_         y)zR
        Remove any unpicklable attributes from TestCase instance *case*.
        N)Ú_outcomeForDoCleanups)r   Úcases     r   Ú
fixup_casez_MinimalResult.fixup_case  s   € ð
 &*ˆÕ"r   c           	      ó2  — | j                   D ]  }t        | |t        ||«      «       Œ | j                  D ]  \  }}| j	                  |«       Œ | j
                  D ]  \  }}| j	                  |«       Œ | j                  D ]  \  }}| j	                  |«       Œ y r   )Ú	__slots__ÚsetattrÚgetattrr¸   rÁ   r‚   r€   )r   Úoriginal_resultÚattrrÀ   Ú_s        r   r   z_MinimalResult.__init__"  s   € Ø—N”NˆDÜ�D˜$¤¨¸Ó >Õ?ð #à×,Ô,‰GˆD�!Ø�O‰O˜DÕ!ð -à—{”{‰GˆD�!Ø�O‰O˜DÕ!ð #à—}”}‰GˆD�!Ø�O‰O˜DÕ!ñ %r   N)rS   rT   rU   rV   rÃ   rÁ   r   r]   r   r   r¼   r¼     s   „ ñðC€Iò*ó"r   r¼   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú_FakeStringIOz:
    A trivial picklable StringIO-alike for Python 2.
    c                 ó   — || _         y r   ©Ú_value)r   Úvalues     r   r   z_FakeStringIO.__init__2  s	   € Øˆ�r   c                 ó   — | j                   S r   rÌ   )r   s    r   rµ   z_FakeStringIO.getvalue5  s   € Ø�{‰{Ðr   N)rS   rT   rU   rV   r   rµ   r]   r   r   rÊ   rÊ   -  s   „ ñòór   rÊ   c                   ó@   — e Zd ZdZd„ Zd„ Zej                  d„ «       Zy)Ú_MinimalRunnerzu
    A minimal picklable object able to instantiate a runner in a
    child process and run a test case with it.
    c                 ó    — || _         || _        y r   )Ú
runner_clsÚrunner_args)r   rÓ   rÔ   s      r   r   z_MinimalRunner.__init__?  s   € Ø$ˆŒØ&ˆÕr   c                 óÒ  — | j                   }t        «       |d<    | j                  di |¤Ž} |j                  «       }t	        j
                  «        t	        j                  |«       |j                  |_        |j                  |_        | j                  |«      5   ||«       d d d «       t        |j                  j                  «       «      |_        t        |«      S # 1 sw Y   Œ<xY w)Nrl   r]   )rÔ   r   rÓ   Ú_makeResultr   ÚinstallHandlerÚregisterResultr5   r1   Úcleanup_objectrÊ   rl   rµ   r¼   )r   r   r   r   r   s        r   Ú__call__z_MinimalRunner.__call__F  s·   € à×!Ñ!ˆô $›:ˆˆxÑØ �—‘Ñ* 6Ñ*ˆØ#�×#Ñ#Ó%ˆä×ÑÔ Ü×Ñ˜vÔ&Ø Ÿ/™/ˆŒØŸ™ˆŒØ× Ñ  Õ&Ù�ŒL÷ 'ô & f§m¡m×&<Ñ&<Ó&>Ó?ˆŒÜ˜fÓ%Ð%÷	 'Ð&ús   Â	CÃC&c              #   óú   K  — t        |j                  «      }	 |–— t        |j                  «      |z
  }|D ]  }|j                  |= Œ y# t        |j                  «      |z
  }|D ]  }|j                  |= Œ w xY w­w)zu
        A context manager which cleans up unwanted attributes on a test case
        (or any other object).
        N)r›   Ú__dict__)r   r   Úvanilla_attrsÚspurious_attrsÚnames        r   rÙ   z_MinimalRunner.cleanup_objectY  su   è ø€ ô ˜DŸM™MÓ*ˆð	(ØŠJä  §¡Ó/°-Ñ?ˆNÛ&�Ø—M‘M $Ñ'ñ 'øô ! §¡Ó/°-Ñ?ˆNÛ&�Ø—M‘M $Ñ'ñ 'üs   ‚A;™A
 �-A;Á
.A8Á8A;N)	rS   rT   rU   rV   r   rÚ   Ú
contextlibÚcontextmanagerrÙ   r]   r   r   rÑ   rÑ   9  s+   „ ñò
'ò&ð& ×Ññ(ó ñ(r   rÑ   c                   ó2   ‡ — e Zd ZdZeZd„ Zd„ Zˆ fd„Zˆ xZ	S )rA   z\
    A test runner which delegates the actual running to a pool of child
    processes.
    c                 ó`   — t        j                  j                  | fi |¤Ž || _        || _        y r   )r   r@   r   rÓ   rÔ   )r   rÓ   r   s      r   r   zParallelTestRunner.__init__p  s*   € Ü×Ñ×&Ñ& tÑ6¨vÒ6Ø$ˆŒØ!ˆÕr   c                 ó‚  — t        | j                  | j                  «      }t        j                  «       }|j
                  }	  ||| j                  «      D ]"  } |j                  |«       |j                  sŒ" n ||j                  «        |j                  «        S # |j                  «        |j                  «        w xY wr   )rÑ   rÓ   rÔ   ÚmultiprocessingÚPoolÚimap_unorderedÚ
_test_listrº   r½   Ú	terminateÚjoin)r   r   Úchild_runnerÚpoolÚimapÚchild_results         r   Ú
_run_innerzParallelTestRunner._run_inneru  s›   € ô & d§o¡o°t×7GÑ7GÓHˆÜ×#Ñ#Ó%ˆØ×"Ñ"ˆð		Ù $ \°4·?±?Ö C�Ø"�×"Ñ" <Ô0Ø×*Ó*Ùð !Dð ð �N‰NÔØ�I‰I�Køð �N‰NÔØ�I‰I�Kús   Á4B Á7B Â"B>c                 ó^   •— t        |«      | _        t        t        | �  | j
                  «      S r   )r¯   rè   r   rA   r~   rï   )r   r   r   s     €r   r~   zParallelTestRunner.run†  s(   ø€ Ü(¨Ó.ˆŒô Ô'¨Ñ2°4·?±?ÓCÐCr   )
rS   rT   rU   rV   r³   r«   r   rï   r~   rW   rX   s   @r   rA   rA   h  s%   ø„ ñð
 %€Kò"ò
÷"Dð Dr   rA   z+Failed to enable faulthandler due to:
{err})Úerr))Úcollectionsrà   rH   Úior   rj   rB   rå   r   rJ   r?   r=   r   r   r   Úmainr   rm   ÚRuntimeErrorro   Údefaultdictrq   ÚTextTestResultrv   r@   r;   r¯   r³   Úobjectr¼   rÊ   rÑ   rA   ÚfaulthandlerrL   ÚBaseExceptionÚer©   r>   ÚformatÚImportErrorr]   r   r   Ú<module>rþ      sF  ðó Û Û Ý Û 	Û 	Û Û 
Û Û Û ß ,Ñ ,ô\�x—}‘}ô \ðB !€„òô2	˜ô 	ôˆk×%Ñ%ô ôN<˜×-Ñ-ô N<ôb$˜×-Ñ-ô $ò	ôD˜×.Ñ.ô Dô&"�Vô "ô6	�Fô 	ô,(�Vô ,(ô^"D˜×.Ñ.ô "DðJ
)Ûð)àˆ×ÑÕøØò )Ø<ˆØˆ�‰�c—j‘j Q�jÓ'×(Ñ(ûð)ûð ò 	Ùð	ús*   Ã1D> Ã6D ÄD;Ä$D6Ä6D;Ä>EÅE