§
    2@Äj3  ã                   óP  — 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 d dl	Z	d dl
Z
d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ  G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zd„ Zd„ Zd„ Zd„ Zedk    r ej         ¦   «          dS dS )é    N)Úget_context)ÚTypingError)ÚTestCase)Úresolve_dispatcher_from_str©ÚdumpsÚloads)Úis_serializablec                   ó    — e Zd Zd„ Zej        d„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestDispatcherPicklingc                 ó\   — t          t          j        dz   ¦  «        D ]} ||g|¢R i |¤Ž Œd S )Né   )ÚrangeÚpickleÚHIGHEST_PROTOCOL)ÚselfÚmethÚargsÚkwargsÚprotos        úKC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_serialize.pyÚrun_with_protocolsz)TestDispatcherPickling.run_with_protocols   sN   € Ý�6Ô2°QÑ6Ñ7Ô7ð 	)ð 	)ˆEØˆD�Ð(˜Ð(Ð(Ð( Ð(Ð(Ð(Ð(ð	)ð 	)ó    c              #   ó®   K  — d}t          |¦  «        }|j        } t          |j        ¦  «        |¦  «        |_        	 d V — ||_        d S # ||_        w xY w)NÚcpu)r   ÚtargetdescrÚtype)r   ÚhwstrÚdispatcher_clsÚ	old_descrs       r   Úsimulate_fresh_targetz,TestDispatcherPickling.simulate_fresh_target   so   è è € àˆÝ4°UÑ;Ô;ˆØ"Ô.ˆ	à%E¥T¨.Ô*DÑ%EÔ%EÀeÑ%LÔ%LˆÔ"ð	3ØˆEˆEˆEð *3ˆNÔ&Ð&Ð&ø¨ˆNÔ&Ð2Ð2Ð2Ð2s   ¾A Á	Ac                 óò   ‡ ‡‡— ˆˆˆ fd„} ||¦  «         t          j        ||¦  «        }‰                      ¦   «         5  t          j        |¦  «        } ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó°   •— t          ‰t          ¦  «        r&t          ‰t          ¦  «        r ‰j        ‰| g‰¢R Ž  d S ‰                      | ‰Ž ‰¦  «         d S )N)Ú
isinstancer   Ú
issubclassÚ	ExceptionÚassertRaisesÚassertPreciseEqual)Úfuncr   Úexpected_resultr   s    €€€r   Úcheck_resultz7TestDispatcherPickling.check_call.<locals>.check_result)   sn   ø€ Ý˜?­DÑ1Ô1ð FÝ˜µ	Ñ:Ô:ðFà!�Ô! /°4Ð?¸$Ð?Ð?Ð?Ð?Ð?Ð?à×'Ò'¨¨¨d¨°_ÑEÔEÐEÐEÐEr   )r   r   r!   r	   )r   r   r)   r*   r   r+   ÚpickledÚnew_funcs   `  ``   r   Ú
check_callz!TestDispatcherPickling.check_call(   sç   øøø€ ð	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	ˆ�TÑÔÐÝ”,˜t UÑ+Ô+ˆØ×'Ò'Ñ)Ô)ð 	#ð 	#Ý”| GÑ,Ô,ˆHØˆL˜Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   ¿ A,Á,A0Á3A0c                 ó†   — ddl m} |                      | j        |dd¦  «         |                      | j        |dd¦  «         d S )Nr   )Úadd_with_sigé   ©r   é   )ç333333ó?gÍÌÌÌÌÌ@)Úserialize_usecasesr0   r   r.   )r   r0   s     r   Útest_call_with_sigz)TestDispatcherPickling.test_call_with_sig7   sR   € Ø4Ð4Ð4Ð4Ð4Ð4Ø×Ò ¤°¸qÀ&ÑIÔIÐIà×Ò ¤°¸qÀ*ÑMÔMÐMÐMÐMr   c                 óÀ   — ddl m} |                      | j        |dd¦  «         |                      | j        |dd¦  «         |                      | j        |dd¦  «         d S )	Nr   )Úadd_without_sigr1   r2   ç      @©r4   g333333@Úabc)ÚaÚbc)r5   r8   r   r.   )r   r8   s     r   Útest_call_without_sigz,TestDispatcherPickling.test_call_without_sig=   sn   € Ø7Ð7Ð7Ð7Ð7Ð7Ø×Ò ¤°À!ÀVÑLÔLÐLØ×Ò ¤°À#ÀzÑRÔRÐRà×Ò ¤°À%ÈÑUÔUÐUÐUÐUr   c                 óÄ   — ddl m} |                      | j        |dd¦  «         |                      | j        |t          t          ¦   «         t          ¦   «         f¦  «         d S )Nr   )Úadd_nopythonr9   r:   )r5   r@   r   r.   r   Úobject)r   r@   s     r   Útest_call_nopythonz)TestDispatcherPickling.test_call_nopythonD   sb   € Ø4Ð4Ð4Ð4Ð4Ð4Ø×Ò ¤°¸sÀJÑOÔOÐOà×Ò ¤°½{ÍVÉXÌXÕW]ÑW_ÔW_ÐL`ÑaÔaÐaÐaÐar   c                 óV   — ddl m} |                      | j        |t          d¦  «         d S )Nr   )Úadd_nopython_fail)r   é   )r5   rD   r   r.   r   )r   rD   s     r   Útest_call_nopython_failz.TestDispatcherPickling.test_call_nopython_failJ   s8   € Ø9Ð9Ð9Ð9Ð9Ð9à×Ò ¤Ð1BÅKÐQWÑXÔXÐXÐXÐXr   c                 óL   — ddl m} |                      | j        |dd¦  «         d S )Nr   )Úget_global_objmodeg      @)g      @)r5   rH   r   r.   )r   rH   s     r   Útest_call_objmode_with_globalz4TestDispatcherPickling.test_call_objmode_with_globalO   s7   € Ø:Ð:Ð:Ð:Ð:Ð:Ø×Ò ¤Ð1CÀSÈ&ÑQÔQÐQÐQÐQr   c                 ób   — ddl m}  |d¦  «        }|                      | j        |dd¦  «         d S )Nr   ©Úclosureé   )rE   é   )r5   rL   r   r.   )r   rL   Úinners      r   Útest_call_closurez(TestDispatcherPickling.test_call_closureS   sC   € Ø/Ð/Ð/Ð/Ð/Ð/Ø�˜‘
”
ˆØ×Ò ¤°¸¸6ÑBÔBÐBÐBÐBr   c                 ó\   — ddl m}  |di |¤Ž}|                      | j        |dd¦  «         d S )Nr   )Úclosure_with_globalsç      @g      @©ç      @)rS   )r5   rR   r   r.   )r   Újit_argsrR   rO   s       r   Úcheck_call_closure_with_globalsz6TestDispatcherPickling.check_call_closure_with_globalsX   sL   € Ø<Ð<Ð<Ð<Ð<Ð<Ø$Ð$Ð5Ð5¨HÐ5Ð5ˆØ×Ò ¤°¸¸VÑDÔDÐDÐDÐDr   c                 ó2   — |                       d¬¦  «         d S )NT)Únopython©rW   ©r   s    r   Ú'test_call_closure_with_globals_nopythonz>TestDispatcherPickling.test_call_closure_with_globals_nopython]   ó   € Ø×,Ò,°dÐ,Ñ;Ô;Ð;Ð;Ð;r   c                 ó2   — |                       d¬¦  «         d S )NT)ÚforceobjrZ   r[   s    r   Ú&test_call_closure_with_globals_objmodez=TestDispatcherPickling.test_call_closure_with_globals_objmode`   r]   r   c                 ób   — ddl m}  |d¦  «        }|                      | j        |dd¦  «         d S )Nr   )Úclosure_calling_other_functionrS   g      &@)rU   g      @)r5   rb   r   r.   )r   rb   rO   s      r   Ú(test_call_closure_calling_other_functionz?TestDispatcherPickling.test_call_closure_calling_other_functionc   sF   € ØFÐFÐFÐFÐFÐFØ.Ð.¨sÑ3Ô3ˆØ×Ò ¤°¸¸jÑIÔIÐIÐIÐIr   c                 ób   — ddl m}  |d¦  «        }|                      | j        |dd¦  «         d S )Nr   ©Úclosure_calling_other_closurerS   g       @rT   )r5   rf   r   r.   )r   rf   rO   s      r   Ú'test_call_closure_calling_other_closurez>TestDispatcherPickling.test_call_closure_calling_other_closureh   sF   € ØEÐEÐEÐEÐEÐEØ-Ð-¨cÑ2Ô2ˆØ×Ò ¤°¸¸VÑDÔDÐDÐDÐDr   c                 óL   — ddl m} |                      | j        |dd¦  «         d S )Nr   )Údyn_funcé$   ©rM   )r5   ri   r   r.   )r   ri   s     r   Útest_call_dyn_funcz)TestDispatcherPickling.test_call_dyn_funcm   s6   € Ø0Ð0Ð0Ð0Ð0Ð0à×Ò ¤°¸2¸tÑDÔDÐDÐDÐDr   c                 óL   — ddl m} |                      | j        |dd¦  «         d S )Nr   )Údyn_func_objmoderj   rk   )r5   rn   r   r.   )r   rn   s     r   Útest_call_dyn_func_objmodez1TestDispatcherPickling.test_call_dyn_func_objmoder   s7   € Ø8Ð8Ð8Ð8Ð8Ð8à×Ò ¤Ð1AÀ2ÀtÑLÔLÐLÐLÐLr   c                 ób   — ddl m}  |d¦  «        }|                      | j        ||d¦  «         d S )Nr   )Úget_renamed_moduleç        )rr   )r5   rq   r   r.   )r   rq   Úexpecteds      r   Útest_renamed_modulez*TestDispatcherPickling.test_renamed_modulew   sT   € Ø:Ð:Ð:Ð:Ð:Ð:ð &Ð% cÑ*Ô*ˆØ×Ò ¤Ð1CØ (¨&ñ	2ô 	2ð 	2ð 	2ð 	2r   c                 óÄ   — ddl m}  |d¦  «        }t          j        |¦  «        } dj        di t          ¦   «         ¤Ž}t          j        t          j	        d|g¦  «         dS )z}
        Check that reconstructing doesn't depend on resources already
        instantiated in the original process.
        r   re   rS   z±if 1:
            import pickle

            data = {pickled!r}
            func = pickle.loads(data)
            res = func(4.0)
            assert res == 8.0, res
            ú-cN© )
