ó
    „ñ:iÔ3  ã                   ó�  • S SK r S SKrS SKrS SKJr  S SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SK
JrJrJr   " S S\
R                  5      r\\
l        S r " S S\5      r " S	 S
\ R(                  5      r " S S\R,                  5      r " S S\R0                  5      rS r " S S\R,                  5      r " S S\5      r " S S\5      r " S S\5      r " S S\R0                  5      r  S SK!r! \!RD                  " 5         g! \# a+  r$Sr%\RL                  " \%RO                  \$S95         Sr$C$gSr$C$ff = f! \( a     gf = f)é    N)ÚStringIO)ÚresultÚrunnerÚsignalsc                   óh   ^ • \ rS rSrSrSrSrSrU 4S jrU 4S jr	U 4S jr
U 4S jrU 4S jrS	rU =r$ )
ÚNumbaTestProgramé   zÏ
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                 óš   >• UR                  SS 5      U l        [        R                  R	                  S5        [
        [        U ]  " U0 UD6  g )NÚsuitez:x)ÚpopÚdiscovered_suiteÚsysÚwarnoptionsÚappendÚsuperr   Ú__init__)ÚselfÚargsÚkwargsÚ	__class__s      €Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/llvmlite/tests/customize.pyr   ÚNumbaTestProgram.__init__!   s?   ø€ Ø &§
¡
¨7°DÓ 9ˆÔô 	�‰×Ñ˜tÔ$ÜÔ Ò.°Ð?¸Ó?ó    c                 óh   >• U R                   b  U R                   U l        g [        [        U ]  5         g ©N)r   Útestr   r   ÚcreateTests)r   r   s    €r   r   ÚNumbaTestProgram.createTests(   s*   ø€ Ø× Ñ Ñ,Ø×-Ñ-ˆD�IäÔ" DÑ5Õ7r   c                 ó¶   >• [         [        U ]  5       nU R                  c  UR	                  SSSSSS9  UR	                  SSS	SS
S9  UR	                  SSSSS9  U$ )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)   Ú$NumbaTestProgram._getParentArgParser.   s‡   ø€ ô Ô'¨ÑBÓDˆØ�?‰?Ñ"Ø×Ñ  k¸	Ø'3Ø%Fð  ñ Hð 	×Ñ˜DÐ"2¸Ø#/Ø!4ð 	ñ 	6ð 	×Ñ˜K¨iØ#/Ø!7ð 	ñ 	9ð ˆr   c                 óü   >• [         R                  S:  a<  SU;   a  UR                  S5        SU l        SU;   a  UR                  S5        SU l        [
        [        U ]  U5        U R                  S::  a  SU l	        g g )N)é   é   r    Tr&   r   )
