ó
    „ñ:iP+  ã                   ó$  • 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  S SK	r	S SK
Jr  S SKJr  S SKJr  S SKJrJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      rS rS rS rS r\S:X  a  \R:                  " 5         gg)é    N)Úget_context)ÚTypingError)ÚTestCase)Úresolve_dispatcher_from_str©ÚdumpsÚloadsc                   óª   • \ rS rSrS r\R                  S 5       rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestDispatcherPicklingé   c                 ób   • [        [        R                  S-   5       H  nU" U/UQ70 UD6  M     g )Né   )ÚrangeÚpickleÚHIGHEST_PROTOCOL)ÚselfÚmethÚargsÚkwargsÚprotos        Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_serialize.pyÚrun_with_protocolsÚ)TestDispatcherPickling.run_with_protocols   s.   € Üœ6×2Ñ2°QÑ6Ö7ˆEÙ�Ð(˜Ò( Ô(ò 8ó    c              #   óª   #   • Sn[        U5      nUR                  n[        UR                  5      " U5      Ul         S v •  X2l        g ! X2l        f = f7f)NÚcpu)r   ÚtargetdescrÚtype)r   ÚhwstrÚdispatcher_clsÚ	old_descrs       r   Úsimulate_fresh_targetÚ,TestDispatcherPickling.simulate_fresh_target   sM   é € àˆÜ4°UÓ;ˆØ"×.Ñ.ˆ	ä%)¨.×*DÑ*DÔ%EÀeÓ%LˆÔ"ð	3Ûð *3Õ&ø¨Õ&üs   ‚:A½A ÁAÁAÁAc                 óæ   ^ ^^• UUU 4S jnU" U5        [         R                  " X!5      nT R                  5          [         R                  " U5      nU" U5        S S S 5        g ! , (       d  f       g = f)Nc                 ó®   >• [        T[        5      (       a*  [        T[        5      (       a  TR                  " TU /TQ76   g TR                  U " T6 T5        g )N)Ú
isinstancer   Ú
issubclassÚ	ExceptionÚassertRaisesÚassertPreciseEqual)Úfuncr   Úexpected_resultr   s    €€€r   Úcheck_resultÚ7TestDispatcherPickling.check_call.<locals>.check_result&   sF   ø€ Ü˜?¬D×1Ñ1Ü˜´	×:Ñ:Ø×!Ò! /°4Ð?¸$Ô?à×'Ñ'©¨d¨°_ÕEr   )r   r   r"   r	   )r   r   r+   r,   r   r-   ÚpickledÚnew_funcs   `  ``   r   Ú
check_callÚ!TestDispatcherPickling.check_call%   sO   ú€ ÷	Fñ 	�TÔÜ—,’,˜tÓ+ˆØ×'Ñ'Õ)Ü—|’| GÓ,ˆHÙ˜Ô"÷ *×)Ö)ús   ºA"Á"
A0c                 óˆ   • SSK Jn  U R                  U R                  USS5        U R                  U R                  USS5        g )Nr   )Úadd_with_sigé   ©r   é   )ç333333ó?gÍÌÌÌÌÌ@)Úserialize_usecasesr4   r   r1   )r   r4   s     r   Útest_call_with_sigÚ)TestDispatcherPickling.test_call_with_sig4   s5   € Ý4Ø×Ñ §¡°¸qÀ&ÔIà×Ñ §¡°¸qÀ*ÕMr   c                 óÄ   • SSK Jn  U R                  U R                  USS5        U R                  U R                  USS5        U R                  U R                  USS5        g )	Nr   )Úadd_without_sigr5   r6   ç      @©r8   g333333@Úabc)ÚaÚbc)r9   r=   r   r1   )r   r=   s     r   Útest_call_without_sigÚ,TestDispatcherPickling.test_call_without_sig:   sM   € Ý7Ø×Ñ §¡°À!ÀVÔLØ×Ñ §¡°À#ÀzÔRà×Ñ §¡°À%ÈÕUr   c                 ó´   • SSK Jn  U R                  U R                  USS5        U R                  U R                  U[        [        5       [        5       45        g )Nr   )Úadd_nopythonr>   r?   )r9   rF   r   r1   r   Úobject)r   rF   s     r   Útest_call_nopythonÚ)TestDispatcherPickling.test_call_nopythonA   s@   € Ý4Ø×Ñ §¡°¸sÀJÔOà×Ñ §¡°¼{ÌVËXÔW]ÓW_ÐL`Õar   c                 óT   • SSK Jn  U R                  U R                  U[        S5        g )Nr   )Úadd_nopython_fail)r   é   )r9   rK   r   r1   r   )r   rK   s     r   Útest_call_nopython_failÚ.TestDispatcherPickling.test_call_nopython_failG   s   € Ý9à×Ñ §¡Ð1BÄKÐQWÕXr   c                 óL   • SSK Jn  U R                  U R                  USS5        g )Nr   )Úget_global_objmodeg      @)g      @)r9   rP   r   r1   )r   rP   s     r   Útest_call_objmode_with_globalÚ4TestDispatcherPickling.test_call_objmode_with_globalL   s   € Ý:Ø×Ñ §¡Ð1CÀSÈ&ÕQr   c                 ó\   • SSK Jn  U" S5      nU R                  U R                  USS5        g )Nr   ©Úclosureé   )rL   é   )r9   rU   r   r1   )r   rU   Úinners      r   Útest_call_closureÚ(TestDispatcherPickling.test_call_closureP   s&   € Ý/Ù˜“
ˆØ×Ñ §¡°¸¸6ÕBr   c                 ó\   • SSK Jn  U" S0 UD6nU R                  U R                  USS5        g )Nr   )Úclosure_with_globalsg      @©ç      @)ç      @)r9   r\   r   r1   )r   Újit_argsr\   rX   s       r   Úcheck_call_closure_with_globalsÚ6TestDispatcherPickling.check_call_closure_with_globalsU   s*   € Ý<Ù$Ñ5¨HÑ5ˆØ×Ñ §¡°¸¸VÕDr   c                 ó"   • U R                  SS9  g )NT)Únopython©ra   ©r   s    r   Ú'test_call_closure_with_globals_nopythonÚ>TestDispatcherPickling.test_call_closure_with_globals_nopythonZ   ó   € Ø×,Ñ,°dÐ,Ò;r   c                 ó"   • U R                  SS9  g )NT)Úforceobjre   rf   s    r   Ú&test_call_closure_with_globals_objmodeÚ=TestDispatcherPickling.test_call_closure_with_globals_objmode]   ri   r   c                 ó\   • SSK Jn  U" S5      nU R                  U R                  USS5        g )Nr   )Úclosure_calling_other_functionr_   g      &@)r^   g      @)r9   ro   r   r1   )r   ro   rX   s      r   Ú(test_call_closure_calling_other_functionÚ?TestDispatcherPickling.test_call_closure_calling_other_function`   s'   € ÝFÙ.¨sÓ3ˆØ×Ñ §¡°¸¸jÕIr   c                 ó\   • SSK Jn  U" S5      nU R                  U R                  USS5        g )Nr   ©Úclosure_calling_other_closurer_   g       @r]   )r9   rt   r   r1   )r   rt   rX   s      r   Ú'test_call_closure_calling_other_closureÚ>TestDispatcherPickling.test_call_closure_calling_other_closuree   s'   € ÝEÙ-¨cÓ2ˆØ×Ñ §¡°¸¸VÕDr   c                 óL   • SSK Jn  U R                  U R                  USS5        g )Nr   )Údyn_funcé$   ©rV   )r9   rx   r   r1   )r   rx   s     r   Útest_call_dyn_funcÚ)TestDispatcherPickling.test_call_dyn_funcj   s   € Ý0à×Ñ §¡°¸2¸tÕDr   c                 óL   • SSK Jn  U R                  U R                  USS5        g )Nr   )Údyn_func_objmodery   rz   )r9   r~   r   r1   )r   r~   s     r   Útest_call_dyn_func_objmodeÚ1TestDispatcherPickling.test_call_dyn_func_objmodeo   s   € Ý8à×Ñ §¡Ð1AÀ2ÀtÕLr   c                 ó\   • SSK Jn  U" S5      nU R                  U R                  UUS5        g )Nr   )Úget_renamed_moduleç        )rƒ   )r9   r‚   r   r1   )r   r‚   Úexpecteds      r   Útest_renamed_moduleÚ*TestDispatcherPickling.test_renamed_modulet   s-   € Ý:ñ & cÓ*ˆØ×Ñ §¡Ð1CØ (¨&õ	2r   c                 óÎ   • SSK Jn  U" S5      n[        R                  " U5      nSR                  " S0 [        5       D6n[        R                  " [        R                  SU/5        g)ze
Check that reconstructing doesn't depend on resources already
instantiated in the original process.
r   rs   r_   z±if 1:
            import pickle

            data = {pickled!r}
            func = pickle.loads(data)
            res = func(4.0)
            assert res == 8.0, res
            ú-cN© )