r5   rf   r   r   ÚformatÚlocalsÚ
subprocessr.   ÚsysÚ
executable)r   rf   r)   r,   Úcodes        r   Útest_other_processz)TestDispatcherPickling.test_other_process   s†   € ð
 	FÐEÐEÐEÐEÐEØ,Ð,¨SÑ1Ô1ˆÝ”,˜tÑ$Ô$ˆðð ô ð#ð #õ  ™œð#ð #ˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r   c                 óè  — ddl m}  |d¦  «        }t          j        |¦  «        } |d¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                      ||¦  «         |                       |dd¦  «        d¦  «         |                     ¦   «          |                       |dd¦  «        d	¦  «         |                      ||¦  «         |                       |dd¦  «        d	¦  «          |d
¦  «        } |dd¦  «         t          j        |¦  «        }~t          j
        ¦   «          t          j        |¦  «        }t          j        |¦  «        }|                      ||¦  «         |                       |dd¦  «        d¦  «         |                     ¦   «          |                       |dd¦  «        d¦  «         dS )z¼
        Check that deserializing the same function multiple times re-uses
        the same dispatcher object.

        Note that "same function" is intentionally under-specified.
        r   rK   r1   rM   rE   rN   é
   r3   é   é   é*   é+   é   é   N)r5   rL   r   r   r	   ÚassertIsÚassertEqualÚdisable_compileÚassertIsNotÚgcÚcollect)	r   rL   r)   r,   Úfunc2Úpickled2ÚfÚgÚhs	            r   Ú