r   Úversion_infoÚremover!   r'   r   r   Ú	parseArgsÚ	verbosityÚbuffer)r   Úargvr   s     €r   r3   ÚNumbaTestProgram.parseArgs?   sp   ø€ Ü×Ñ˜fÓ$à�t‹|Ø—‘˜DÔ!Ø#�”Ø�t‹|Ø—‘˜DÔ!Ø$(�Ô!ÜÔ Ñ/°Ô5Ø�>‰>˜QÓð ˆD�Kð r   c                 ó¼  >^ • T R                   (       a7  [        T l        [        [        S5      (       d  [
        R                  " S5        O"T R                  c  [        R                  T l        T R                  (       a9  [        T R                  T R                  T R                  T R                  S9T l        UU 4S jnT R                  (       aÒ  [        R                   R#                  [        R                   R%                  [        R&                  S   R(                  5      5      S   S-   n[*        R,                  " [.        R0                  S9nUR3                  5          UR5                  U5        UR7                  5         [9        S	U< 35        UR;                  U5        g U" 5         g ! UR7                  5         [9        S	U< 35        UR;                  U5        f = f)
NÚgettotalrefcountz^detecting reference leaks requires a debug build of Python, only memory leaks will be detected)r4   Úfailfastr5   c                  ó*   >• [         [        T]  5         g r   )r   r   ÚrunTests)r   r   s   €€r   Úrun_tests_realÚ1NumbaTestProgram.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'   ÚParallelTestRunnerr4   r:   r5   r(   ÚosÚpathÚsplitextÚbasenameÚmodulesÚ__file__ÚcProfileÚProfileÚtimeÚperf_counterÚenableÚruncallÚdisableÚprintÚ
dump_stats)r   r=   ÚfilenameÚpr   s   `   €r   r<   ÚNumbaTestProgram.runTestsN   sJ  ù€ Ø�<�<Ü/ˆDŒOäœ3Ð 2×3Ñ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) Æ)2G)r5   r   r'   r!   r   r*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   r(   r'   r   r   r)   r3   r<   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s8   ø† ñð €GØ€GØ€Lõ@õ8õõ"÷"ó "r   r   c                  ó¶  •  [         R                  n  [         R                  n[         R                  [         R
                  [         R                  [         R                  4 H  nUc  M  UR                  5         M     [         R                  " 5         [        R                  " 5         U " 5       U" 5       4$ ! [         a    S n  N²f = f! [         a    S n N´f = f)Nc                  ó   • g©Né*   © rf   r   r   Úfunc1Ú_refleak_cleanup.<locals>.func1€   ó   € Ør   c                  ó   • grd   rf   rf   r   r   Úfunc2Ú_refleak_cleanup.<locals>.func2…   ri   r   )r   ÚgetallocatedblocksÚAttributeErrorr9   ÚstdoutÚstderrÚ
__stdout__Ú
__stderr__ÚflushÚ_clear_type_cacheÚgcÚcollect)rg   rk   Ústreams      r   Ú_refleak_cleanuprx   {   s¨   € ðÜ×&Ñ&ˆðÜ×$Ñ$ˆô —:‘:œsŸz™z¬3¯>©>¼3¿>¹>ÓJˆØÓØ�L‰LŽNñ Kô ×ÒÔä‡J‚J„LÙ‹7‘E“GÐÐøô% ó ô	ðûô
 ó ô	ðús"   ‚B5 “C Â5CÃCÃCÃCc                   ó   • \ rS rSrSrg)ÚReferenceLeakErroré”   rf   N)rZ   r[   r\   r]   r_   rf   r   r   rz   rz   ”   s   † Úr   rz   c                   ó   • \ rS rSrS rSrg)ÚIntPoolé˜   c                 ó   • U$ r   rf   )r   Úkeys     r   Ú__missing__ÚIntPool.__missing__š   s   € Øˆ
r   rf   N)rZ   r[   r\   r]   r�   r_   rf   r   r   r}   r}   ˜   s   † õr   r}   c                   ó6   ^ • \ rS rSrSrSrS rU 4S jrSrU =r	$ )ÚRefleakTestResultéž   r/   é   c                 óf  • U R                   R                  5         U R                  nU R                  nS/X#-
  -  nS/X#-
  -  n[	        5       n[        SS5       H  nXg     M	     S=p‰[        U5       Hº  n[        R                  " 5       n
UR                  U
5        U
R                  5       (       dP  U R                  R                  U
R                  5        U R                  R                  U
R                  5        [        eA
[        5       u  p¼Xs:¼  a  XlU	-
     XGU-
  '   XkU-
     XWU-
  '   X¼p˜M¼     XE4$ )Nr   i8ÿÿÿéÈ   )rw   rs   ÚrepetitionsÚwarmupr}   Úranger   Ú
TestResultÚrunÚwasSuccessfulÚfailuresÚextendÚerrorsÚAssertionErrorrx   )r   r   ÚrepcountÚnwarmupÚ	rc_deltasÚalloc_deltasÚ	_int_poolÚiÚalloc_beforeÚ	rc_beforeÚresÚalloc_afterÚrc_afters                r   Ú
_huntLeaksÚRefleakTestResult._huntLeaks£   s3  € Ø�‰×ÑÔà×#Ñ#ˆØ—+‘+ˆØ�C˜8Ñ-Ñ.ˆ	Ø�s˜hÑ0Ñ1ˆô “Iˆ	Ü�t˜SÖ!ˆAØŒLñ "ð $%Ð$ˆÜ�x–ˆAä×#Ò#Ó%ˆCØ�H‰H�SŒMð ×$Ñ$×&Ñ&Ø—‘×$Ñ$ S§\¡\Ô2Ø—‘×"Ñ" 3§:¡:Ô.Ü$Ð$ØÜ$4Ó$6Ñ!ˆKØ‹|Ø)2¸iÑ3GÑ)H�	˜g™+Ñ&à(1Ø2>ñ3?ñ )@ð Ø$ñ%ñ &ð '2š)ñ# !ð$ Ð&Ð&r   c           
      ó,  >•  U R                  U5      u  p#S nS nSnUSU4USU44 H;  u  pxn	U	" U5      (       d  M  U< SU< SU< S[        U5      < 3n
S	n [	        U
5      e   U(       d  [        [        U ];  U5        g g ! [         a    U R                  5       (       a   e g f = f! [
         a    [        R                  " 5       n Of = fU R                  (       a#  U R                  R                  U< S
U< S35        U R                  X5        Mî  )Nc                 ó   • [        U 5      $ r   )Úany©Údeltass    r   Úcheck_rc_deltasÚ5RefleakTestResult.addSuccess.<locals>.check_rc_deltasÎ   s   € Ü�v“;Ðr   c                 óz   • SU R                  S5      -  [        U 5      :  a  g[        U 5      [        S5      ::  d  gg)Nr/   r   T)é   r   éÿÿÿÿF)ÚcountÚlenÚsetr£   s    r   Úcheck_alloc_deltasÚ8RefleakTestResult.addSuccess.<locals>.check_alloc_deltasÑ   s4   € à�6—<‘< “?Ñ"¤S¨£[Ó0Øä�v“;¤# j£/Ó1ØØr   FÚ
referenceszmemory blocksz leaked Ú z, sum=Tz = )rž   r’   rŽ   Úsumrz   Ú	Exceptionr   Úexc_infoÚshowAllrw   ÚwriteÚ
addFailurer   r„   Ú
addSuccess)r   r   r•   r–   r¥   r­   Úfailedr¤   Ú	item_nameÚcheckerÚmsgr³   r   s               €r   r·   ÚRefleakTestResult.addSuccessÅ   s  ø€ ð	Ø&*§o¡o°dÓ&;Ñ#ˆIò	ò	ð ˆð ˜ oÐ6Ø˜Ð0BÐCó+EÑ&ˆF˜wñ �v�‹ã›&£)¬S°­[ð:�à�ð.Ü,¨SÓ1Ð1ñ+Eö ÜÔ# TÑ5°dÕ;ð øôG ó 	à×)Ñ)×+Ñ+Ð+Ð+Ùð	ûô: !ó .Ü"Ÿ|š|›~’Hð.úà—<—<Ø—K‘K×%Ñ%³I»vÐ&FÔGØ—‘ Ö/s#   ƒB ÁB*Â!B'Â&B'Â*CÃCrf   )
rZ   r[   r\   r]   rŠ   r‰   rž   r·   r_   r`   ra   s   @r   r„   r„   ž   s   ø† à€FØ€Kò '÷D'<ó '<r   r„   c                   ó   • \ rS rSr\rSrg)rA   éï   rf   N)rZ   r[   r\   r]   r„   Úresultclassr_   rf   r   r   rA   rA   ï   s   † Ø#ƒKr   rA   c                 ó”   • [        U [        R                  5      (       a'  / nU  H  nUR                  [	        U5      5        M     U$ U /$ )z$Expand suite into list of tests
    )Ú
isinstancerE   Ú	TestSuiter�   Ú_flatten_suite)r   ÚtestsÚxs      r   rÃ   rÃ   ó   sC   € ô �$œ×*Ñ*×+Ñ+ØˆÛˆAØ�L‰Lœ¨Ó*Ö+ñ àˆàˆvˆr   c                   ó   • \ rS rSrSrS rSrg)ÚParallelTestResultéÿ   z9
A TestResult able to inject results from other results.
c                 óN  • U R                   R                  UR                   R                  5       5        U R                   R                  5         U =R                  UR                  -  sl        U R
                  R                  UR
                  5        U R                  R                  UR                  5        U R                  R                  UR                  5        U R                  R                  UR                  5        U R                  R                  UR                  5        g)z9
