§
    ƒÛgÃ’  ã                   óè  — d dl Z d dlm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Zd dl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 d dlmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# 	 d dl$Z$n# e%$ r dZ$Y nw xY wd„ Z& e&¦   «         Z'd	Z( ej)        e'e(¦  «        Z*d
„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0 G d„ dee¦  «        Z1d„ Z2 G d„ de¦  «        Z3 G d„ de3¦  «        Z4 G d„ de4¦  «        Z5e" G d„ de4¦  «        ¦   «         Z6 G d„ de4¦  «        Z7 G d„ de3¦  «        Z8e! G d„ d ej        ¦  «        ¦   «         Z9d!„ Z: G d"„ d#ej        ¦  «        Z; G d$„ d%e3¦  «        Z<e=d&k    r ej>        ¦   «          dS dS )'é    N)Únjit)Úcodegen)Ú_UserWideCacheLocator)ÚNumbaWarning)Úparfor)
ÚTestCaseÚSerialMixinÚcapture_cache_logÚimport_dynamicÚoverride_configÚoverride_env_configÚrun_in_new_process_cachingÚskip_if_typeguardÚskip_parfors_unsupportedÚtemp_directoryc                  óH  — t          d¦  «        } t          j                             | d¦  «        }t          j        |¦  «         t          t          j                             |d¦  «        d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |d¦  «         	 t          t          j                             |d¦  «        d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          j        |d	¦  «         t          j	        |¦  «         d
S # t          $ r- Y t          j        |d	¦  «         t          j	        |¦  «         dS w xY w# t          j        |d	¦  «         t          j	        |¦  «         w xY w)NÚ
test_cacheÚwritable_testÚwrite_okÚwtÚcheck1é@  Úwrite_forbiddenÚcheck2iý  FT)r   ÚosÚpathÚjoinÚmkdirÚopenÚwriteÚchmodÚshutilÚrmtreeÚPermissionError)ÚtempdirÚtest_dirÚfs      úN/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_caching.pyÚcheck_access_is_preventabler)   %   sü  € õ ˜\Ñ*Ô*€GÝ”—’˜W oÑ6Ô6€HÝ„HˆXÑÔÐå	�bŒg�lŠl˜8 ZÑ0Ô0°$Ñ	7Ô	7ð ¸1Ø	�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ „HˆX�uÑÔÐð Ý•"”'—,’,˜xÐ):Ñ;Ô;¸TÑBÔBð 	ÀaØ�GŠG�HÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð õ 	Œ�˜5Ñ!Ô!Ð!ÝŒ�hÑÔÐÐÐøõ ð ð ð ð å
Œ�˜5Ñ!Ô!Ð!ÝŒ�hÑÔÐÐÐðøøøøõ 	Œ�˜5Ñ!Ô!Ð!ÝŒ�hÑÔÐÐøøøsZ   Á2BÂBÂBÂ5.D< Ã#DÃ9D< ÄD	Ä	D< ÄD	ÄD< Ä<
E3ÅE6 Å2E3Å3E6 Å6+F!z9Cannot create a directory to which writes are preventablec                  ó(   — d} t          | ¦  «        | fS )NÚabcd)Úhash)Úcs    r(   Úconstant_unicode_cacher.   I   s   € Ø€AÝ�‰7Œ7�Aˆ:Ðó    c                  óš   — t           }  t          d¬¦  «        | ¦  «        } | ¦   «         \  }} |¦   «         \  }}||k    sJ ‚||k    sJ ‚d S ©NT©Úcache)r.   r   )ÚpyfuncÚcfuncÚexp_hvÚexp_strÚgot_hvÚgot_strs         r(   Úcheck_constant_unicode_cacher:   N   sg   € Ý#€FØ�D�tÐÑÔ˜VÑ$Ô$€EØ�f‘h”h�O€FˆGØ�e‘g”g�O€FˆGØ�VÒÐÐÐØ�gÒÐÐÐÐÐr/   c                  ó   — dddœS )Né   é   )ÚaÚb© r@   r/   r(   Ú
dict_cacherA   W   s   € Ø˜ÐÐÐr/   c                  ó~   — t           }  t          d¬¦  «        | ¦  «        } | ¦   «         } |¦   «         }||k    sJ ‚d S r1   )rA   r   ©r4   r5   ÚexpÚgots       r(   Úcheck_dict_cacherF   [   sH   € Ý€FØ�D�tÐÑÔ˜VÑ$Ô$€EØ
ˆ&‰(Œ(€CØ
ˆ%‰'Œ'€CØ�#Š:ˆ:ˆ:ˆ:ˆ:ˆ:r/   c               #   ó   K  — dD ]} | V — Œd S )N)r<   r=   é   r@   )Úvs    r(   Úgenerator_cacherJ   c   s*   è è € Øð ð ˆØˆˆˆˆðð r/   c                  ó²   — t           }  t          d¬¦  «        | ¦  «        }t           | ¦   «         ¦  «        }t           |¦   «         ¦  «        }||k    sJ ‚d S r1   )rJ   r   ÚlistrC   s       r(   Úcheck_generator_cacherM   h   sT   € Ý€FØ�D�tÐÑÔ˜VÑ$Ô$€EÝ
ˆvˆv‰xŒx‰.Œ.€CÝ
ˆuˆu‰wŒw‰-Œ-€CØ�#Š:ˆ:ˆ:ˆ:ˆ:ˆ:r/   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestCachingc                 óp   —  |¦   «          t          |¦  «        }|                      |d         d¦  «         d S )NÚexitcoder   )r   ÚassertEqual)ÚselfÚfuncÚress      r(   Úrun_testzTestCaching.run_testq   s:   € Øˆ‰ŒˆÝ(¨Ñ.Ô.ˆØ×Ò˜˜Zœ¨!Ñ,Ô,Ð,Ð,Ð,r/   c                 ó:   — |                       t          ¦  «         d S ©N)rV   r:   ©rS   s    r(   Útest_constant_unicode_cachez'TestCaching.test_constant_unicode_cachev   s   € Ø�ŠÕ2Ñ3Ô3Ð3Ð3Ð3r/   c                 ó:   — |                       t          ¦  «         d S rX   )rV   rF   rY   s    r(   Útest_dict_cachezTestCaching.test_dict_cachey   s   € Ø�ŠÕ&Ñ'Ô'Ð'Ð'Ð'r/   c                 ó:   — |                       t          ¦  «         d S rX   )rV   rM   rY   s    r(   Útest_generator_cachez TestCaching.test_generator_cache|   s   € Ø�ŠÕ+Ñ,Ô,Ð,Ð,Ð,r/   c                 ó¶  — t          | j        j        ¦  «        }t          j        ¦   «         }|                     ¦   «         }|                     t          ||df¬¦  «        }|                     ¦   «          | 	                    ¦   «          | 
                    ¦   «         \  }}|s|                      |¦  «         |                      |dd¦  «         |                     t          ||df¬¦  «        }|                     ¦   «          | 	                    ¦   «          | 
                    ¦   «         \  }}|s|                      |¦  «         |                      |dd¦  «         d S )NF©ÚtargetÚargséè  z-Omitted function returned an incorrect outputT)r   Ú	__class__Ú__name__ÚmultiprocessingÚget_contextÚQueueÚProcessÚomitted_child_test_wrapperÚstartr   ÚgetÚfailrR   )rS   Ú	cache_dirÚctxÚresult_queueÚprocÚsuccessÚoutputs          r(   Útest_omittedzTestCaching.test_omitted   sc  € õ # 4¤>Ô#:Ñ;Ô;ˆ	ÝÔ)Ñ+Ô+ˆØ—y’y‘{”{ˆØ�{Š{Ý-Ø 	¨5Ð1ð ñ 
ô 
ˆð 	�
Š
‰ŒˆØ�	Š	‰ŒˆØ&×*Ò*Ñ,Ô,‰ˆ�ð ð 	Ø�IŠI�fÑÔÐà×ÒØØØ;ñ	
ô 	
ð 	
ð �{Š{Ý-Ø 	¨4Ð0ð ñ 
ô 
ˆð 	�
Š
‰ŒˆØ�	Š	‰ŒˆØ&×*Ò*Ñ,Ô,‰ˆ�ð ð 	Ø�IŠI�fÑÔÐà×ÒØØØ;ñ	
ô 	
ð 	
ð 	
ð 	
r/   N)re   Ú
__module__Ú__qualname__rV   rZ   r\   r^   rt   r@   r/   r(   rO   rO   p   s_   € € € € € ð-ð -ð -ð
4ð 4ð 4ð(ð (ð (ð-ð -ð -ð(
ð (
ð (
ð (
ð (
r/   rO   c                 óD  — t          d|¦  «        5  t          d¬¦  «        dd„¦   «         }	  |¦   «         }|rM|j        |j        d                  dk    s
J d¦   «         ‚|j        |j        d                  dk    s
J d	¦   «         ‚nL|j        |j        d                  dk    s
J d
¦   «         ‚|j        |j        d                  dk    s
J d¦   «         ‚d}n#  t          j        ¦   «         }d}Y nxY w|                      ||f¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚ	CACHE_DIRTr2   rc   c                 ó   — | S rX   r@   )Únums    r(   Útestz(omitted_child_test_wrapper.<locals>.test¬   s   € àˆJr/   r   r<   zCache did not hit as expectedzCache has an unexpected misszCache did not miss as expectedzCache has an unexpected hitF)rc   )r   r   Ú_cache_hitsÚ
signaturesÚ_cache_missesÚ	tracebackÚ
format_excÚput)rp   rn   Úsecond_callr{   rs   rr   s         r(   rj   rj   ª   s¯  € Ý	˜ iÑ	0Ô	0ð ,ð ,Ý	�DÐ	Ñ	Ô	ð	ð 	ð 	ñ 
Ô	ð	ð	Ø�T‘V”VˆFð ð 	2ØÔ'¨¬¸Ô(:Ô;¸qÒ@Ð@Ð@Ø3ñ AÔ@Ð@àÔ)¨$¬/¸!Ô*<Ô=ÀÒBÐBÐBØ2ñ CÔBÐBÐBð Ô)¨$¬/¸!Ô*<Ô=ÀÒBÐBÐBØ4ñ CÔBÐBàÔ'¨¬¸Ô(:Ô;¸qÒ@Ð@Ð@Ø1ñ AÔ@Ð@àˆGˆGøð	ÝÔ)Ñ+Ô+ˆFØˆGˆGˆGøøøØ×Ò˜' 6Ð*Ñ+Ô+Ð+ð1,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s)   ‘D­B'CÃDÃC.Ã,DÄDÄDc                   ó@   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ ZdS )	ÚBaseCacheTestNc                 óÞ  — t          d¦  «        | _        t          j                             d| j        ¦  «         t
          j                             | j        | j        dz   ¦  «        | _        t
          j                             | j        d¦  «        | _	        t          j        | j        | j        ¦  «         t          j        | j        t          j        t          j        z  ¦  «         d | _        d S )Nr   r   z.pyÚ__pycache__)r   r%   Úsysr   Úinsertr   r   ÚmodnameÚmodfilern   r"   ÚcopyÚusecases_filer!   ÚstatÚS_IREADÚS_IWRITEÚmaxDiffrY   s    r(   ÚsetUpzBaseCacheTest.setUpÌ   s¡   € Ý% lÑ3Ô3ˆŒÝŒ�Š˜˜4œ<Ñ(Ô(Ð(Ý”w—|’| D¤L°$´,ÀÑ2FÑGÔGˆŒÝœŸš d¤l°MÑBÔBˆŒÝŒ�DÔ&¨¬Ñ5Ô5Ð5Ý
Œ�”�tœ|­d¬mÑ;Ñ<Ô<Ð<ØˆŒˆˆr/   c                 ó˜   — t           j                             | j        d ¦  «         t           j                             | j        ¦  «         d S rX   )r‡   ÚmodulesÚpopr‰   r   Úremover%   rY   s    r(   ÚtearDownzBaseCacheTest.tearDownÕ   s6   € ÝŒ�Š˜œ dÑ+Ô+Ð+ÝŒ�Š˜œÑ%Ô%Ð%Ð%Ð%r/   c                 óF  — t           j                             | j        d ¦  «        }|�2|j        g}|D ]'}	 t          j        |¦  «         Œ# t          $ r Y Œ$w xY wt          | j        ¦  «        }|  	                    |j
                             d¦  «        | j        ¦  «         |S )NÚco)r‡   r“   r”   r‰   Ú
__cached__r   ÚunlinkÚFileNotFoundErrorr   rR   Ú__file__ÚrstriprŠ   )rS   ÚoldÚcachedÚfnÚmods        r(   Úimport_modulezBaseCacheTest.import_moduleÙ   s©   € õ Œk�oŠo˜dœl¨DÑ1Ô1ˆØˆ?à”nÐ%ˆFØð ð �ðÝ”I˜b‘M”M�M�MøÝ(ð ð ð Ø�Dðøøøå˜Tœ\Ñ*Ô*ˆØ×Ò˜œ×,Ò,¨TÑ2Ô2°D´LÑAÔAÐAØˆ
s   µA
Á

AÁAc                 ón   — 	 d„ t          j        | j        ¦  «        D ¦   «         S # t          $ r g cY S w xY w)Nc                 ó<   — g | ]}|                      d ¦  «        °|‘ŒS ))z.pycz.pyo)Úendswith)Ú.0r    s     r(   ú
<listcomp>z0BaseCacheTest.cache_contents.<locals>.<listcomp>ì   s9   € ð :ð :ð :˜2ØŸ;š;Ð'7Ñ8Ô8ð:�Bð :ð :ð :r/   )r   Úlistdirrn   r›   rY   s    r(   Úcache_contentszBaseCacheTest.cache_contentsê   sW   € ð	ð:ð :¥¤¨D¬NÑ!;Ô!;ð :ñ :ô :ð :øå ð 	ð 	ð 	ØˆIˆIˆIð	øøøs   ‚"% ¥4³4c                 óx   ‡ — t          ˆ fd„t          ‰                      ¦   «         ¦  «        D ¦   «         ¦  «        S )Nc              3   ó    •K  — | ]H}|t           j                             t           j                             ‰j        |¦  «        ¦  «        fV — ŒId S rX   )r   r   Úgetmtimer   rn   )r¦   r    rS   s     €r(   ú	<genexpr>z1BaseCacheTest.get_cache_mtimes.<locals>.<genexpr>ò   s^   øè è € ð =ð =Øð �œ×)Ò)­"¬'¯,ª,°t´~ÀrÑ*JÔ*JÑKÔKÐLð =ð =ð =ð =ð =ð =r/   )ÚdictÚsortedr©   rY   s   `r(   Úget_cache_mtimeszBaseCacheTest.get_cache_mtimesñ   sO   ø€ Ýð =ð =ð =ð =Ý$ T×%8Ò%8Ñ%:Ô%:Ñ;Ô;ð=ñ =ô =ñ =ô =ð 	=r/   c                 óv   — |                       ¦   «         }|                      t          |¦  «        ||¦  «         d S rX   )r©   rR   Úlen)rS   Únr-   s      r(   Úcheck_pycachezBaseCacheTest.check_pycacheõ   s7   € Ø×ÒÑ!Ô!ˆØ×Ò�˜Q™œ  AÑ&Ô&Ð&Ð&Ð&r/   c                 ó   — d S rX   r@   rY   s    r(   Ú
dummy_testzBaseCacheTest.dummy_testù   s   € Øˆr/   )re   ru   rv   rŒ   r‰   r‘   r–   r¢   r©   r°   r´   r¶   r@   r/   r(   r„   r„   Æ   s‡   € € € € € à€Mà€Gðð ð ð&ð &ð &ðð ð ð"ð ð ð=ð =ð =ð'ð 'ð 'ðð ð ð ð r/   r„   c                   óŠ   — e Zd Zej                             e¦  «        Zej                             ed¦  «        Z	dZ
d„ Zdd„ZdS )ÚDispatcherCacheUsecasesTestúcache_usecases.pyÚdispatcher_caching_test_fodderc           	      óz  — dt          | j        | j        ¬¦  «        z  }t          j        t
          j        d|gt          j        t          j        ¬¦  «        }|                     ¦   «         \  }}|j	        dk    rBt          d|j	        ›d|                     ¦   «         ›d|                     ¦   «         ›d	�¦  «        ‚d S )
Nzœif 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_test()
            ©r%   r‰   ú-c©ÚstdoutÚstderrr   úprocess failed with code z: 
stdout follows
z
stderr follows
ú
©r®   r%   r‰   Ú
subprocessÚPopenr‡   Ú
executableÚPIPEÚcommunicateÚ
returncodeÚAssertionErrorÚdecode©rS   ÚcodeÚpopenÚoutÚerrs        r(   Úrun_in_separate_processz3DispatcherCacheUsecasesTest.run_in_separate_process  sÄ   € ðõ ˜tœ|°T´\ÐBÑBÔBñCˆõ Ô ¥#¤.°$¸Ð!=Ý(2¬Å
ÄðQñ Qô Qˆà×$Ò$Ñ&Ô&‰ˆˆSØÔ˜qÒ Ð Ý �.ð Ô#Ð#Ð# S§Z¢Z¡\¤\ \ \°3·:²:±<´<°<°<ðAñô ð ð !Ð r/   Nc                 ó  — |j         }|                      t          |j                             ¦   «         ¦  «        ||j        ¦  «         |�B|                      t          |j                             ¦   «         ¦  «        ||j        ¦  «         d S d S rX   )ÚstatsrR   ÚsumÚ
cache_hitsÚvaluesÚcache_misses)rS   rT   ÚhitsÚmissesÚsts        r(   Ú
check_hitsz&DispatcherCacheUsecasesTest.check_hits  sˆ   € ØŒZˆØ×Ò�˜Rœ]×1Ò1Ñ3Ô3Ñ4Ô4°d¸B¼MÑJÔJÐJØÐØ×Ò�S ¤×!7Ò!7Ñ!9Ô!9Ñ:Ô:¸FØœ_ñ.ô .ð .ð .ð .ð Ðr/   rX   )re   ru   rv   r   r   Údirnamerœ   Úherer   rŒ   r‰   rÑ   rÛ   r@   r/   r(   r¸   r¸   ý   se   € € € € € ØŒ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð':Ñ;Ô;€MØ.€Gðð ð ð..ð .ð .ð .ð .ð .r/   r¸   c                   óz  — e 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e ej        ej        dk    d¦  «        d„ ¦   «         ¦   «         Ze ej        ej        dk    d¦  «        d„ ¦   «         ¦   «         Zd„ Z ej        edu pej        d         dk     d¦  «        d„ ¦   «         ZdS )Ú	TestCachec                 óŽ  — |                       d¦  «         |                      ¦   «         }|                       d¦  «         |j        }|                       |dd¦  «        d¦  «         |                       d¦  «         |                       |dd¦  «        d¦  «         |                       d¦  «         |                      |dd¦  «         |j        }|                       |dd¦  «        d¦  «         |                       d¦  «         |                       |dd¦  «        d¦  «         |                       d¦  «         |                      |dd¦  «         |j        } ||j        d¦  «        }|                      t          |¦  «        d	¦  «          ||j	        d¦  «        }|                      t          |¦  «        d	¦  «         |                       d
¦  «         |                      |dd¦  «         |j
        }|                       |dd¦  «        d¦  «         |                       |dd¦  «        d¦  «         |                      ¦   «          d S )Nr   r=   rH   é   ç      @ç      @é   r<   )r=   g     ÀE@é	   y              @y       @      @)r´   r¢   Úadd_usecaseÚassertPreciseEqualrÛ   Úadd_objmode_usecaseÚrecord_returnÚaligned_arrÚtupleÚ
packed_arrÚgenerated_usecaserÑ   )rS   r¡   r'   Úrecs       r(   Útest_cachingzTestCache.test_caching#  s8  € Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐàŒOˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐØ×Ò   # q¡	¤	¨3Ñ/Ô/Ð/Ø×Ò˜1ÑÔÐØ�Š˜˜1˜aÑ Ô Ð àÔ#ˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐØ×Ò   # q¡	¤	¨3Ñ/Ô/Ð/Ø×Ò˜1ÑÔÐØ�Š˜˜1˜aÑ Ô Ð àÔˆØˆa�” Ñ#Ô#ˆØ×Ò¥ c¡
¤
¨IÑ6Ô6Ð6Øˆa�” Ñ"Ô"ˆØ×Ò¥ c¡
¤
¨IÑ6Ô6Ð6Ø×Ò˜1ÑÔÐØ�Š˜˜1˜aÑ Ô Ð àÔ!ˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò   " a¡¤¨&Ñ1Ô1Ð1ð 	×$Ò$Ñ&Ô&Ð&Ð&Ð&r/   c                 óæ  — |                       d¦  «         |                      ¦   «         }|                       d¦  «         |j        }|                       |dd¦  «        d¦  «         |                       d¦  «         |                       |dt	          j        d¦  «        ¦  «        dt	          j        d¦  «        z   dz   ¦  «         |                       d¦  «         |                      |dd¦  «         d S )Nr   r=   rH   rá   r<   )r´   r¢   ræ   rç   ÚnpÚarangerÛ   ©rS   r¡   r'   s      r(   Útest_caching_nrt_prunedz!TestCache.test_caching_nrt_prunedE  sâ   € Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐàŒOˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐà×Ò   !¥R¤Y¨q¡\¤\Ñ 2Ô 2°A½¼	À!¹¼Ñ4DÀqÑ4HÑIÔIÐIØ×Ò˜1ÑÔÐØ�Š˜˜1˜aÑ Ô Ð Ð Ð r/   c                 ó¦  — |                       ¦   «         }|                      |                     dd¦  «        d¦  «         |                      d¦  «         |j        }|                       |dd¦  «        d¦  «         |                      d¦  «         |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |                      d¦  «         |j        }|                       |dd¦  «        d¦  «         |                      d¦  «         |                       |dd¦  «        d¦  «         |                      d¦  «         d S )NrH   r=   rá   é   ç      @râ   )r¢   rç   Úinnerr´   Úouter_uncachedÚouterró   s      r(   Útest_inner_then_outerzTestCache.test_inner_then_outerR  sG  € à× Ò Ñ"Ô"ˆØ×Ò §	¢	¨!¨Q¡¤°Ñ3Ô3Ð3Ø×Ò˜1ÑÔÐàÔˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØÔˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐàŒIˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐØ×Ò   # q¡	¤	¨3Ñ/Ô/Ð/Ø×Ò˜1ÑÔÐÐÐr/   c                 ó4  — |                       ¦   «         }|                      |                     dd¦  «        d¦  «         |                      d¦  «         |                      |                     dd¦  «        d¦  «         |                      d¦  «         |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |                      d¦  «         |                       |dd¦  «        d¦  «         |                      d¦  «         d S )NrH   r=   rö   rá   r÷   rã   rä   )r¢   rç   rú   r´   rù   rø   ró   s      r(   Útest_outer_then_innerzTestCache.test_outer_then_innerf  s	  € à× Ò Ñ"Ô"ˆØ×Ò §	¢	¨!¨Q¡¤°Ñ3Ô3Ð3Ø×Ò˜1ÑÔÐØ×Ò × 2Ò 2°1°aÑ 8Ô 8¸!Ñ<Ô<Ð<Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØŒIˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐØ×Ò   # q¡	¤	¨3Ñ/Ô/Ð/Ø×Ò˜1ÑÔÐÐÐr/   c                 ó¦   — |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |                      d¦  «         d S )Nr=   rH   rá   r   )r¢   Úadd_nocache_usecaserç   r´   ró   s      r(   Útest_no_cachingzTestCache.test_no_cachingt  sU   € Ø× Ò Ñ"Ô"ˆàÔ#ˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø×Ò˜1ÑÔÐÐÐr/   c                 óÔ  — |                       ¦   «         }t          j        d¬¦  «        5 }t          j        dt          ¦  «         |j        }|                       |d¦  «        d¦  «         |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |¦  «        d¦  «         |  
                    dt          |d         j        ¦  «        ¦  «         d S )	NT©ÚrecordÚalwaysrö   rá   r   r<   zBCannot cache compiled function "looplifted" as it uses lifted code)r¢   ÚwarningsÚcatch_warningsÚsimplefilterr   Ú
loopliftedrç   r´   rR   r²   ÚassertInÚstrÚmessage©rS   r¡   Úwr'   s       r(   Útest_loopliftedzTestCache.test_looplifted{  s  € à× Ò Ñ"Ô"ˆåÔ$¨DÐ1Ñ1Ô1ð 	"°QÝÔ! (­LÑ9Ô9Ð9à”ˆAØ×#Ò# A A a¡D¤D¨!Ñ,Ô,Ð,Ø×Ò˜qÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	×Ò�˜Q™œ Ñ#Ô#Ð#Ø�Šð /Ý03°A°a´D´LÑ0AÔ0Añ	Cô 	Cð 	Cð 	Cð 	Cs   ªABÂBÂBc                 óð  — |                       ¦   «         }t          j        d¬¦  «        5 }t          j        dt          ¦  «         |j        }t          j                              |¦   «         |j	        ¦  «         |  
                    d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |¦  «        d¦  «         |                      dt          |d         j        ¦  «        ¦  «         d S )NTr  r  r   r<   zICannot cache compiled function "use_big_array" as it uses dynamic globals)r¢   r  r  r  r   Úuse_big_arrayrñ   ÚtestingÚassert_equalÚbiggier´   rR   r²   r	  r
  r  r  s       r(   Útest_big_arrayzTestCache.test_big_arrayŠ  s!  € à× Ò Ñ"Ô"ˆÝÔ$¨DÐ1Ñ1Ô1ð 	"°QÝÔ! (­LÑ9Ô9Ð9àÔ!ˆAÝŒJ×#Ò# A A¡C¤C¨¬Ñ4Ô4Ð4Ø×Ò˜qÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	×Ò�˜Q™œ Ñ#Ô#Ð#Ø�Šð 3Ý47¸¸!¼¼Ñ4EÔ4Eñ	Gô 	Gð 	Gð 	Gð 	Gs   ªA$BÂBÂ!Bc                 ó$  — |                       ¦   «         }|j        |j        |j        fD ]æ}t	          j        d¬¦  «        5 }t	          j        dt          ¦  «         |                       |d¦  «        d¦  «         |  	                    d¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    t          |¦  «        d¦  «         |                      d                     |j        ¦  «        t          |d         j        ¦  «        ¦  «         Œçd S )NTr  r  g        r   r<   z#Cannot cache compiled function "{}")r¢   Ú	use_c_sinÚuse_c_sin_nest1Úuse_c_sin_nest2r  r  r  r   rç   r´   rR   r²   r	  Úformatre   r
  r  )rS   r¡   r'   r  s       r(   Útest_ctypeszTestCache.test_ctypes˜  sE  € ð × Ò Ñ"Ô"ˆà”- Ô!4°cÔ6IÐJð 	ð 	ˆAÝÔ(°Ð5Ñ5Ô5ð &¸ÝÔ% hµÑ=Ô=Ð=à×'Ò'¨¨¨#©¬°Ñ4Ô4Ð4Ø×"Ò" 1Ñ%Ô%Ð%ð	&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð ×Ò�S ™VœV QÑ'Ô'Ð'Ø�MŠMØ5×<Ò<¸Q¼ZÑHÔHÝ�A�a”D”LÑ!Ô!ñô ð ð ð	ð 	s   Á ABÂB	Â"B	c                 ó  — |                       ¦   «         }t          j        ¦   «         5  t          j        dt          ¦  «         |j        }|                       |d¦  «        d¦  «         |j        }|                       |d¦  «        d¦  «         |j        }|                       |d¦  «        d¦  «         |j	        }|                       |d¦  «        d¦  «         |  
                    d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚerrorrH   rá   é   é
   é   rä   )r¢   r  r  r  r   Úclosure1rç   Úclosure2Úclosure3Úclosure4r´   ró   s      r(   Útest_closurezTestCache.test_closureª  sA  € Ø× Ò Ñ"Ô"ˆåÔ$Ñ&Ô&ð 	"ð 	"ÝÔ! '­<Ñ8Ô8Ð8à”ˆAØ×#Ò# A A a¡D¤D¨!Ñ,Ô,Ð,Ø”ˆAØ×#Ò# A A a¡D¤D¨!Ñ,Ô,Ð,Ø”ˆAØ×#Ò# A A a¡D¤D¨"Ñ-Ô-Ð-Ø”ˆAØ×#Ò# A A a¡D¤D¨"Ñ-Ô-Ð-Ø×Ò˜qÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ¨CC=Ã=DÄDc                 óŽ  — |                       ¦   «         }|j        }|                       ||j        d¦  «        d¦  «         |                       ||j        d¦  «        d¦  «         |                       ||j        d¦  «        d¦  «         |                       ||j        d¦  «        d¦  «         |                      d¦  «         d S )Nr<   r  éd   r=   é   é   )r¢   Úfirst_class_function_usecaserR   Úfirst_class_function_mulÚfirst_class_function_addr´   ró   s      r(   Útest_first_class_functionz#TestCache.test_first_class_functionº  sË   € Ø× Ò Ñ"Ô"ˆØÔ,ˆØ×Ò˜˜˜3Ô7¸Ñ;Ô;¸QÑ?Ô?Ð?Ø×Ò˜˜˜3Ô7¸Ñ<Ô<¸cÑBÔBÐBØ×Ò˜˜˜3Ô7¸Ñ;Ô;¸QÑ?Ô?Ð?Ø×Ò˜˜˜3Ô7¸Ñ<Ô<¸bÑAÔAÐAð 	×Ò˜1ÑÔÐÐÐr/   c                 ó  — |                       ¦   «         }|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     |j        d¦  «         |                     |j        d¦  «         |                     dd¦  «         |  	                    ¦   «         }|  
                    |j        dd¦  «         |                       ¦   «         }|                      ||¦  «         |j        } |dd¦  «         |  
                    |dd¦  «          |dd¦  «         |  
                    |dd¦  «         |j        } |dd¦  «         |  
                    |dd¦  «         |                      |  	                    ¦   «         |¦  «         |                      ¦   «          |                      |  	                    ¦   «         |¦  «         d S )Nr=   rH   râ   r÷   r   r<   )r¢   ræ   rè   rù   rú   ré   rì   rê   rí   r°   rÛ   ÚassertIsNotrR   rÑ   )rS   r¡   ÚmtimesÚmod2r'   s        r(   Útest_cache_reusezTestCache.test_cache_reuseÅ  së  € Ø× Ò Ñ"Ô"ˆØ�Š˜˜1ÑÔÐØ�Š˜˜SÑ!Ô!Ð!Ø×Ò  1Ñ%Ô%Ð%Ø×Ò˜1˜aÑ Ô Ð Ø�	Š	�!�Q‰ŒˆØ×Ò˜#œ.¨!Ñ,Ô,Ð,Ø×Ò˜#œ/¨1Ñ-Ô-Ð-Ø×Ò˜a Ñ#Ô#Ð#Ø×&Ò&Ñ(Ô(ˆà�Š˜œ¨¨AÑ.Ô.Ð.à×!Ò!Ñ#Ô#ˆØ×Ò˜˜dÑ#Ô#Ð#ØÔˆØ	ˆˆ!ˆQ‰ŒˆØ�Š˜˜1˜aÑ Ô Ð Ø	ˆˆ#ˆs‰ŒˆØ�Š˜˜1˜aÑ Ô Ð ØÔ$ˆØ	ˆˆ!ˆQ‰ŒˆØ�Š˜˜1˜aÑ Ô Ð ð 	×Ò˜×.Ò.Ñ0Ô0°&Ñ9Ô9Ð9à×$Ò$Ñ&Ô&Ð&Ø×Ò˜×.Ò.Ñ0Ô0°&Ñ9Ô9Ð9Ð9Ð9r/   c                 óÄ  — |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         t          | j        d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |j        }|                       |dd¦  «        d¦  «         d S )Nr=   rH   rá   r>   z
Z = 10
é   )r¢   ræ   rç   r   rŠ   r    rè   ró   s      r(   Útest_cache_invalidatezTestCache.test_cache_invalidateä  s  € Ø× Ò Ñ"Ô"ˆØŒOˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+õ �$”, Ñ$Ô$ð 	"¨Ø�GŠG�LÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð × Ò Ñ"Ô"ˆØŒOˆØ×Ò   ! Q¡¤¨Ñ,Ô,Ð,ØÔ#ˆØ×Ò   ! Q¡¤¨Ñ,Ô,Ð,Ð,Ð,s   ÁA3Á3A7Á:A7c                 óÞ  — |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |                       ¦   «         }|j        }d|_        |                       |dd¦  «        d¦  «         |                     ¦   «          |                       |dd¦  «        d¦  «         |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         d S )Nr=   rH   rá   r  r3  )r¢   ræ   rç   ÚZÚ	recompileró   s      r(   Útest_recompilezTestCache.test_recompileó  sæ   € à× Ò Ñ"Ô"ˆØŒOˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+à× Ò Ñ"Ô"ˆØŒOˆØˆŒØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø	�Š‰ŒˆØ×Ò   ! Q¡¤¨Ñ,Ô,Ð,ð × Ò Ñ"Ô"ˆØŒOˆØ×Ò   ! Q¡¤¨Ñ,Ô,Ð,Ð,Ð,r/   c                 óÆ   — |                       ¦   «         }|j        }|                       |d¦  «        d¦  «         |j        }|                       |d¦  «        d¦  «         d S )Nr=   rö   r  )r¢   Úrenamed_function1rç   Úrenamed_function2ró   s      r(   Útest_same_nameszTestCache.test_same_names  se   € à× Ò Ñ"Ô"ˆØÔ!ˆØ×Ò   !¡¤ aÑ(Ô(Ð(ØÔ!ˆØ×Ò   !¡¤ aÑ(Ô(Ð(Ð(Ð(r/   c                 óˆ  — ddl m} |j        }t          ddd¦  «        }	 ||_        t	          j        |¦  «        }t          j        ||¦  «        }|                      |¦  «         dt          _
        t          j        ||¦  «        }|                      |t          ¦  «         ||_        t          `
d S # ||_        t          `
w xY w)Nr<   )ÚfunctionÚpassztests/dummy_module.pyÚexecT)Údummy_moduler>  Ú__code__ÚcompileÚinspectÚgetfiler   Úfrom_functionÚassertIsNoner‡   ÚfrozenÚassertIsInstance)rS   r>  Úold_codeÚcode_objÚsourceÚlocators         r(   Útest_frozenzTestCache.test_frozen  sÏ   € Ø*Ð*Ð*Ð*Ð*Ð*ØÔ$ˆÝ˜6Ð#:¸FÑCÔCˆð	Ø (ˆHÔå”_ XÑ.Ô.ˆFõ ,Ô9¸(ÀFÑKÔKˆGØ×Ò˜gÑ&Ô&Ð&à�CŒJõ ,Ô9¸(ÀFÑKÔKˆGØ×!Ò! 'Õ+@ÑAÔAÐAð !)ˆHÔÝ�
�
�
øð !)ˆHÔÝ�
ˆNˆNˆNˆNs    BB1 Â1Cc                 óÐ  — |                       ¦   «         }|j        }|                      t          j        |j        j        d¬¦  «         |                       |dd¦  «        d¦  «         |                      |dd¦  «         |                       ¦   «         }|j        }|                       |dd¦  «        d¦  «         |                      |dd¦  «         |  	                    d¦  «         dS )	zy
        With a disabled __pycache__, test there is a working fallback
        (e.g. on the user-wide cache dir)
        T)Úignore_errorsr=   rH   rá   r   r<   N)