test_reusez!TestDispatcherPickling.test_reuse‘   sÜ  € ð 	0Ð/Ð/Ð/Ð/Ð/Øˆw�q‰zŒzˆÝ”,˜tÑ$Ô$ˆØ�˜‘
”
ˆÝ”< Ñ&Ô&ˆåŒL˜Ñ!Ô!ˆÝŒL˜Ñ!Ô!ˆÝŒL˜Ñ"Ô"ˆØ�Š�a˜ÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ø	×ÒÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%à×Ò˜˜AÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%ð ˆw�q‰zŒzˆØˆˆR�‰ŒˆÝ”,˜tÑ$Ô$ˆØÝ
Œ
‰ŒˆåŒL˜Ñ!Ô!ˆÝŒL˜Ñ!Ô!ˆØ�Š�a˜ÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ø	×ÒÑÔÐØ×Ò˜˜˜1˜a™œ "Ñ%Ô%Ð%Ð%Ð%r   c                 óL   — d}t          j        t          j        d|g¦  «         dS )zN
        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
        rv   N)rz   r.   r{   r|   )r   r}   s     r   Útest_imp_deprecationz+TestDispatcherPickling.test_imp_deprecation·   s+   € ðˆõ 	Ô�sœ~¨t°TÐ:Ñ;Ô;Ð;Ð;Ð;r   N)Ú__name__Ú