r9   rt   r   r   ÚformatÚlocalsÚ
subprocessr1   ÚsysÚ
executable)r   rt   r+   r/   Úcodes        r   Útest_other_processÚ)TestDispatcherPickling.test_other_process|   s_   € õ
 	FÙ,¨SÓ1ˆÜ—,’,˜tÓ$ˆð÷ ‘ðñ #ô  ›ñ#ˆô 	×ÒœsŸ~™~¨t°TÐ:Õ;r   c                 ó~  • SSK Jn  U" S5      n[        R                  " U5      nU" S5      n[        R                  " U5      n[        R                  " U5      n[        R                  " U5      n[        R                  " U5      nU R                  Xg5        U R                  U" SS5      S5        UR                  5         U R                  U" SS5      S	5        U R                  Xh5        U R                  U" SS5      S	5        U" S
5      nU" SS5        [        R                  " U5      nA[        R                  " 5         [        R                  " U5      n[        R                  " U5      nU R                  Xg5        U R                  U" SS5      S5        UR                  5         U R                  U" SS5      S5        g)zœ
Check that deserializing the same function multiple times re-uses
the same dispatcher object.

Note that "same function" is intentionally under-specified.
r   rT   r5   rV   rL   rW   é
   r7   é   é   é*   é+   é   é   N)r9   rU   r   r   r	   ÚassertIsÚassertEqualÚdisable_compileÚassertIsNotÚgcÚcollect)	r   rU   r+   r/   Úfunc2Úpickled2ÚfÚgÚhs	            r   Ú