r¢   ræ   Ú
addCleanupr"   r#   rÓ   Ú
cache_pathrç   rÛ   r´   )rS   r¡   r'   r0  s       r(   Ú_test_pycache_fallbackz TestCache._test_pycache_fallback$  sà   € ð
 × Ò Ñ"Ô"ˆØŒOˆð 	�Š�œ q¤wÔ'9ÈˆÑNÔNÐNà×Ò   ! Q¡¤¨Ñ+Ô+Ð+à�Š˜˜1˜aÑ Ô Ð ð ×!Ò!Ñ#Ô#ˆØÔˆØ×Ò   ! Q¡¤¨Ñ+Ô+Ð+Ø�Š˜˜1˜aÑ Ô Ð ð 	×Ò˜1ÑÔÐÐÐr/   Úntz3cannot easily make a directory read-only on Windowsc                 óê   — t          j        | j        ¦  «        j        }t          j        | j        d¦  «         |                      t           j        | j        |¦  «         |                      ¦   «          d S )Nr   )r   r�   r%   Úst_moder!   rQ  rS  )rS   Ú	old_permss     r(   Útest_non_creatable_pycachez$TestCache.test_non_creatable_pycache=  s^   € õ
 ”G˜DœLÑ)Ô)Ô1ˆ	Ý