__module__Ú__qualname__r   Ú
contextlibÚcontextmanagerr!   r.   r6   r>   rB   rF   rI   rP   rW   r\   r`   rc   rg   rl   ro   rt   r~   r’   r”   rw   r   r   r   r      sr  € € € € € ð)ð )ð )ð Ôð3ð 3ñ Ôð3ð#ð #ð #ðNð Nð NðVð Vð Vðbð bð bðYð Yð Yð
Rð Rð RðCð Cð Cð
Eð Eð Eð
<ð <ð <ð<ð <ð <ðJð Jð Jð
Eð Eð Eð
Eð Eð Eð
Mð Mð Mð
2ð 2ð 2ð<ð <ð <ð$$&ð $&ð $&ðL<ð <ð <ð <ð <r   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSerializationMiscc                 ó4  — ddl m} t          ¦   «         }t          j        |¦  «        }t          |¦  «        } |t          |¦  «        ||¦  «        }|                      ||¦  «          |t          |¦  «        ||¦  «        }|                      ||¦  «         d S )Nr   )Ú_numba_unpickle)	Únumba.core.serializer�   rA   r   r   ÚhashÚidrŠ   r‡   )r   r�   Ú
random_objÚbytebufÚhashedÚgot1Úgot2s          r   Útest_numba_unpicklez)TestSerializationMisc.test_numba_unpickleÎ   s›   € à8Ð8Ð8Ð8Ð8Ð8å‘X”Xˆ
Ý”,˜zÑ*Ô*ˆÝ�jÑ!Ô!ˆàˆ�r *™~œ~¨w¸Ñ?Ô?ˆà×Ò˜˜zÑ*Ô*Ð*Øˆ�r *™~œ~¨w¸Ñ?Ô?ˆà�Š�d˜DÑ!Ô!Ð!Ð!Ð!r   c                 óÚ   — |                       t          ddi¦  «        ¦  «         |                       t          g d¢¦  «        ¦  «         |                       t          d¦  «        ¦  «         d S )NÚkeyÚvalue)r   rE   rN   Ústring)Ú
assertTruer
   r[   s    r   Útest_is_serializablez*TestSerializationMisc.test_is_serializableÝ   s_   € à�Š�¨°Ð(8Ñ9Ô9Ñ:Ô:Ð:Ø�Š�¨	¨	¨	Ñ2Ô2Ñ3Ô3Ð3Ø�Š�¨Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 óL  — t          j        ¦   «         }|                      t          ¦  «        5 }t	          j        |¦  «         ddd¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |  	                    t          |¦  «        ¦  «         dS )zŽ
        Test that is_serializable correctly handles unpicklable objects
        like thread locks that raise TypeError (issue #6270)
        Nzcannot pickle)Ú	threadingÚLockr'   Ú	TypeErrorr   r   ÚassertInÚstrÚ	exceptionÚassertFalser
   )r   ÚlockÚraisess      r   Ú/test_is_serializable_unpicklable_threading_lockzETestSerializationMisc.test_is_serializable_unpicklable_threading_lockã   sÌ   € õ Œ~ÑÔˆð ×Ò�yÑ)Ô)ð 	¨VÝŒL˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š�o¥s¨6Ô+;Ñ'<Ô'<Ñ=Ô=Ð=ð 	×Ò�¨Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/s   ®AÁAÁAc                 óâ   —  G d„ d¦  «        } G d„ d¦  «        }|                       t           |¦   «         ¦  «        ¦  «         |                       t           |¦   «         ¦  «        ¦  «         dS )z„
        Test that is_serializable handles objects that raise TypeError
        in their __reduce__ or __getstate__ methods
        c                   ó   — e Zd Zd„ ZdS )úSTestSerializationMisc.test_is_serializable_custom_unpicklable.<locals>.RejectReducec                 ó    — t          d¦  «        ‚)NzCannot pickle this object©r°   r[   s    r   Ú
__reduce__z^TestSerializationMisc.test_is_serializable_custom_unpicklable.<locals>.RejectReduce.__reduce__ú   s   € ÝÐ ;Ñ<Ô<Ð<r   N)r•   r–   r—   r½   rw   r   r   ÚRejectReducerº   ù   s#   € € € € € ð=ð =ð =ð =ð =r   r¾   c                   ó   — e Zd Zd„ ZdS )úUTestSerializationMisc.test_is_serializable_custom_unpicklable.<locals>.RejectGetstatec                 ó    — t          d¦  «        ‚)NzCannot serialize stater¼   r[   s    r   Ú__getstate__zbTestSerializationMisc.test_is_serializable_custom_unpicklable.<locals>.RejectGetstate.__getstate__ÿ   s   € ÝÐ 8Ñ9Ô9Ð9r   N)r•   r–   r—   rÂ   rw   r   r   ÚRejectGetstaterÀ   þ   s#   € € € € € ð:ð :ð :ð :ð :r   rÃ   N)r´   r
   )r   r¾   rÃ   s      r   Ú'test_is_serializable_custom_unpicklablez=TestSerializationMisc.test_is_serializable_custom_unpicklableó   s    € ð	=ð 	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð
	:ð 	:ð 	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð
 	×Ò�¨¨©¬Ñ8Ô8Ñ9Ô9Ð9Ø×Ò�¨¨Ñ)9Ô)9Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;r   N)r•   r–   r—   r¦   r¬   r·   rÄ   rw   r   r   r›   r›   Í   sP   € € € € € ð"ð "ð "ð3ð 3ð 3ð0ð 0ð 0ð <ð <ð <ð <ð <r   r›   c                   ód   — e Zd ZdZdZd„ Z ej        e dk    d¦  «        d„ ¦   «         Zd„ Z	d„ Z
d	S )
ÚTestCloudPickleIssueszOThis test case includes issues specific to the cloudpickle implementation.
    Fc                 óä   ‡ ‡—  G d„ d¦  «        Šˆfd„}ˆˆ fd„}t          ‰¦  «        } |¦   «           |¦   «          t          |¦  «          |¦   «          t          |¦  «          |¦   «          d S )Nc                   ó   — e Zd ZdZdS )úITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.KlassN©r•   r–   r—   Úclassvarrw   r   r   ÚKlassrÉ     ó   € € € € € ØˆHˆHˆHr   rÌ   c                  ó   •— d‰ _         d S ©Néd   )rË   ©rÌ   s   €r   ÚmutatorzKTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.mutator  s   ø€ Ø ˆEŒNˆNˆNr   c                  ó>   •— ‰                      ‰ j        d¦  «         d S rÏ   )rˆ   rË   )rÌ   r   s   €€r   ÚcheckzITestCloudPickleIssues.test_dynamic_class_reset_on_unpickle.<locals>.check  s!   ø€ Ø×Ò˜Uœ^¨SÑ1Ô1Ð1Ð1Ð1r   r   )r   rÒ   rÔ   ÚsavedrÌ   s   `   @r   Ú$test_dynamic_class_reset_on_unpicklez:TestCloudPickleIssues.test_dynamic_class_reset_on_unpickle  s¶   øø€ ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð	2ð 	2ð 	2ð 	2ð 	2ð 	2õ �e‘”ˆØˆ‰	Œ	ˆ	Øˆ‰ŒˆÝˆe‰Œˆàˆ‰ŒˆÝˆe‰ŒˆØˆ‰Œˆˆˆr   Ú__main__z*Test cannot run as when module is __main__c                 óä   — t          d¦  «        }|                     t          ¬¦  «        }|                     ¦   «          |                     d¬¦  «         |                      |j        d¦  «         d S )NÚspawn)Útargeté<   ©Útimeoutr   )r   ÚProcessÚ"check_main_class_reset_on_unpickleÚstartÚjoinrˆ   Úexitcode)r   ÚmpÚprocs      r   Ú!test_main_class_reset_on_unpicklez7TestCloudPickleIssues.test_main_class_reset_on_unpickle   sd   € õ ˜Ñ!Ô!ˆØ�zŠzÕ!CˆzÑDÔDˆØ�
