§
    2@Äjå  ã                   ó–   — d dl Zd dlZd dlZd dlZd dlmZ ddlm	Z	 e G d„ de	¦  «        ¦   «         Z
e G d„ de	¦  «        ¦   «         ZdS )	é    N)Úskip_parfors_unsupportedé   )ÚDispatcherCacheUsecasesTestc                   ó–   — e Zd Zej                             e¦  «        Zej                             ed¦  «        Z	dZ
d	d„Zd„ Zd„ Zd„ ZdS )
ÚTestParforsCacheúparfors_cache_usecases.pyÚparfors_caching_test_fodderr   c                 ó  — |                       ¦   «         }|                      d¦  «         t          ||¦  «        }t          j        d¦  «        }t          j                              ||¦  «        |                     |¦  «        ¦  «         d„ |j         	                    ¦   «         D ¦   «         }|j         	                    ¦   «         \  }|  
                    |dg¦  «         |                      |dz  ¦  «         |                      ¦   «          d S )Nr   é
   c                 ó&   — g | ]}|j         j        ‘ŒS © )ÚlibraryÚhas_dynamic_globals)Ú.0Úcress     úQC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_parfors_caching.pyú
<listcomp>z-TestParforsCache.run_test.<locals>.<listcomp>   s-   € ð =ð =ð =Ø#ð  œ<Ô;ð =ð =ð =ó    Fé   )Úimport_moduleÚcheck_pycacheÚgetattrÚnpÚonesÚtestingÚassert_allcloseÚpy_funcÚ	overloadsÚvaluesÚassertEqualÚrun_in_separate_process)ÚselfÚfnameÚ	num_funcsÚmodÚfÚaryÚdynamic_globalsr   s           r   Úrun_testzTestParforsCache.run_test   sø   € Ø× Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐÝ�C˜ÑÔˆÝŒg�b‰kŒkˆõ 	Œ
×"Ò" 1 1 S¡6¤6¨1¯9ª9°S©>¬>Ñ:Ô:Ð:ð=ð =Ø'(¤{×'9Ò'9Ñ';Ô';ð=ñ =ô =ˆà”×#Ò#Ñ%Ô%‰ˆØ×Ò˜¨5¨'Ñ2Ô2Ð2à×Ò˜9 q™=Ñ)Ô)Ð)à×$Ò$Ñ&Ô&Ð&Ð&Ð&r   c                 ó4   — d}|                       |¦  «         d S )NÚarrayexprs_case©r)   ©r"   r&   s     r   Útest_arrayexprsz TestParforsCache.test_arrayexprs#   s   € ØˆØ�Š�aÑÔÐÐÐr   c                 ó4   — d}|                       |¦  «         d S )NÚprange_caser,   r-   s     r   Útest_prangezTestParforsCache.test_prange'   s   € ØˆØ�Š�aÑÔÐÐÐr   c                 ó8   — d}|                       |d¬¦  «         d S )NÚcaller_caseé   )r$   r,   r-   s     r   Útest_callerzTestParforsCache.test_caller+   s%   € Øˆð 	�Š�a 1ˆÑ%Ô%Ð%Ð%Ð%r   N)r   )Ú__name__Ú
__module__Ú__qualname__ÚosÚpathÚdirnameÚ__file__ÚhereÚjoinÚusecases_fileÚmodnamer)   r.   r1   r5   r   r   r   r   r      sƒ   € € € € € àŒ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð'BÑCÔC€MØ+€Gð'ð 'ð 'ð 'ð$ð ð ðð ð ð&ð &ð &ð &ð &r   r   c                   óˆ   — e Zd Zej                             e¦  «        Zej                             ed¦  «        Z	dZ
d„ Zd„ ZdS )ÚTestParforsCacheChangingThreadsr   r	   c                 ó�  — dt          | j        | j        ¬¦  «        z  }i t          j        ¥dt          |¦  «        i¥}t          j        t          j	        d|gt          j
        t          j
        |¬¦  «        }|                     ¦   «         \  }}|j        dk    r-t          d|j        › d|                     ¦   «         › d	�¦  «        ‚d S )
Nz›if 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_run()
            )Útempdirr@   ÚNUMBA_NUM_THREADSz-c)ÚstdoutÚstderrÚenvr   zprocess failed with code z:stderr follows
ú
)ÚdictrD   r@   r9   ÚenvironÚstrÚ
subprocessÚPopenÚsysÚ
executableÚPIPEÚcommunicateÚ
returncodeÚAssertionErrorÚdecode)r"   Úthread_countÚcodeÚnew_envÚpopenÚoutÚerrs          r   r!   z7TestParforsCacheChangingThreads.run_in_separate_process;   së   € ðõ ˜tœ|°T´\ÐBÑBÔBñCˆð J•R”ZÐIÐ!4µs¸<Ñ7HÔ7HÐIÐIˆÝÔ ¥#¤.°$¸Ð!=Ý(2¬Å
ÄØ%,ð.ñ .ô .ˆð ×$Ò$Ñ&Ô&‰ˆˆSØÔ˜qÒ Ð Ý ð "E¸UÔ=Mð "Eð "EØ47·J²J±L´Lð"Eð "Eð "Eñ Fô Fð Fð !Ð r   c                 óØ   — |                       d¦  «         |                      d¦  «         |                       d¦  «         |                      d¦  «         |                       d¦  «         d S )Nr   r   é   r   )r   r!   )r"   s    r   Útest_cachingz,TestParforsCacheChangingThreads.test_cachingN   sl   € Ø×Ò˜1ÑÔÐØ×$Ò$ QÑ'Ô'Ð'Ø×Ò˜5Ñ!Ô!Ð!Ø×$Ò$ QÑ'Ô'Ð'Ø×Ò˜5Ñ!Ô!Ð!Ð!Ð!r   N)r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r!   r^   r   r   r   rB   rB   2   se   € € € € € ð
 Œ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð'BÑCÔC€MØ+€GðFð Fð Fð&"ð "ð "ð "ð "r   rB   )Úos.pathr9   rM   rO   Únumpyr   Únumba.tests.supportr   r^   r   r   rB   r   r   r   ú<module>rb      sÎ   ðØ €€€Ø Ð Ð Ð Ø 
€
€
€
à Ð Ð Ð à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ð ð#&ð #&ð #&ð #&ð #&Ð2ñ #&ô #&ñ Ôð#&ðL ð "ð  "ð  "ð  "ð  "Ð&Añ  "ô  "ñ Ôð "ð  "ð  "r   