Œ�”˜uÑ%Ô%Ð%Ø�Š�œ $¤,°	Ñ:Ô:Ð:à×#Ò#Ñ%Ô%Ð%Ð%Ð%r/   c                 ó>  — t           j                             | j        d¦  «        }t          j        |¦  «         t          j        |¦  «        j        }t          j        |d¦  «         |                      t           j        ||¦  «         |  	                    ¦   «          d S )Nr†   r   )
r   r   r   r%   r   r�   rV  r!   rQ  rS  )rS   ÚpycacherW  s      r(   Útest_non_writable_pycachez#TestCache.test_non_writable_pycacheH  s   € õ
 ”'—,’,˜tœ|¨]Ñ;Ô;ˆÝ
Œ�ÑÔÐÝ”G˜GÑ$Ô$Ô,ˆ	Ý
Œ�˜%Ñ Ô Ð Ø�Š�œ '¨9Ñ5Ô5Ð5à×#Ò#Ñ%Ô%Ð%Ð%Ð%r/   c                 ót  ‡ ‡‡— t           j        ddgŠ‰g d¢z  Š	 t          j        ‰dgz   ¦  «        }n9# t          j        $ r'}‰                      d|j        z  ¦  «         Y d }~nd }~ww xY w|                     ¦   «                              ¦   «         }t          j
                             ‰ j        d¦  «        Št          ‰d¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   ˆˆˆ fd	„} |¦   «           |¦   «         }‰                      d