Š
‰ŒˆØ�	Š	˜"ˆ	ÑÔÐØ×Ò˜œ¨Ñ*Ô*Ð*Ð*Ð*r   c                 ó   —  G d„ d¦  «        }t          |¦  «        }t          d¦  «        }|                     t          |f¬¦  «        }|                     ¦   «          |                     d¬¦  «         |                      |j        d¦  «         d S )Nc                   ó   — e Zd ZdZdS )úRTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_proc.<locals>.KlassNrÊ   rw   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_proczCTestCloudPickleIssues.test_dynamic_class_reset_on_unpickle_new_proc)  s�   € ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	õ �e‘”ˆõ ˜Ñ!Ô!ˆØ�zŠzÕ!BÈ%ÈˆzÑRÔRˆØ�
Š
‰ŒˆØ�	Š	˜"ˆ	ÑÔÐØ×Ò˜œ¨Ñ*Ô*Ð*Ð*Ð*r   c                 ót   — t          j        t          ¦  «        }|                       |¦   «         d¦  «         d S )N)rÐ   rÐ   )ÚnumbaÚnjitÚ
issue_7356rˆ   )r   Úcfuncs     r   Útest_dynamic_class_issue_7356z3TestCloudPickleIssues.test_dynamic_class_issue_73568  s3   € Ý”
�:Ñ&Ô&ˆØ×Ò˜˜™œ *Ñ-Ô-Ð-Ð-Ð-r   N)r•   r–   r—   Ú__doc__Ú_numba_parallel_test_rÖ   ÚunittestÚskipIfrå   rê   rð   rw   r   r   rÆ   rÆ     s‹   € € € € € ðð à!Ððð ð ð( €X„_�X Ò+ØAñCô Cð+ð +ñCô Cð+ð+ð +ð +ð.ð .ð .ð .ð .r   rÆ   c                   ó   — e Zd ZdZdS )ÚDynClassN)r•   r–   r—   r<   rw   r   r   rö   rö   =  s   € € € € € à€A€A€Ar   rö   c                  ó  — t          j        d¬¦  «        5  dt          _        t          j        } d d d ¦  «         n# 1 swxY w Y   t          j        d¬¦  «        5  t          j        }d d d ¦  «         n# 1 swxY w Y   | |fS )NÚintp)ÚbeforerÐ   )Úafter)rì   Úobjmoderö   r<   )rù   rú   s     r   rî   rî   B  só   € Ý	Œ˜fÐ	%Ñ	%Ô	%ð ð Ø�Œ
Ý”ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ˜VÐ	$Ñ	$Ô	$ð ð Ý”
ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�5ˆ=Ðs   –;»?Á?ÁA4Á4A8Á;A8c                  óÂ   — t          j        dd¬¦  «        } | d         }|j        dk    sJ ‚|j        dk    sJ ‚t	          |¦  «        }d|_        t          ||¦  «         d S )Nz"numba.tests.cloudpickle_main_classr×   )Úrun_namerÌ   rÐ   )ÚrunpyÚ
run_moduler–   rË   r   Ú_check_dyn_class)ÚglbsrÌ   rÕ   s      r   rß   rß   K  sy   € åÔØ,Øðñ ô €Dð
 �ŒM€EØÔ˜zÒ)Ð)Ð)Ð)ØŒ>˜SÒ Ð Ð Ð Ý�%‰LŒL€Eà€E„Nå�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 ól   — t          | ¦  «        }|j        dk    sJ ‚d|_        t          || ¦  «         d S rÏ   )r	   rË   r   )rÕ   rÌ   s     r   ré   ré   \  s=   € Ý�%‰LŒL€EØŒ>˜SÒ Ð Ð Ð à€E„Nå�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 óÖ   ‡ — ˆ fd„} |¦   «          t          |¦  «        }|‰ urt          d¦  «        ‚ |¦   «          t          |¦  «        }|‰ urt          d¦  «        ‚ |¦   «          d S )Nc                  ó<   •— ‰ j         dk    rt          d¦  «        ‚d S )NrÐ   zCheck failed. Klass reset.)rË   ÚAssertionErrorrÑ   s   €r   rÔ   z_check_dyn_class.<locals>.checkf  s'   ø€ ØŒ>˜SÒ Ð Ý Ð!=Ñ>Ô>Ð>ð !Ð r   zExpected reuse)r	   r  )rÌ   rÕ   rÔ   Úloadeds   `   r   r   r   e  s�   ø€ ð?ð ?ð ?ð ?ð ?ð 
€E�G„G€GÝ�5‰\Œ\€FØ�UÐÐÝÐ-Ñ.Ô.Ð.à	€E�G„G€GÝ�5‰\Œ\€FØ�UÐÐÝÐ-Ñ.Ô.Ð.Ø	€E�G„G€G€G€Gr   r×   )!r˜   r‹   r   rþ   rz   r{   ró   Úmultiprocessingr   r®   rì   Únumba.core.errorsr   Únumba.tests.supportr   Únumba.core.target_extensionr   Únumba.cloudpickler   r	   rž   r
   r   r›   rÆ   rA   rö   rî   rß   ré   r   r•   Úmainrw   r   r   ú<module>r     sæ  ðØ Ð Ð Ð à 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð à €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (Ø CÐ CÐ CÐ CÐ CÐ CØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðv<ð v<ð v<ð v<ð v<˜Xñ v<ô v<ð v<ðr7<ð 7<ð 7<ð 7<ð 7<˜Hñ 7<ô 7<ð 7<ðt3.ð 3.ð 3.ð 3.ð 3.˜Hñ 3.ô 3.ð 3.ðlð ð ð ð ˆvñ ô ð ð
ð ð ð#ð #ð #ð"#ð #ð #ðð ð ð" ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   