test_reuseÚ!TestDispatcherPickling.test_reuseŽ   sU  € õ 	0Ù�q‹zˆÜ—,’,˜tÓ$ˆÙ˜“
ˆÜ—<’< Ó&ˆä�LŠL˜Ó!ˆÜ�LŠL˜Ó!ˆÜ�LŠL˜Ó"ˆØ�‰�aÔØ×Ñ™˜1˜a› "Ô%Ø	×ÑÔØ×Ñ™˜1˜a› "Ô%à×Ñ˜ÔØ×Ñ™˜1˜a› "Ô%ñ �q‹zˆÙˆR�ŒÜ—,’,˜tÓ$ˆØÜ
�
Š
Œä�LŠL˜Ó!ˆÜ�LŠL˜Ó!ˆØ�‰�aÔØ×Ñ™˜1˜a› "Ô%Ø	×ÑÔØ×Ñ™˜1˜a› "Õ%r   c                 óV   • Sn[         R                  " [        R                  SU/5        g)z>
The imp module was deprecated in v3.4 in favour of importlib
a  if 1:
            import pickle
            import warnings
            with warnings.catch_warnings(record=True) as w:
                warnings.simplefilter('always', DeprecationWarning)
                from numba import njit
                @njit
                def foo(x):
                    return x + 1
                foo(1)
                serialized_foo = pickle.dumps(foo)
            for x in w:
                if 'serialize.py' in x.filename:
                    assert "the imp module is deprecated" not in x.msg
        rˆ   N)rŒ   r1   r�   rŽ   )r   r�   s     r   Útest_imp_deprecationÚ+TestDispatcherPickling.test_imp_deprecation´   s$   € ðˆô 	×ÒœsŸ~™~¨t°TÐ:Õ;r   r‰   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú
contextlibÚcontextmanagerr"   r1   r:   rC   rH   rM   rQ   rY   ra   rg   rl   rp   ru   r{   r   r…   r�   r¥   r¨   Ú__static_attributes__r‰   r   r   r   r      s‡   † ò)ð ×Ññ3ó ð3ò#òNòVòbòYò
RòCò
Eò
<ò<òJò
Eò
Eò
Mò
2ò<ò$$&õL<r   r   c                   ó   • \ rS rSrS rSrg)ÚTestSerializationMiscéÊ   c                 óò   • SSK Jn  [        5       n[        R                  " U5      n[        U5      nU" [        U5      X45      nU R                  XR5        U" [        U5      X45      nU R                  XV5        g )Nr   )Ú_numba_unpickle)	Únumba.core.serializerµ   rG   r   r   ÚhashÚidr�   rš   )r   rµ   Ú
random_objÚbytebufÚhashedÚgot1Úgot2s          r   Útest_numba_unpickleÚ)TestSerializationMisc.test_numba_unpickleË   s^   € å8ä“Xˆ
Ü—,’,˜zÓ*ˆÜ�jÓ!ˆáœr *›~¨wÓ?ˆà×Ñ˜Ô*Ùœr *›~¨wÓ?ˆà�‰�dÕ!r   r‰   N)rª   r«   r¬   r­   r¾   r°   r‰   r   r   r²   r²   Ê   s   † õ"r   r²   c                   óf   • \ rS rSrSrSrS r\R                  " \ S:H  S5      S 5       r	S r
S	 rS
rg)ÚTestCloudPickleIssueséÛ   zOThis test case includes issues specific to the cloudpickle implementation.
    Fc                 ó°   ^ ^•  " S S5      mU4S jnUU 4S jn[        T5      nU" 5         U" 5         [        U5        U" 5         [        U5        U" 5         g )Nc                   ó   • \ rS rSrSrSrg)ÚITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.Klasséâ   Nr‰   ©rª   r«   r¬   r­   Úclassvarr°   r‰   r   r   ÚKlassrÅ   â   ó   † Ø‹Hr   rÉ   c                  ó   >• ST l         g ©Néd   )rÈ   ©rÉ   s   €r   ÚmutatorÚKTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.mutatorå   s
   ø€ Ø ˆE�Nr   c                  ó>   >• TR                  T R                  S5        g rÌ   )r›   rÈ   )rÉ   r   s   €€r   ÚcheckÚITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.checkè   s   ø€ Ø×Ñ˜UŸ^™^¨SÕ1r   r   )r   rÏ   rÒ   ÚsavedrÉ   s   `   @r   Ú$test_dynamic_class_reset_on_unpickleÚ:TestCloudPickleIssues.test_dynamic_class_reset_on_unpickleà   sD   ù€ ÷	ñ 	õ	!ö	2ô �e“ˆÙŒ	ÙŒÜˆeŒáŒÜˆeŒÙ�r   Ú__main__z*Test cannot run as when module is __main__c                 ó¶   • [        S5      nUR                  [        S9nUR                  5         UR	                  SS9  U R                  UR                  S5        g )NÚspawn)Útargeté<   ©Útimeoutr   )r   ÚProcessÚ"check_main_class_reset_on_unpickleÚstartÚjoinr›   Úexitcode)r   ÚmpÚprocs      r   Ú!test_main_class_reset_on_unpickleÚ7TestCloudPickleIssues.test_main_class_reset_on_unpickleô   sJ   € ô ˜Ó!ˆØ�z‰zÔ!CˆzÐDˆØ�
‰
ŒØ�	‰	˜"ˆ	ÑØ×Ñ˜Ÿ™¨Õ*r   c                 óä   •  " S S5      n[        U5      n[        S5      nUR                  [        U4S9nUR	                  5         UR                  SS9  U R                  UR                  S5        g )Nc                   ó   • \ rS rSrSrSrg)ÚRTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_proc.<locals>.Klasséÿ   Nr‰   rÇ   r‰   r   r   rÉ   ré   ÿ   rÊ   r   rÉ   rÙ   )rÚ   r   rÛ   rÜ   r   )r   r   rÞ   Ú!check_unpickle_dyn_class_new_procrà   rá   r›   râ   )r   rÉ   rÔ   rã   rä   s        r   Ú-test_dynamic_class_reset_on_unpickle_new_procÚCTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_procý   sc   € ÷	ñ 	ô �e“ˆô ˜Ó!ˆØ�z‰zÔ!BÈ%ÈˆzÐRˆØ�
‰
ŒØ�	‰	˜"ˆ	ÑØ×Ñ˜Ÿ™¨Õ*r   c                 óf   • [         R                  " [        5      nU R                  U" 5       S5        g )N)rÍ   rÍ   )ÚnumbaÚnjitÚ
issue_7356r›   )r   Úcfuncs     r   Útest_dynamic_class_issue_7356Ú3TestCloudPickleIssues.test_dynamic_class_issue_7356  s"   € Ü—
’
œ:Ó&ˆØ×Ñ™› *Õ-r   r‰   N)rª   r«   r¬   r­   Ú__doc__Ú_numba_parallel_test_rÕ   ÚunittestÚskipIfrå   rì   ró   r°   r‰   r   r   rÁ   rÁ   Û   sE   † ñà!Ðòð( ‡_‚_�X Ñ+ØAóCñ+óCð+ò+õ.r   rÁ   c                   ó   • \ rS rSrSrSrg)ÚDynClassi  Nr‰   )rª   r«   r¬   r­   rA   r°   r‰   r   r   rú   rú     s   † àƒAr   rú   c                  ó  • [         R                  " SS9   S[        l        [        R                  n S S S 5        [         R                  " SS9   [        R                  nS S S 5        W U4$ ! , (       d  f       N?= f! , (       d  f       W W4$ = f)NÚintp)ÚbeforerÍ   )Úafter)rï   Úobjmoderú   rA   )rý   rþ   s     r   rñ   rñ     se   € Ü	�Š˜fÓ	%ØŒŒ
Ü—‘ˆ÷ 
&ô 
�Š˜VÓ	$Ü—
‘
ˆ÷ 
%à�5ˆ=Ð÷ 
&Õ	%ú÷ 
%Ô	$à�5ˆ=Ðús   •A*ÁA;Á*
A8Á;
Bc                  óº   • [         R                  " SSS9n U S   nUR                  S:X  d   eUR                  S:w  d   e[	        U5      nSUl        [        X5        g )Nz"numba.tests.cloudpickle_main_classr×   )Úrun_namerÉ   rÍ   )ÚrunpyÚ
run_moduler«   rÈ   r   Ú_check_dyn_class)ÚglbsrÉ   rÔ   s      r   rß   rß     sa   € ä×ÒØ,Øñ€Dð
 �‰M€EØ×Ñ˜zÓ)Ð)Ð)Ø�>‰>˜SÓ Ð Ð Ü�%‹L€Eà€E„Nä�UÕ"r   c                 ób   • [        U 5      nUR                  S:w  d   eSUl        [        X5        g rÌ   )r	   rÈ   r  )rÔ   rÉ   s     r   rë   rë   0  s,   € Ü�%‹L€EØ�>‰>˜SÓ Ð Ð à€E„Nä�UÕ"r   c                 ó¨   ^ • U 4S jnU" 5         [        U5      nUT La  [        S5      eU" 5         [        U5      nUT La  [        S5      eU" 5         g )Nc                  ó<   >• T R                   S:w  a  [        S5      eg )NrÍ   zCheck failed. Klass reset.)rÈ   ÚAssertionErrorrÎ   s   €r   rÒ   Ú_check_dyn_class.<locals>.check:  s    ø€ Ø�>‰>˜SÓ Ü Ð!=Ó>Ð>ð !r   zExpected reuse)r	   r	  )rÉ   rÔ   rÒ   Úloadeds   `   r   r  r  9  sS   ø€ õ?ñ 
„GÜ�5‹\€FØ�UÒÜÐ-Ó.Ð.á	„GÜ�5‹\€FØ�UÒÜÐ-Ó.Ð.Ù	…Gr   r×   )r®   rž   r   r  rŒ   r�   r÷   Úmultiprocessingr   rï   Únumba.core.errorsr   Únumba.tests.supportr   Únumba.core.target_extensionr   Únumba.cloudpickler   r	   r   r²   rÁ   rG   rú   rñ   rß   rë   r  rª   Úmainr‰   r   r   Ú<module>r     sŒ   ðÛ Û 	Û Û Û Û 
Û Ý 'ã Ý )Ý (Ý Cß *ôv<˜Xô v<ôr"˜Hô "ô"3.˜Hô 3.ôlˆvô ò
ò#ò"#òð" ˆzÓØ‡M‚M…Oð r   