|                     ¦   «         ¦  «         d S )Nú-mÚIPython©z--quietz--quickz--no-bannerz--colors=NoColorú	--versionú%ipython not available: return code %dzipython_cache_usecase.txtr  á}  
                import os
                import sys

                from numba import jit

                # IPython 5 does not support multiline input if stdin isn't
                # a tty (https://github.com/ipython/ipython/issues/9752)
                f = jit(cache=True)(lambda: 42)

                res = f()
                # IPython writes on stdout, so use stderr instead
                sys.stderr.write(u"cache hits = %d\n" % f.stats.cache_hits[()])

                # IPython hijacks sys.exit(), bypass it
                sys.stdout.flush()
                sys.stderr.flush()
                os._exit(res)
                c                  ó:  •— t          ‰d¦  «        5 } t          j        ‰| t          j        t          j        d¬¦  «        }|                     ¦   «         \  }}|j        dk    r ‰                     d|j        ||fz  ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S ©NÚrbT)Ústdinr¿   rÀ   Úuniversal_newlinesé*   z6unexpected return code %d
-- stdout:
%s
-- stderr:
%s
©r   rÄ   rÅ   rÇ   rÈ   rÉ   rm   ©rf  ÚprÏ   rÐ   Úbase_cmdÚinputfnrS   s       €€€r(   Úexecute_with_inputz2TestCache.test_ipython.<locals>.execute_with_inputv  óï   ø€ å�g˜tÑ$Ô$ð ¨ÝÔ$ X°UÝ,6¬OÝ,6¬OØ8<ð>ñ >ô >�ð Ÿ=š=™?œ?‘��SØ”< 2Ò%Ð%Ø—I’Ið 1ð "#¤¨s°CÐ 8ñ9ñ :ô :ð :ð ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ’A1BÂBÂBúcache hits = 1)r‡   rÆ   rÄ   Úcheck_outputÚCalledProcessErrorÚskipTestrÉ   ÚstriprË   r   r   r   r%   r   r    r	  )rS   ÚverÚer'   rn  rÐ   rl  rm  s   `     @@r(   Útest_ipythonzTestCache.test_ipythonU  sµ  øøø€ å”N D¨)Ð4ˆØÐMÐMÐMÑMˆð	*ÝÔ)¨(°k°]Ñ*BÑCÔCˆCˆCøÝÔ,ð 	*ð 	*ð 	*Ø�MŠMÐAØœLñ)ñ *ô *ð *ð *ð *ð *ð *ð *øøøøð	*øøøð �iŠi‰kŒk× Ò Ñ"Ô"ˆå”'—,’,˜tœ|Ð-HÑIÔIˆÝ�'˜3ÑÔð 	 1Ø�GŠGð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð*	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ÐÑÔÐà Ð Ñ"Ô"ˆØ�ŠÐ&¨¯	ª	©¬Ñ4Ô4Ð4Ð4Ð4s'   ›4 ´A*ÁA%Á%A*ÃC*Ã*C.Ã1C.Nr   rá   zrequires ipykernel >= 6c                 ó^  ‡ ‡‡— t           j        ddgŠ‰g d¢z  Š	 t          j        ‰dgz   ¦  «        }n9# t          j        $ r'}‰                      d|j        z  ¦  «         Y d }~nd }~ww xY w|                     ¦   «                              ¦   «         }ddl	m
} |                     ¦   «         Št          ‰d¦  «        5 }|                     d	¦  «         d d d ¦  «         n# 1 swxY w Y   ˆˆˆ fd
„} |¦   «           |¦   «         }‰                      d|                     ¦   «         ¦  «         d S )Nr]  r^  r_  r`  ra  r   )Úcompilerr  rb  c                  ó:  •— t          ‰d¦  «        5 } t          j        ‰| t          j        t          j        d¬¦  «        }|                     ¦   «         \  }}|j        dk    r ‰                     d|j        ||fz  ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S rd  ri  rj  s       €€€r(   rn  z4TestCache.test_ipykernel.<locals>.execute_with_input¯  ro  rp  rq  )r‡   rÆ   rÄ   rr  rs  rt  rÉ   ru  rË   Ú	ipykernelrz  Úget_tmp_directoryr   r    r	  )	rS   rv  rw  rz  r'   rn  rÐ   rl  rm  s	   `      @@r(   Útest_ipykernelzTestCache.test_ipykernelŠ  sÂ  øøø€ õ
 ”N D¨)Ð4ˆØÐMÐMÐMÑMˆð	*ÝÔ)¨(°k°]Ñ*BÑCÔCˆCˆCøÝÔ,ð 	*ð 	*ð 	*Ø�MŠMÐAØœLñ)ñ *ô *ð *ð *ð *ð *ð *ð *øøøøð	*øøøð �iŠi‰kŒk× Ò Ñ"Ô"ˆà&Ð&Ð&Ð&Ð&Ð&Ø×,Ò,Ñ.Ô.ˆÝ�'˜3ÑÔð 	 1Ø�GŠGð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð*	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ÐÑÔÐà Ð Ñ"Ô"ˆØ�ŠÐ&¨¯	ª	©¬Ñ4Ô4Ð4Ð4Ð4s'   ›4 ´A*ÁA%Á%A*Â=CÃC#Ã&C#)re   ru   rv   rï   rô   rû   rý   r   r  r  r  r$  r,  r1  r4  r8  r<  rN  rS  Úskip_bad_accessÚunittestÚskipIfr   ÚnamerX  r[  rx  r|  Úversion_infor~  r@   r/   r(   rß   rß   !  sí  € € € € € ð 'ð  'ð  'ðD!ð !ð !ðð ð ð(ð ð ðð ð ðCð Cð CðGð Gð Gðð ð ð$"ð "ð "ð 	ð 	ð 	ð:ð :ð :ð>-ð -ð -ð-ð -ð -ð$)ð )ð )ðð ð ð.ð ð ð2 Ø€X„_�R”W ’_ØJñLô Lð&ð &ñLô Lñ „_ð&ð Ø€X„_�R”W ’_ØJñLô Lð&ð &ñLô Lñ „_ð&ð35ð 35ð 35ðj €X„_�i 4Ð'ÐK¨YÔ-CÀAÔ-FÈÒ-JØ.ñ0ô 0ð55ð 55ñ0ô 0ð55ð 55ð 55r/   rß   c                   ó.   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zˆ xZS )ÚTestSequentialParForsCachec                 ón   •— t          t          | ¦  «                             ¦   «          dt          _        d S )NT)Úsuperr…  r‘   r   Úsequential_parfor_lowering©rS   rd   s    €r(   r‘   z TestSequentialParForsCache.setUpÆ  s.   ø€ ÝÕ(¨$Ñ/Ô/×5Ò5Ñ7Ô7Ð7à,0�Ô)Ð)Ð)r/   c                 ón   •— t          t          | ¦  «                             ¦   «          dt          _        d S )NF)r‡  r…  r–   r   rˆ  r‰  s    €r(   r–   z#TestSequentialParForsCache.tearDownË  s.   ø€ ÝÕ(¨$Ñ/Ô/×8Ò8Ñ:Ô:Ð:à,1�Ô)Ð)Ð)r/   c                 óv  — |                       ¦   «         }|                      d¦  «         |j        }t          j        d¦  «        }|                       ||¦  «        ||z  |z   ¦  «         d„ |j                             ¦   «         D ¦   «         }|                      |dg¦  «         |                      d¦  «         d S )Nr   r  c                 ó&   — g | ]}|j         j        ‘ŒS r@   )ÚlibraryÚhas_dynamic_globals)r¦   Úcress     r(   r§   z;TestSequentialParForsCache.test_caching.<locals>.<listcomp>Ö  s-   € ð =ð =ð =Ø#ð  œ<Ô;ð =ð =ð =r/   Fr=   )	r¢   r´   Úparfor_usecaserñ   Úonesrç   Ú	overloadsrÖ   rR   )rS   r¡   r'   ÚaryÚdynamic_globalss        r(   rï   z'TestSequentialParForsCache.test_cachingÐ  sÀ   € Ø× Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐØÔˆÝŒg�b‰kŒkˆØ×Ò   #¡¤¨¨c©	°C©Ñ8Ô8Ð8ð=ð =Ø'(¤{×'9Ò'9Ñ';Ô';ð=ñ =ô =ˆà×Ò˜¨5¨'Ñ2Ô2Ð2Ø×Ò˜1ÑÔÐÐÐr/   )re   ru   rv   r‘   r–   rï   Ú__classcell__)rd   s   @r(   r…  r…  Ä  s`   ø€ € € € € ð1ð 1ð 1ð 1ð 1ð
