ó
    „ñ:iØ  ã                   ó®   • 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J	r	  S SK
Jr  S SKJr  S SKJr  \S-
  r " S S	\5      r " S
 S\5      rg)é    N)Úmock)Únjit)ÚTestCase)Ú_TIMEOUT)Úmetadatag      N@c                   ó    • \ rS rSrS rS rSrg)Ú_DummyClassé   c                 ó   • Xl         g ©N©Úvalue)Úselfr   s     Ú_/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_entrypoints.pyÚ__init__Ú_DummyClass.__init__   s   € Ø�
ó    c                 ó    • SU R                   -  $ )Nz_DummyClass(%f, %f)r   )r   s    r   Ú__repr__Ú_DummyClass.__repr__   s   € Ø$ t§z¡zÑ1Ð1r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__© r   r   r	   r	      s   † òõ2r   r	   c                   ó    • \ rS rSrSrS rS rSr\R                  " \
R                  R                  SS5      \:g  S5      S	 5       rS
 rS rSrg)ÚTestEntrypointsé   z=
Test registration of init() functions from Numba extensions
c                 óÌ  • [         R                  " SS9n U[        R                  UR                  '   [
        R                  " SSS5      n[         R                  R                  [
        SSU40S9   SS	K	J
n  S
Ul        UR                  5         UR                  R                  5         UR                  5         UR                  R                  5         S S S 5        UR                  [        R                  ;   a  [        R                  UR                  	 g g ! , (       d  f       NI= f! UR                  [        R                  ;   a  [        R                  UR                  	 f f = f)NÚ_test_numba_extension©r   Úinitz_test_numba_extension:init_funcÚnumba_extensionsÚentry_points©Úreturn_valuer   ©ÚentrypointsF)r   ÚMockÚsysÚmodulesr   Úimportlib_metadataÚ
EntryPointÚpatchÚobjectÚ
numba.corer)   Ú_already_initializedÚinit_allÚ	init_funcÚassert_called_once)r   ÚmodÚmy_entrypointr)   s       r   Útest_init_entrypointÚ$TestEntrypoints.test_init_entrypoint!   s  € ô �iŠiÐ!8Ñ9ˆð	.à(+ŒC�K‰K˜Ÿ™Ñ%ä.×9Ò9ØÐ9Ð;MóˆMô —‘×"Ñ"Ü"ØØ0°=Ð2BÐCð #ò õ 3ð 49�Ô0à×$Ñ$Ô&ð —‘×0Ñ0Ô2ð ×$Ñ$Ô&Ø—‘×0Ñ0Ô2÷%ð* �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +÷+õ ûð* �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +ús%   –AD' Á1A"DÃD' Ä
D$Ä D' Ä'<E#c                 ó\  • [         R                  " SS9nUR                  " S0 S[        S5      0D6   U[        R
                  UR                  '   [        R                  " SSS5      n[         R                  R                  [        SSU40S	9   S
SKJn  SUl        [        R                  " SS9 nUR!                  5         S S S 5        SnW H  nU[#        U5      ;   d  M    O   [        S5      eUR$                  R'                  5         S S S 5        UR                  [        R
                  ;   a  [        R
                  UR                  	 g g ! , (       d  f       N’= f! , (       d  f       NZ= f! UR                  [        R
                  ;   a  [        R
                  UR                  	 f f = f)NÚ_test_numba_bad_extensionr"   zinit_func.side_effectÚbrokenr#   z#_test_numba_bad_extension:init_funcr$   r%   r&   r   r(   FT)Úrecordz2Numba extension module '_test_numba_bad_extension'z"Expected warning message not foundr   )r   r*   Úconfigure_mockÚ
ValueErrorr+   r,   r   r-   r.   r/   r0   r1   r)   r2   ÚwarningsÚcatch_warningsr3   Ústrr4   r5   )r   r6   r7   r)   ÚwÚbad_strÚxs          r   Útest_entrypoint_toleranceÚ)TestEntrypoints.test_entrypoint_toleranceG   s`  € ô �iŠiÐ!<Ñ=ˆØ×ÒÑMÐ5´zÀ(Ó7KÐLÒMð$	.à(+ŒC�K‰K˜Ÿ™Ñ%ä.×9Ò9ØØ5Ø"óˆMô —‘×"Ñ"Ü"ØØ0°=Ð2BÐCð #ò õ 3à38�Ô0ä×,Ò,°DÒ9¸QØ×(Ñ(Ô*÷ :ð O�Û�AØ¤# a£&Õ(Ùñ ô %Ð%IÓJÐJð —‘×0Ñ0Ô2÷+ð2 �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +÷ :Õ9ú÷õ ûð2 �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +úsB   ³AE/ Â"EÂ0EÃEÃ!)EÄ
E/ Å
E	ÅEÅ
E,Å(E/ Å/<F+Ú	RUN_ENTRYÚ_EP_MAGIC_TOKENNzneeds tokenc                 ón  ^• SS K mU4S jn[        R                  " S5      nXl         U[        R
                  UR                  '   [        R                  " SSS5      n[        R                  R                  [        SSU40S9   [        S	 5       n[        S
5      nU" U5        S S S 5        UR                  [        R
                  ;   a  [        R
                  UR                  	 g g ! , (       d  f       NI= f! UR                  [        R
                  ;   a  [        R
                  UR                  	 f f = f)Nr   c                  óØ  >^^•  " U4S jSTR                   R                  5      mTR                  R                  R	                  [
        5      U4S j5       n TR                  R                  T5       " UU4S jSTR                  R                  R                  5      5       mTR                  R                  T5      U4S j5       nTR                  R                  T5      U4S j5       ng )Nc                   ó,   >^ • \ rS rSrUU 4S jrSrU =r$ )ÚaTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.DummyTypeé�   c                 ó    >• [         TU ]  SS9  g )NÚ	DummyType)Úname)Úsuperr   )r   rP   Ú	__class__s    €€r   r   ÚjTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.DummyType.__init__‚   s   ø€ Ü˜) TÑ3¸Ð3ÒEr   r   ©r   r   r   r   r   r   Ú__classcell__)rS   rP   s   @€r   rP   rM   �   s   ù† ÷Fô Fr   rP   c                 ó   >• T" 5       $ r   r   )ÚvalÚcrP   s     €r   Útyper_DummyClassÚhTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.typer_DummyClass…   s   ø€ á “{Ð"r   c                   ó.   >^ • \ rS rSrUU U4S jrSrU =r$ )ÚbTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.DummyModelé‰   c                 óX   >• STR                   R                  4/n[        TU ]  XU5        g )Nr   )ÚtypesÚfloat64rR   r   )r   ÚdmmÚfe_typeÚmembersÚ
DummyModelrS   Únumbas       €€€r   r   ÚkTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.DummyModel.__init__‹   s-   ø€ à  %§+¡+×"5Ñ"5Ð6ð:�Gä˜* dÑ4°SÀ7ÕKr   r   rU   )rS   re   rf   s   @€€r   re   r]   ‰   s   ù† ÷Lõ Lr   re   c                 ó  >• UR                   R                  US5      nTR                  R                  R	                  U 5      nU" UR
                  UR                  5      nUR                   R                  U5      Ul        UR                   R                  U5        UR                   R                  5       nTR                  R                  R                  UR                  U5      nTR                  R                  UR                  5       US9$ )Nr   )Úis_error)ÚpyapiÚobject_getattr_stringÚcoreÚcgutilsÚcreate_struct_proxyÚcontextÚbuilderÚfloat_as_doubler   ÚdecrefÚerr_occurredÚis_not_nullÚ	extendingÚNativeValueÚ	_getvalue)	ÚtypÚobjrY   Ú	value_objÚdummy_struct_proxyÚdummy_structÚerr_flagri   rf   s	           €r   Úunbox_dummyÚcTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.unbox_dummy�   sÍ   ø€ àŸG™G×9Ñ9¸#¸wÓG�	Ø%*§Z¡Z×%7Ñ%7×%KÑ%KÈCÓ%PÐ"Ù1°!·)±)¸Q¿Y¹YÓG�Ø%&§W¡W×%<Ñ%<¸YÓ%G�Ô"Ø—‘—‘˜yÔ)ØŸ7™7×/Ñ/Ó1�Ø Ÿ:™:×-Ñ-×9Ñ9¸!¿)¹)ÀXÓN�Ø—‘×2Ñ2°<×3IÑ3IÓ3KØ<Dð 3ð Fð Fr   c                 óî  >• T	R                   R                  R                  U 5      nU" UR                  UR                  5      nUR
                  R                  UR                  5      nUR
                  R                  [        5      nUR
                  R                  U5      nUR
                  R                  Xu45      nUR
                  R                  U5        UR
                  R                  U5        U$ r   )rl   rm   rn   ro   rp   rj   Úfloat_from_doubler   Úserialize_objectr	   ÚunserializeÚcall_function_objargsrr   )
rx   rX   rY   r{   r|   rz   Úserialized_clazzÚ	class_objÚresrf   s
            €r   Ú	box_dummyÚaTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function.<locals>.box_dummyœ   s±   ø€ à%*§Z¡Z×%7Ñ%7×%KÑ%KÈCÓ%PÐ"Ù1°!·)±)¸Q¿Y¹YÓG�ØŸG™G×5Ñ5°l×6HÑ6HÓI�	Ø#$§7¡7×#;Ñ#;¼KÓ#HÐ ØŸG™G×/Ñ/Ð0@ÓA�	Ø—g‘g×3Ñ3°I¸|ÓL�Ø—‘—‘˜yÔ)Ø—‘—‘˜yÔ)Ø�
r   )r`   ÚTyperu   Útypeof_implÚregisterr	   Úregister_modelÚmodelsÚStructModelÚunboxÚbox)rZ   r~   rˆ   re   rP   rf   s      @@€r   Úinit_functionÚNTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.init_function}   sÏ   ú€ ÷F˜EŸK™K×,Ñ,ô Fð �_‰_×(Ñ(×1Ñ1´+Ó>ô#ó ?ð#ð �_‰_×+Ñ+¨IÓ6÷Lð L˜UŸ_™_×3Ñ3×?Ñ?ó Ló 7ðLð �_‰_×"Ñ" 9Ó-ô	Fó .ð	Fð �_‰_× Ñ  Ó+ô	ó ,ñ	r   Ú_test_numba_init_sequencer#   z#_test_numba_init_sequence:init_funcr$   r%   r&   c                 ó   • U $ r   r   )rE   s    r   ÚfooÚDTestEntrypoints.test_entrypoint_handles_type_extensions.<locals>.fooº   s   € à�Hr   é
   )rf   r`   Ú
ModuleTyper4   r+   r,   r   r-   r.   r   r/   r0   r   r	   )r   r’   r6   r7   r–   Úivalrf   s         @r   Ú'test_entrypoint_handles_type_extensionsÚ7TestEntrypoints.test_entrypoint_handles_type_extensionsv   s  ø€ ó
 	õ)	ôV ×ÒÐ:Ó;ˆØ%Œð	.à(+ŒC�K‰K˜Ÿ™Ñ%ä.×9Ò9ØØ5Ø"óˆMô —‘×"Ñ"Ü"ØØ0°=Ð2BÐCð #ò ô
 ñó ðô # 2“�Ù�D”	÷ð �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +÷õ ûð �|‰|œsŸ{™{Ó*Ü—K‘K §¡Ñ-ð +ús$   ©AC8 Â C'Â$C8 Ã'
C5Ã1C8 Ã8<D4c                 óú  • [         R                  " U[         R                  [         R                  US9n[        R                  " [
        UR                  5      n UR                  5         UR                  5       u  pVUR                  S:w  a,  [        SUR                  < SUR                  5       < S35      eUR                  5       UR                  5       4UR                  5         $ ! UR                  5         f = f)N)ÚstdoutÚstderrÚenvr   zprocess failed with code z: stderr follows
Ú
)Ú
subprocessÚPopenÚPIPEÚ	threadingÚTimerÚ_TEST_TIMEOUTÚkillÚstartÚcommunicateÚ
returncodeÚAssertionErrorÚdecodeÚcancel)r   Úcmdliner    ÚpopenÚtimeoutÚoutÚerrs          r   Úrun_cmdÚTestEntrypoints.run_cmdÅ   sµ   € Ü× Ò  Ü(2¯©Ü(2¯©Ø%(ñ*ˆô
 —/’/¤-°·±Ó<ˆð		Ø�M‰MŒOØ×(Ñ(Ó*‰HˆCØ×Ñ 1Ó$Ý$à×%Ô% s§z¡z¦|ð5ó6ð 6ð —:‘:“< §¡£Ð-à�N‰NÕøˆG�N‰NÕús   ÁA=C( Ã(C:c                 óH  • [         R                  R                  5       n[        U R                  5      US'   U R
                  n[        U 5      R                  nSnU< SU< SU< 3n[        R                  SSU/nU R                  Xa5      u  pxSn	U	(       a  [        Xx5        g g )NrI   r›   Ú.z-mznumba.runtestsF)ÚosÚenvironÚcopyrB   rI   r   Útyper   r+   Ú
executabler´   Úprint)
r   Úenv_copyÚthemodÚtheclsÚmethnameÚinjected_methodr¯   r²   r³   Ú_DEBUGs
             r   Ú"test_entrypoint_extension_sequenceÚ2TestEntrypoints.test_entrypoint_extension_sequenceØ   sˆ   € Ü—:‘:—?‘?Ó$ˆÜ&)¨$×*>Ñ*>Ó&?ˆÐ"Ñ#Ø—‘ˆÜ�d“×$Ñ$ˆØ<ˆÛ(.³ºÐAˆÜ—>‘> 4Ð)9¸?ÐKˆØ—<‘< Ó2‰ˆØˆÞÜ�#�Oð r   r   )r   r   r   r   Ú__doc__r8   rF   rI   ÚunittestÚskipIfr¸   r¹   Úgetr›   r´   rÄ   r   r   r   r   r   r      s\   † ñò$.òL+.ðZ "€Oà‡_‚_�R—Z‘Z—^‘^Ð$5°tÓ<ÀÑOØ"ó$ñK.ó$ðK.òZõ&r   r   )r+   rÇ   r   r`   r@   r¸   r¢   r¥   rf   r   Únumba.tests.supportr   Únumba.testing.mainr   Ú_RUNNER_TIMEOUTÚ	importlibr   r-   r§   r0   r	   r   r   r   r   Ú<module>rÎ      sM   ðÛ 
Ý ã Û Û Û 	Û Û å Ý (Ý :å 4à #Ñ%€ô2�&ô 2ôG�hõ Gr   