Add the results from the other *result* to this result.
N)rw   rµ   Úgetvaluers   ÚtestsRunr�   r�   r‘   ÚskippedÚexpectedFailuresÚunexpectedSuccesses)r   r   s     r   Úadd_resultsÚParallelTestResult.add_results  s»   € ð 	�‰×Ñ˜&Ÿ-™-×0Ñ0Ó2Ô3Ø�‰×ÑÔØ�Š˜Ÿ™Ñ(�Ø�‰×Ñ˜VŸ_™_Ô-Ø�‰×Ñ˜6Ÿ=™=Ô)Ø�‰×Ñ˜FŸN™NÔ+Ø×Ñ×$Ñ$ V×%<Ñ%<Ô=Ø× Ñ ×'Ñ'¨×(BÑ(BÕCr   rf   N)rZ   r[   r\   r]   r^   rÏ   r_   rf   r   r   rÇ   rÇ   ÿ   s   † ñõDr   rÇ   c                   ó(   • \ rS rSrSrSrS rS rSrg)Ú_MinimalResulti  z/
A minimal, picklable TestResult-alike object.
)r�   r‘   rÌ   rÍ   rÎ   rw   Ú
shouldStoprË   c                 ó   • SUl         g)zB
Remove any unpicklable attributes from TestCase instance *case*.
N)Ú_outcomeForDoCleanups)r   Úcases     r   Ú
fixup_caseÚ_MinimalResult.fixup_case  s   € ð
 &*ˆÕ"r   c           	      ó8  • U R                    H  n[        X[        X5      5        M     U R                   H  u  p4U R	                  U5        M     U R
                   H  u  p4U R	                  U5        M     U R                   H  u  p4U R	                  U5        M     g r   )Ú	__slots__ÚsetattrÚgetattrrÍ   r×   r‘   r�   )r   Úoriginal_resultÚattrrÖ   Ú_s        r   r   Ú_MinimalResult.__init__"  su   € Ø—N”NˆDÜ�D¤¨Ó >Ö?ñ #à×,Ô,‰GˆDØ�O‰O˜DÖ!ñ -à—{”{‰GˆDØ�O‰O˜DÖ!ñ #à—}”}‰GˆDØ�O‰O˜DÖ!ò %r   rf   N)	rZ   r[   r\   r]   r^   rÚ   r×   r   r_   rf   r   r   rÒ   rÒ     s   † ñðC€Iò*õ"r   rÒ   c                   ó$   • \ rS rSrSrS rS rSrg)Ú_FakeStringIOi-  z2