2ð 2ð 2ð 2ð 2ð
	ð 	ð 	ð 	ð 	ð 	ð 	r/   r…  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTestCacheWithCpuSettingFc                 óÜ   — d}|                       ¦   «                              ¦   «         D ]*\  }}||v r!|                      |||         ¦  «         |dz  }Œ+|                      |dd¬¦  «         d S )Nr   r<   znothing to compare©Úmsg)r°   ÚitemsÚassertGreaterEqualÚassertGreater)rS   Ú
mtimes_oldÚmatch_countÚkrI   s        r(   Úcheck_later_mtimesz*TestCacheWithCpuSetting.check_later_mtimesà  sŽ   € ØˆØ×)Ò)Ñ+Ô+×1Ò1Ñ3Ô3ð 	!ð 	!‰DˆAˆqØ�JˆˆØ×'Ò'¨¨:°a¬=Ñ9Ô9Ð9Ø˜qÑ �øØ×Ò˜;¨Ø3ð 	ñ 	5ô 	5ð 	5ð 	5ð 	5r/   c                 ód  — |                       d¦  «         |                      ¦   «         }|                     ¦   «          t          |                      ¦   «         ¦  «        }|                      ¦   «         }t          dd¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         |  	                    t          |                      ¦   «         ¦  «        |¦  «         |j
        j        }|j        }|                     ¦   «         }|                      t          |¦  «        d¦  «         |                     ¦   «         \  }}|d         d         t!          j        ¦   «         k    r||}
}	n||}
}	|                      |	d         d         t!          j        ¦   «         ¦  «         |                      |	d         d         t%          j        ¦   «         ¦  «         |                      |
d         d         d¦  «         |                      |
d         d         d¦  «         d S )Nr   ÚNUMBA_CPU_NAMEÚgenericr=   r<   Ú )r´   r¢   Ú	self_testr²   r©   r°   r   rÑ   r¡  r�  ræ   Ú_cacheÚ_cache_fileÚ_load_indexrR   ÚkeysÚllÚget_host_cpu_namer   Úget_host_cpu_features)rS   r¡   Ú
cache_sizer/  r3   Ú
cache_fileÚcache_indexÚkey_aÚkey_bÚkey_hostÚkey_generics              r(   Útest_user_set_cpu_namez.TestCacheWithCpuSetting.test_user_set_cpu_nameé  s.  € Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØ�Š‰ŒˆÝ˜×,Ò,Ñ.Ô.Ñ/Ô/ˆ
à×&Ò&Ñ(Ô(ˆå Ð!1°9Ñ=Ô=ð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	×Ò Ñ'Ô'Ð'Ø×Ò�3˜t×2Ò2Ñ4Ô4Ñ5Ô5°zÑBÔBÐBà”Ô&ˆØÔ&ˆ
Ø ×,Ò,Ñ.Ô.ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-Ø$×)Ò)Ñ+Ô+‰ˆ�Ø�Œ8�AŒ;�"Ô.Ñ0Ô0Ò0Ð0Ø$)¨5�kˆHˆHà$)¨5�kˆHØ×Ò˜ !œ Qœ­Ô)=Ñ)?Ô)?Ñ@Ô@Ð@Ø×Ò˜ !œ Qœ­Ô)FÑ)HÔ)HÑIÔIÐIØ×Ò˜ Qœ¨Ô*¨IÑ6Ô6Ð6Ø×Ò˜ Qœ¨Ô*¨BÑ/Ô/Ð/Ð/Ð/s   ÂB$Â$B(Â+B(c                 ó˜  — |                       d¦  «         |                      ¦   «         }|                     ¦   «          t          |                      ¦   «         ¦  «        }|                      ¦   «         }d}t          j        ¦   «         }|                      ||¦  «         t          d|¦  «        5  |  
                    ¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         |                      t          |                      ¦   «         ¦  «        |¦  «         |j        j        }|j        }|                     ¦   «         }|                      t          |¦  «        d¦  «         |                     ¦   «         \  }	}
|	d         d         |k    r|	|
}}n|
|	}}|                      |d         d         t'          j        ¦   «         ¦  «         |                      |d         d         |¦  «         |                      |d         d         t'          j        ¦   «         ¦  «         |                      |d         d         |¦  «         d S )Nr   z	-sse;-avxÚNUMBA_CPU_FEATURESr=   r<   )r´   r¢   r¦  r²   r©   r°   r   r­  ÚassertNotEqualr   rÑ   r¡  r�  ræ   r§  r¨  r©  rR   rª  r«  r¬  )rS   r¡   r®  r/  Úmy_cpu_featuresÚsystem_featuresr3   r¯  r°  r±  r²  r³  r´  s                r(   Útest_user_set_cpu_featuresz2TestCacheWithCpuSetting.test_user_set_cpu_features  sL  € Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØ�Š‰ŒˆÝ˜×,Ò,Ñ.Ô.Ñ/Ô/ˆ
à×&Ò&Ñ(Ô(ˆà%ˆå!Ô7Ñ9Ô9ˆà×Ò˜O¨_Ñ=Ô=Ð=Ý Ð!5°ÑGÔGð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+à×Ò Ñ'Ô'Ð'Ø×Ò�3˜t×2Ò2Ñ4Ô4Ñ5Ô5°zÑBÔBÐBà”Ô&ˆØÔ&ˆ
Ø ×,Ò,Ñ.Ô.ˆØ×Ò�˜[Ñ)Ô)¨1Ñ-Ô-Ð-Ø$×)Ò)Ñ+Ô+‰ˆ�à�Œ8�AŒ;˜/Ò)Ð)Ø$)¨5�kˆHˆHà$)¨5�kˆHà×Ò˜ !œ Qœ­Ô)=Ñ)?Ô)?Ñ@Ô@Ð@Ø×Ò˜ !œ Qœ¨Ñ9Ô9Ð9Ø×Ò˜ Qœ¨Ô*­BÔ,@Ñ,BÔ,BÑCÔCÐCØ×Ò˜ Qœ¨Ô*¨OÑ<Ô<Ð<Ð<Ð<s   Â.CÃCÃCN)re   ru   rv   Ú_numba_parallel_test_r¡  rµ  r»  r@   r/   r(   r—  r—  Ü  sG   € € € € € à!Ðð5ð 5ð 5ð0ð 0ð 0ð8 =ð  =ð  =ð  =ð  =r/   r—  c                   ó†   — e Zd ZdZej                             e¦  «        Zej         	                    ed¦  «        Z
dZd„ ZdS )ÚTestMultiprocessCacheFr¹   rº   c                 óÀ  — |                       ¦   «         }|j        }d}	 t          j        d¦  «        }n# t          $ r
 t          }Y nw xY w|                     |¦  «        }	 t          |                     |t          |¦  «        ¦  «        ¦  «        }| 	                    ¦   «          n# | 	                    ¦   «          w xY w|  
                    |||dz
  z  dz  ¦  «         d S )NrH   Úspawnr<   r=   )r¢   Úsimple_usecase_callerrf   rg   ÚAttributeErrorÚPoolrÔ   ÚimapÚrangeÚcloserR   )rS   r¡   r'   r³   ro   ÚpoolrU   s          r(   Útest_multiprocessingz*TestMultiprocessCache.test_multiprocessing2  sÜ   € à× Ò Ñ"Ô"ˆð Ô%ˆØˆð	"Ý!Ô-¨gÑ6Ô6ˆCˆCøÝð 	"ð 	"ð 	"Ý!ˆCˆCˆCð	"øøøà�xŠx˜‰{Œ{ˆð	Ý�d—i’i ¥5¨¡8¤8Ñ,Ô,Ñ-Ô-ˆCà�JŠJ‰LŒLˆLˆLøˆD�JŠJ‰LŒLˆLˆLøøøØ×Ò˜˜a 1 q¡5™k¨QÑ.Ñ/Ô/Ð/Ð/Ð/s   Ÿ4 ´AÁAÁ!0B& Â&B<N)re   ru   rv   r¼  r   r   rÜ   rœ   rÝ   r   rŒ   r‰   rÈ  r@   r/   r(   r¾  r¾  (  sY   € € € € € ð "ÐàŒ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð':Ñ;Ô;€MØ.€Gð0ð 0ð 0ð 0ð 0r/   r¾  c                   óî   — e Zd ZdZej                             e¦  «        Zej         	                    ed¦  «        Z