A trivial picklable StringIO-alike for Python 2.
c                 ó   • Xl         g r   ©Ú_value)r   Úvalues     r   r   Ú_FakeStringIO.__init__2  s   € Ø�r   c                 ó   • U R                   $ r   rä   )r   s    r   rÊ   Ú_FakeStringIO.getvalue5  s   € Ø�{‰{Ðr   rä   N)rZ   r[   r\   r]   r^   r   rÊ   r_   rf   r   r   râ   râ   -  s   † ñòõr   râ   c                   óH   • \ rS rSrSrS rS r\R                  S 5       r	Sr
g)Ú_MinimalRunneri9  zi
A minimal picklable object able to instantiate a runner in a
child process and run a test case with it.
c                 ó   • Xl         X l        g r   )Ú
runner_clsÚrunner_args)r   rí   rî   s      r   r   Ú_MinimalRunner.__init__?  s   € Ø$ŒØ&Õr   c                 óà  • U R                   n[        5       US'   U R                  " S0 UD6nUR                  " 5       n[        R
                  " 5         [        R                  " U5        UR                  Ul        UR                  Ul        U R                  U5         U" U5        S S S 5        [        UR                  R                  5       5      Ul        [        U5      $ ! , (       d  f       NA= f)Nrw   rf   )rî   r   rí   Ú_makeResultr   ÚinstallHandlerÚregisterResultr:   r5   Úcleanup_objectrâ   rw   rÊ   rÒ   )r   r   r   r   r   s        r   Ú__call__Ú_MinimalRunner.__call__F  s³   € à×!Ñ!ˆô $›:ˆˆxÑØ—’Ñ* 6Ñ*ˆØ×#Ò#Ó%ˆä×ÒÔ Ü×Ò˜vÔ&Ø Ÿ/™/ˆŒØŸ™ˆŒØ× Ñ  Õ&Ù�ŒL÷ 'ô & f§m¡m×&<Ñ&<Ó&>Ó?ˆŒÜ˜fÓ%Ð%÷	 'Õ&ús   Â	CÃ
C-c              #   ó  #   • [        UR                  5      n Uv •  [        UR                  5      U-
  nU H  nUR                  U	 M     g! [        UR                  5      U-
  nU H  nUR                  U	 M     f = f7f)z]
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ô   Ú_MinimalRunner.cleanup_objectY  st   é € ô ˜DŸM™MÓ*ˆð	(ØŠJä  §¡Ó/°-Ñ?ˆNÛ&�Ø—M‘M $Ò'ò 'øô ! §¡Ó/°-Ñ?ˆNÛ&�Ø—M‘M $Ò'ò 'üs   ‚A?™A �/A?Á0A<Á<A?)rî   rí   N)rZ   r[   r\   r]   r^   r   rõ   Ú
contextlibÚcontextmanagerrô   r_   rf   r   r   rë   rë   9  s+   † ñò
'ò&ð& ×Ññ(ó ó(r   rë   c                   ó<   ^ • \ rS rSrSr\rS rS rU 4S jr	Sr
U =r$ )rG   ih  zP
A test runner which delegates the actual running to a pool of child
processes.
c                 ó^   • [         R                  R                  " U 40 UD6  Xl        X l        g r   )r   rF   r   rí   rî   )r   rí   r   s      r   r   ÚParallelTestRunner.__init__p  s&   € Ü×Ñ×&Ò& tÑ6¨vÒ6Ø$ŒØ!Õr   c                 ó�  • [        U R                  U R                  5      n[        R                  " 5       nUR
                  n U" X R                  5       H(  nUR                  " U5        UR                  (       d  M(    O   UUR                  5         UR                  5         $ ! UR                  5         UR                  5         f = fr   )rë   rí   rî   ÚmultiprocessingÚPoolÚimap_unorderedÚ
_test_listrÏ   rÓ   Ú	terminateÚjoin)r   r   Úchild_runnerÚpoolÚimapÚchild_results         r   Ú
_run_innerÚParallelTestRunner._run_inneru  sš   € ô & d§o¡o°t×7GÑ7GÓHˆÜ×#Ò#Ó%ˆØ×"Ñ"ˆð		Ù $ \·?±?Ö C�Ø×"Ò" <Ô0Ø×*×*Ñ*Ùñ !Dð ð �N‰NÔØ�I‰I�Køð �N‰NÔØ�I‰I�Kús   Á6B# Á=B# Â#"Cc                 ó^   >• [        U5      U l        [        [        U ]  U R
                  5      $ r   )rÃ   r  r   rG   r�   r  )r   r   r   s     €r   r�   ÚParallelTestRunner.run†  s(   ø€ Ü(¨Ó.ˆŒô Ô'¨Ñ2°4·?±?ÓCÐCr   )r  rî   rí   )rZ   r[   r\   r]   r^   rÇ   r¿   r   r  r�   r_   r`   ra   s   @r   rG   rG   h  s%   ø† ñð
 %€Kò"ò
÷"Dó Dr   rG   z+Failed to enable faulthandler due to:
{err})Úerr))Úcollectionsrý   rN   Úior   ru   rH   r  r   rP   rE   rC   r   r   r   Úmainr   rx   ÚRuntimeErrorrz   Údefaultdictr}   ÚTextTestResultr„   rF   rA   rÃ   rÇ   ÚobjectrÒ   râ   rë   rG   ÚfaulthandlerrR   ÚBaseExceptionÚer»   rD   ÚformatÚImportErrorrf   r   r   Ú<module>r     sB  ðó Û Û Ý Û 	Û 	Û Û 
Û Û Û ß ,Ñ ,ô\�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 ÄD9Ä!D4Ä4D9Ä<EÅE