dZdZdZd„ Zd„ Zd„ Zd	„ Zd
„ Z ej         eed¦  «        d¦  «        d„ ¦   «         ZdS )ÚTestCacheFileCollisionFr¹   Úcaching_file_loc_fodderzD
from numba import njit
@njit(cache=True)
def bar():
    return 123
zD
from numba import njit
@njit(cache=True)
def bar():
    return 321
c                 ó  — t          d¦  «        | _        t          j                             d| j        ¦  «         d| _        |                      | j        t          j        ¦  «         | j        | _        d 	                    | j        dg¦  «        | _
        t          j         	                    | j        | j        ¦  «        }t          j        |¦  «         t          t          j         	                    |d¦  «        d¦  «        5 }t          | j        |¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          j         	                    |d	¦  «        d¦  «        5 }t          | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NÚtest_cache_file_locr   Úmodule_name_that_is_unlikelyú.Úfooz__init__.pyr  ©Úfilezfoo.py)r   r%   r‡   r   rˆ   r‰   ÚassertNotInr“   Úmodname_bar1r   Úmodname_bar2r   r   r   ÚprintÚsource_text_1Úsource_text_2)rS   ÚfoomodÚfouts      r(   r‘   zTestCacheFileCollision.setUpY  s¸  € Ý%Ð&;Ñ<Ô<ˆŒÝŒ�Š˜˜4œ<Ñ(Ô(Ð(Ø5ˆŒØ×Ò˜œ¥s¤{Ñ3Ô3Ð3Ø œLˆÔØŸHšH d¤l°EÐ%:Ñ;Ô;ˆÔÝ”—’˜dœl¨D¬LÑ9Ô9ˆÝ
Œ�ÑÔÐÝ•"”'—,’,˜v }Ñ5Ô5°sÑ;Ô;ð 	1¸tÝ�$Ô$¨4Ð0Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1å•"”'—,’,˜v xÑ0Ô0°#Ñ6Ô6ð 	1¸$Ý�$Ô$¨4Ð0Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s$   Ã?D"Ä"D&Ä)D&ÅE?Å?FÆFc                 óâ   — t           j                             | j        d ¦  «         t           j                             | j        d ¦  «         t           j                             | j        ¦  «         d S rX   )r‡   r“   r”   rÔ  rÕ  r   r•   r%   rY   s    r(   r–   zTestCacheFileCollision.tearDowng  sP   € ÝŒ�Š˜Ô)¨4Ñ0Ô0Ð0ÝŒ�Š˜Ô)¨4Ñ0Ô0Ð0ÝŒ�Š˜œÑ%Ô%Ð%Ð%Ð%r/   c                 ó4   — t          | j        ¦  «        j        S rX   )r   rÔ  ÚbarrY   s    r(   Úimport_bar1z"TestCacheFileCollision.import_bar1l  ó   € Ý˜dÔ/Ñ0Ô0Ô4Ð4r/   c                 ó4   — t          | j        ¦  «        j        S rX   )r   rÕ  rÝ  rY   s    r(   Úimport_bar2z"TestCacheFileCollision.import_bar2o  rß  r/   c                 óf  — |                       ¦   «         }|                      ¦   «         }|j        j        j        }|j        j        j        }|                      ||¦  «         |                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         d S )Nz__init__.bar-3.pyzfoo.bar-3.py)rÞ  rá  r§  r¨  Ú_index_namer¸  Ú
assertTrueÚ
startswith)rS   Úbar1Úbar2Úidxname1Úidxname2s        r(   Útest_file_locationz)TestCacheFileCollision.test_file_locationr  s›   € Ø×ÒÑ!Ô!ˆØ×ÒÑ!Ô!ˆà”;Ô*Ô6ˆØ”;Ô*Ô6ˆØ×Ò˜H hÑ/Ô/Ð/Ø�Š˜×+Ò+Ð,?Ñ@Ô@ÑAÔAÐAØ�Š˜×+Ò+¨NÑ;Ô;Ñ<Ô<Ð<Ð<Ð<r/   rg   z)Test requires multiprocessing.get_contextc                 óê  — |                       ¦   «         }|                      ¦   «         }t          ¦   «         5 } |¦   «         }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         t          ¦   «         5 } |¦   «         }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }|                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      ||¦  «         	 t          j        d¦  «        }n# t          $ r t          d¦  «         Y nw xY w|                     ¦   «         }|                     t          || j        | j        | j        f¬	¦  «        }	|	                     ¦   «          |                     ¦   «         }
|                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|	                     ¦   «          |                      ||¦  «         |                      ||¦  «         |                      |
                     d¦  «        d¦  «         |                      |
                     d¦  «        d¦  «         |                      |
                     d¦  «        d¦  «         |                      |
                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        d¦  «         d S )
Nzindex savedr<   z
data savedzindex loadedr   zdata loadedrÀ  zmissing spawn contextr`   )rÞ  rá  r
   ÚgetvaluerR   Úcountr¸  rf   rg   Ú
ValueErrorrÖ  rh   ri   Úcache_file_collision_testerr%   rÔ  rÕ  rk   rl   r   )rS   ræ  rç  ÚbufÚres1ÚcachelogÚres2ÚmpÚqrq   Úlog1Úgot1Úlog2Úgot2s                 r(   Útest_no_collisionz(TestCacheFileCollision.test_no_collision|  s[  € ð ×ÒÑ!Ô!ˆØ×ÒÑ!Ô!ˆÝÑ Ô ð 	 CØ�4‘6”6ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—<’<‘>”>ˆà×Ò˜Ÿš¨Ñ6Ô6¸Ñ:Ô:Ð:Ø×Ò˜Ÿš¨Ñ5Ô5°qÑ9Ô9Ð9Ø×Ò˜Ÿš¨Ñ7Ô7¸Ñ;Ô;Ð;Ø×Ò˜Ÿš¨Ñ6Ô6¸Ñ:Ô:Ð:ÝÑ Ô ð 	 CØ�4‘6”6ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à—<’<‘>”>ˆà×Ò˜Ÿš¨Ñ6Ô6¸Ñ:Ô:Ð:Ø×Ò˜Ÿš¨Ñ5Ô5°qÑ9Ô9Ð9Ø×Ò˜Ÿš¨Ñ7Ô7¸Ñ;Ô;Ð;Ø×Ò˜Ÿš¨Ñ6Ô6¸Ñ:Ô:Ð:Ø×Ò˜D $Ñ'Ô'Ð'ð	+õ !Ô,¨WÑ5Ô5ˆBˆBøÝð 	+ð 	+ð 	+ÝÐ)Ñ*Ô*Ð*Ð*Ð*ð	+øøøð �HŠH‰JŒJˆà�zŠzÕ!<Ø ! 4¤<Ø $Ô 1Ø $Ô 1ð 3ð ñ 4ô 4ˆð 	�
Š
‰Œˆà�uŠu‰wŒwˆØ�uŠu‰wŒwˆØ�uŠu‰wŒwˆØ�uŠu‰wŒwˆØ�	Š	‰Œˆð 	×Ò˜˜tÑ$Ô$Ð$Ø×Ò˜˜tÑ$Ô$Ð$ð 	×Ò˜Ÿš MÑ2Ô2°AÑ6Ô6Ð6Ø×Ò˜Ÿš LÑ1Ô1°1Ñ5Ô5Ð5Ø×Ò˜Ÿš NÑ3Ô3°QÑ7Ô7Ð7Ø×Ò˜Ÿš MÑ2Ô2°AÑ6Ô6Ð6ð 	×Ò˜Ÿš MÑ2Ô2°AÑ6Ô6Ð6Ø×Ò˜Ÿš LÑ1Ô1°1Ñ5Ô5Ð5Ø×Ò˜Ÿš NÑ3Ô3°QÑ7Ô7Ð7Ø×Ò˜Ÿš MÑ2Ô2°AÑ6Ô6Ð6Ð6Ð6s5   ·AÁAÁAÄD6Ä6D:Ä=D:ÈH% È%IÉ IN)re   ru   rv   r¼  r   r   rÜ   rœ   rÝ   r   rŒ   r‰   r×  rØ  r‘   r–   rÞ  rá  rê  r€  Ú
skipUnlessÚhasattrrf   rú  r@   r/   r(   rÊ  rÊ  E  sã   € € € € € à!ÐàŒ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð':Ñ;Ô;€MØ'€Gð€Mð€Mð1ð 1ð 1ð&ð &ð &ð
5ð 5ð 5ð5ð 5ð 5ð=ð =ð =ð €XÔ˜˜ °-Ñ@Ô@ØDñFô Fð97ð 97ñFô Fð97ð 97ð 97r/   rÊ  c                 óF  — t           j                             d|¦  «         t          |¦  «        j        }t          |¦  «        j        }t          ¦   «         5 } |¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |                     ¦   «         ¦  «         |                      |¦  «         t          ¦   «         5 } |¦   «         }d d d ¦  «         n# 1 swxY w Y   |                      |                     ¦   «         ¦  «         |                      |¦  «         d S )Nr   )r‡   r   rˆ   r   rÝ  r
   r�   rì  )	rõ  r%   rÔ  rÕ  ræ  rç  rð  Úr1Úr2s	            r(   rï  rï  º  s`  € Ý„H‡O‚O�A�wÑÔÐÝ˜,Ñ'Ô'Ô+€DÝ˜,Ñ'Ô'Ô+€DÝ	Ñ	Ô	ð  ØˆT‰VŒVˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à‡E‚Eˆ#�,Š,‰.Œ.ÑÔÐØ‡E‚Eˆ"�I„I€IÝ	Ñ	Ô	ð  ØˆT‰VŒVˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à‡E‚Eˆ#�,Š,‰.Œ.ÑÔÐØ‡E‚Eˆ"�I„I€I€I€Is$   ÁA.Á.A2Á5A2ÃCÃCÃ!Cc                   ó,   — e Zd ZdZdZdZd„ Zd„ Zd„ ZdS )Ú#TestCacheMultipleFilesWithSignatureFz
from file2 import function2
z¤
from numba import njit

@njit('float64(float64)', cache=True)
def function1(x):
    return x

@njit('float64(float64)', cache=True)
def function2(x):
    return x
c                 óä  — t          d¦  «        | _        t          j                             | j        d¦  «        | _        t          | j        d¦  «        5 }t          | j        |¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             | j        d¦  «        | _	        t          | j	        d¦  «        5 }t          | j
        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÍ  zfile1.pyr  rÑ  zfile2.py)r   r%   r   r   r   Úfile1r   rÖ  Úsource_text_file1Úfile2Úsource_text_file2)rS   rÚ  s     r(   r‘   z)TestCacheMultipleFilesWithSignature.setUpÜ  sI  € Ý%Ð&;Ñ<Ô<ˆŒå”W—\’\ $¤,°
Ñ;Ô;ˆŒ
Ý�$”*˜cÑ"Ô"ð 	5 dÝ�$Ô(¨tÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5õ ”W—\’\ $¤,°
Ñ;Ô;ˆŒ
Ý�$”*˜cÑ"Ô"ð 	5 dÝ�$Ô(¨tÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s$   ÁA7Á7A;Á>A;ÃC%Ã%C)Ã,C)c                 ó8   — t          j        | j        ¦  «         d S rX   )r"   r#   r%   rY   s    r(   r–   z,TestCacheMultipleFilesWithSignature.tearDownç  s   € ÝŒ�d”lÑ#Ô#Ð#Ð#Ð#r/   c                 ót  — t          j        t          j        | j        gt           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d|                     ¦   «         › d|                     ¦   «         › �}|                      |j	        d|¬¦  «         t          j        t          j        | j
        gt           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d|                     ¦   «         › d|                     ¦   «         › �}|                      |j	        d|¦  «         d S )Nr¾   zstdout:
z


stderr:
r   r™  )rÄ   rÅ   r‡   rÆ   r  rÇ   rÈ   rË   rR   rÉ   r  )rS   rÎ   rÏ   rÐ   rš  s        r(   Ú*test_caching_mutliple_files_with_signaturezNTestCacheMultipleFilesWithSignature.test_caching_mutliple_files_with_signatureê  s  € åÔ ¥#¤.°$´*Ð!=Ý(2¬Ý(2¬ð9ñ 9ô 9ˆð ×$Ò$Ñ&Ô&‰ˆˆSØC˜#Ÿ*š*™,œ,ÐCÐC°S·Z²Z±\´\ÐCÐCˆØ×Ò˜Ô)¨1°#ÐÑ6Ô6Ð6õ Ô ¥#¤.°$´*Ð!=Ý(2¬Ý(2¬ð9ñ 9ô 9ˆð ×$Ò$Ñ&Ô&‰ˆˆSØC˜#Ÿ*š*™,œ,ÐCÐC°S·Z²Z±\´\ÐCÐCˆØ×Ò˜Ô)¨1¨cÑ2Ô2Ð2Ð2Ð2r/   N)	re   ru   rv   r¼  r  r  r‘   r–   r	  r@   r/   r(   r  r  È  sY   € € € € € ð "ÐðÐð
Ðð	5ð 	5ð 	5ð$ð $ð $ð3ð 3ð 3ð 3ð 3r/   r  c                   óŽ   — e Zd Zej                             e¦  «        Zej                             ed¦  «        Z	dZ
d„ Zd„ Zd„ ZdS )ÚTestCFuncCachezcfunc_cache_usecases.pyÚcfunc_caching_test_fodderc                 óP  — dt          | j        | j        ¬¦  «        z  }t          j        t
          j        d|gt          j        t          j        ¬¦  «        }|                     ¦   «         \  }}|j	        dk    r-t          d|j	        › d|                     ¦   «         › d�¦  «        ‚d S )	Naf  if 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_test()

            f = mod.add_usecase
            assert f.cache_hits == 1
            f = mod.outer
            assert f.cache_hits == 1
            f = mod.div_usecase
            assert f.cache_hits == 1
            r¼   r½   r¾   r   rÁ   z:stderr follows
rÂ   rÃ   rÌ   s        r(   rÑ   z&TestCFuncCache.run_in_separate_process  sÉ   € ðõ ˜tœ|°T´\ÐBÑBÔBñCˆõ Ô ¥#¤.°$¸Ð!=Ý(2¬Å
ÄðQñ Qô Qˆà×$Ò$Ñ&Ô&‰ˆˆSØÔ˜qÒ Ð Ý ð "E¸UÔ=Mð "Eð "EØ47·J²J±L´Lð"Eð "Eð "Eñ Fô Fð Fð !Ð r/   c                 ó.   — |                      ¦   «          d S rX   )r¦  ©rS   r¡   s     r(   Úcheck_modulezTestCFuncCache.check_module  s   € Ø�Š‰Œˆˆˆr/   c                 óP  — |                       d¦  «         |                      ¦   «         }|                       d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |¦  «         |                      ¦   «         }|                       d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |j        j        d¦  «         |                      |¦  «         |  	                    ¦   «          d S )Nr   rá   r<   )
r´   r¢   rR   ræ   rÕ   rú   rÿ   Údiv_usecaser  rÑ   r  s     r(   rï   zTestCFuncCache.test_caching  s|  € Ø×Ò˜1ÑÔÐØ× Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐà×Ò˜œÔ3°QÑ7Ô7Ð7Ø×Ò˜œÔ-¨qÑ1Ô1Ð1Ø×Ò˜Ô0Ô;¸QÑ?Ô?Ð?Ø×Ò˜œÔ3°QÑ7Ô7Ð7Ø×Ò˜#ÑÔÐð × Ò Ñ"Ô"ˆØ×Ò˜1ÑÔÐà×Ò˜œÔ3°QÑ7Ô7Ð7Ø×Ò˜œÔ-¨qÑ1Ô1Ð1Ø×Ò˜Ô0Ô;¸QÑ?Ô?Ð?Ø×Ò˜œÔ3°QÑ7Ô7Ð7Ø×Ò˜#ÑÔÐà×$Ò$Ñ&Ô&Ð&Ð&Ð&r/   N)re   ru   rv   r   r   rÜ   rœ   rÝ   r   rŒ   r‰   rÑ   r  rï   r@   r/   r(   r  r  ü  sr   € € € € € àŒ7�?Š?˜8Ñ$Ô$€DØ”G—L’L Ð'@ÑAÔA€MØ)€GðFð Fð Fð0ð ð ð'ð 'ð 'ð 'ð 'r/   r  Ú__main__)?rD  Úllvmlite.bindingÚbindingr«  rf   Únumpyrñ   r   r�   r"   rÄ   r‡   r   r€  r  Únumbar   Ú
numba.corer   Únumba.core.cachingr   Únumba.core.errorsr   Únumba.parforsr   Únumba.tests.supportr   r	   r
   r   r   r   r   r   r   r   r|  ÚImportErrorr)   Ú_access_preventableÚ_access_msgrû  r  r.   r:   rA   rF   rJ   rM   rO   rj   r„   r¸   rß   r…  r—  r¾  rÊ  rï  r  r  re   Úmainr@   r/   r(   ú<module>r!     sQ  ðØ €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðØÐÐÐÐøØð ð ð Ø€I€I€Iðøøøð ð  ð  ð> 2Ð1Ñ3Ô3Ð ØI€Ø%�(Ô%Ð&9¸;ÑGÔG€ðð ð ð
ð ð ðð ð ðð ð ðð ð ð
ð ð ð7
ð 7
ð 7
ð 7
ð 7
�+˜xñ 7
ô 7
ð 7
ðt,ð ,ð ,ð84ð 4ð 4ð 4ð 4�Hñ 4ô 4ð 4ðn!.ð !.ð !.ð !.ð !. -ñ !.ô !.ð !.ðH`5ð `5ð `5ð `5ð `5Ð+ñ `5ô `5ð `5ðF ðð ð ð ð Ð!<ñ ô ñ Ôðð.I=ð I=ð I=ð I=ð I=Ð9ñ I=ô I=ð I=ðX0ð 0ð 0ð 0ð 0˜Mñ 0ô 0ð 0ð: ðq7ð q7ð q7ð q7ð q7˜XÔ.ñ q7ô q7ñ Ôðq7ðhð ð ð13ð 13ð 13ð 13ð 13¨(Ô*;ñ 13ô 13ð 13ðh6'ð 6'ð 6'ð 6'ð 6'�]ñ 6'ô 6'ð 6'ðr ˆzÒÐØ€H„M�O„O€O€O€Oð Ðs   Á*A/ Á/A9Á8A9