§
    €zIf±Ä  ã                   óÆ  — d 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ZddlZddlZddlmZ ddlmZ ddlmZmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZmZ dd
lmZ ddlmZmZ ddlmZm Z  ddl!m"Z"m#Z# ddl!m$Z$ ddl%m&Z&m'Z'm(Z( ddl)m*Z* dud„Z+d„ Z,d„ Z-d„ Z.d„ Z/ e&dddg¦  «        d„ ¦   «         Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d „ Z6d!„ Z7d"„ Z8g fd#„Z9d$„ Z:e" e&d%dd&g¦  «        d'„ ¦   «         ¦   «         Z;e"d(„ ¦   «         Z<d)„ Z=d*„ Z>d+„ Z?d,„ Z@ e&d-d.gd/d&fg d0dfg¦  «        d1„ ¦   «         ZAd2„ ZBd3„ ZCd4„ ZDd5„ ZEd6„ ZFd7„ ZGd8„ ZHd9„ ZId:„ ZJd;„ ZKd<„ ZLd=„ ZMd>„ ZNd?„ ZOd@dAdBœdC„ZPdDeQdEeRdFeRfdG„ZSdH„ ZTdI„ ZUdvdJ„ZVdK„ ZWdL„ ZXdM„ ZYdN„ ZZdO„ Z[dP„ Z\dQ„ Z]dwdR„Z^e$dS„ ¦   «         Z_e$dT„ ¦   «         Z`dU„ Za G dV„ dWe¦  «        Zb G dX„ dYe¦  «        Zc e&dZd ed¦   «          ee¦   «         g¦  «        d[„ ¦   «         Zfd\„ Zgd]„ Zhd^„ Zid_„ Zjd`„ Zkda„ Zldb„ Zmdc„ Zndd„ Zodxde„Zpejq         &                    dfdgdhdiœd&djdkdlidmœg¦  «        dn„ ¦   «         Zrdo„ Zsdp„ Zt G dq„ dr¦  «        Zu G ds„ dt¦  «        ZvdS )yz
Test the memory module.
é    N)ÚMemory)Úexpires_after)ÚMemorizedFuncÚNotMemorizedFunc)ÚMemorizedResultÚNotMemorizedResult)Ú_FUNCTION_HASHES)Úregister_store_backendÚ_STORE_BACKENDS)Ú_build_func_identifierÚ_store_backend_factory)ÚJobLibCollisionWarning)ÚParallelÚdelayed)ÚStoreBackendBaseÚFileSystemStoreBackend)Ú
with_numpyÚnp)Úwith_multiprocessing)ÚparametrizeÚraisesÚwarns)Úhashé   c                 ó   — | dz  |z   S )z3 A module-level function for testing purposes.
    é   © )ÚxÚys     úK/var/www/piapp/venv/lib/python3.11/site-packages/joblib/test/test_memory.pyÚfr!   *   s   € ð �‰6�A‰:Ðó    c                 óì   — t          |d¬¦  «        }|                     | ¦  «        } t          d¦  «        D ]=}t          d¦  «        D ]+} | |¦  «        |k    sJ ‚t          |¦  «        |dz   k    sJ ‚Œ,Œ>dS )zº Given a function and an accumulator (a list that grows every
        time the function is called), check that the function can be
        decorated by memory to be a lazy identity.
    r   ©ÚlocationÚverboseé   r   r   N)r   ÚcacheÚrangeÚlen)ÚfuncÚaccumulatorr%   ÚmemoryÚiÚ_s         r    Úcheck_identity_lazyr0   2   s•   € õ ˜X¨qÐ1Ñ1Ô1€FØ�<Š<˜ÑÔ€DÝ�1‰XŒXð -ð -ˆÝ�q‘”ð 	-ð 	-ˆAØ�4˜‘7”7˜a’<�<�<�<Ý�{Ñ#Ô# q¨1¡uÒ,Ð,Ð,Ð,Ð,ð	-ð-ð -r"   c                 ó  — | j                              ¦   «         \  }t          j                             |j        d¦  «        }t          |d¦  «        5 }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú
output.pklÚwÚgarbage)Ústore_backendÚ	get_itemsÚosÚpathÚjoinÚopenÚwrite)r-   Úsingle_cache_itemÚoutput_filenamer!   s       r    Úcorrupt_single_cache_itemr>   A   s¶   € ØÔ-×7Ò7Ñ9Ô9ÑÐÝ”g—l’lÐ#4Ô#9¸<ÑHÔH€OÝ	ˆo˜sÑ	#Ô	#ð  qØ	�Š�	ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA4Á4A8Á;A8c                 óD   ‡— g Šˆfd„}|                      | d|¦  «         ‰S )Nc                 ó2   •— ‰                      | ¦  «         d S ©N©Úappend)ÚitemÚrecordeds    €r    Úappend_to_recordz6monkeypatch_cached_func_warn.<locals>.append_to_recordO   s   ø€ Ø�Š˜ÑÔÐÐÐr"   Úwarn)Úsetattr)r+   Úmonkeypatch_fixturerF   rE   s      @r    Úmonkeypatch_cached_func_warnrJ   H   sA   ø€ ð
 €Hðð ð ð ð à×Ò  fÐ.>Ñ?Ô?Ð?Ø€Or"   c                 ó‚  ‡— t          ¦   «         Šˆfd„}t          |‰| j        ¦  «         dD ]Ö}dD ]…}t          | j        d||¬¦  «        }t	          j        | j        d¬¦  «         |                     |¦  «        } |d¦  «         |                     d	¬
¦  «         t          ‰¦  «        } |d¦  «        }Œ†t          ‰¦  «        |dz   k    sJ ‚| 	                    |d¦  «        |k    sJ ‚t          ‰¦  «        |dz   k    sJ ‚Œ×d|_
        t          | j        d¬¦  «        } |                     |¦  «        d¦  «         dS )z, Simple test of memory lazy evaluation.
    c                 ó2   •— ‰                      d¦  «         | S ©Nr   rB   ©Úargr,   s    €r    r!   z"test_memory_integration.<locals>.f_   ó   ø€ Ø×Ò˜1ÑÔÐØˆ
r"   )FT)ÚrNé
   )r%   r&   Ú	mmap_modeÚcompressT)Úignore_errorsr   F)rG   Ú__main__r   r$   N)Úlistr0   Ústrpathr   ÚshutilÚrmtreer(   Úclearr*   ÚevalÚ
__module__)	Útmpdirr!   rT   rS   r-   ÚgÚcurrent_accumulatorÚoutr,   s	           @r    Útest_memory_integrationrb   W   s‚  ø€ õ ‘&”&€Kð
ð ð ð ð õ ˜˜;¨¬Ñ7Ô7Ð7ð "ð ;ð ;ˆØ$ð 	ð 	ˆIÝ V¤^¸RØ&/¸(ðDñ Dô DˆFõ ŒM˜&œ.¸Ð=Ñ=Ô=Ð=Ø—’˜Q‘”ˆAØˆAˆa‰DŒDˆDØ�GŠG˜ˆGÑÔÐÝ"% kÑ"2Ô"2ÐØ�!�A‘$”$ˆCˆCå�;ÑÔÐ#6¸Ñ#:Ò:Ð:Ð:Ð:à�{Š{˜1˜aÑ Ô  CÒ'Ð'Ð'Ð'Ý�;ÑÔÐ#6¸Ñ#:Ò:Ð:Ð:Ð:Ð:ð €A„LÝ˜Vœ^°QÐ7Ñ7Ô7€FØ€F‡L‚L��O„O�AÑÔÐÐÐr"   Úcall_before_reducingTFc                 ó$  ‡
— dD �]Š}d}d                      |¦  «        }t          t          t          j        |¦  «        |d¬¦  «        ¦  «         t          ¦   «         d         }d|_         |d¦  «        dk    sJ ‚|j        j        |k    sJ ‚t          | j
        d	¬
¦  «        }|                     |¦  «        Š
t          t          j        | dz  ¦  «        ¦  «        dk    sJ ‚t          j        | dz  ¦  «        d	         }d|v sJ ‚| dz  |z  }|d	k    �rt          j        |¦  «        dgk    sJ ‚t          j        |dz  ¦  «        g k    sJ ‚|r[ ‰
d¦  «         t          t          j        |dz  ¦  «        ¦  «        dk    sJ ‚ t          d¬¦  «        ˆ
fd„dD ¦   «         ¦  «        }	nZ t          d¬¦  «        ˆ
fd„dD ¦   «         ¦  «        }	t          t          j        |dz  ¦  «        ¦  «        dk    sJ ‚ ‰
d¦  «         t          t          j        |dz  ¦  «        ¦  «        dk    sJ ‚�Œ+t          t          j        |dz  ¦  «        ¦  «        dk    sJ ‚ ‰
d¦  «         t          t          j        |dz  ¦  «        ¦  «        dk    sJ ‚�ŒŒd S )N)r   r   z0
        def f(x):
            return x
        z<ipython-input-{}-000000000000>Úexec)ÚfilenameÚmoder!   rV   r   r   r$   Újoblibzipython-inputr'   r   ©Ún_jobsc              3   óH   •K  — | ]} t          ‰¦  «        |¦  «        V — Œd S rA   ©r   ©Ú.0r.   Úcached_fs     €r    ú	<genexpr>zHtest_parallel_call_cached_function_defined_in_jupyter.<locals>.<genexpr>Ë   ó6   øè è € Ð(NÐ(NÀ!Ð):­°Ñ):Ô):¸1Ñ)=Ô)=Ð(NÐ(NÐ(NÐ(NÐ(NÐ(Nr"   )r   r   c              3   óH   •K  — | ]} t          ‰¦  «        |¦  «        V — Œd S rA   rl   rm   s     €r    rp   zHtest_parallel_call_cached_function_defined_in_jupyter.<locals>.<genexpr>Ñ   rq   r"   é   )Úformatre   ÚcompileÚtextwrapÚdedentÚlocalsr]   Ú__code__Úco_filenamer   rX   r(   r*   r7   Úlistdirr   )r^   rc   Ú
session_noÚipython_cell_sourceÚipython_cell_idÚ	aliased_fr-   Úf_cache_relative_directoryÚf_cache_directoryÚresro   s             @r    Ú5test_parallel_call_cached_function_defined_in_jupyterrƒ   ‚   s  ø€ ð& ð MAñ MAˆ
ðÐð
 <×BÒBÀ:ÑNÔNˆåÝÝ”Ð 3Ñ4Ô4Ø(Øðñ ô ñ	
ô 	
ð 	
õ ‘H”H˜S”Mˆ	Ø)ˆ	Ôð ˆy˜‰|Œ|˜qÒ Ð Ð Ð ØÔ!Ô-°Ò@Ð@Ð@Ð@å ¤¸Ð;Ñ;Ô;ˆØ—<’< 	Ñ*Ô*ˆå•2”:˜f xÑ/Ñ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ý%'¤Z°¸Ñ0AÑ%BÔ%BÀ1Ô%EÐ"ØÐ"<Ð<Ð<Ð<Ð<à" XÑ-Ð0JÑJÐà˜Š?‰?å”:Ð/Ñ0Ô0°S°EÒ9Ð9Ð9Ð9Ý”:Ð/°#Ñ5Ñ6Ô6¸"Ò<Ð<Ð<Ð<à#ð Ø�˜‘”�õ �2œ:Ð&7¸#Ñ&=Ñ>Ô>Ñ?Ô?À1ÒDÐDÐDÐDð )•h aÐ(Ñ(Ô(Ð(NÐ(NÐ(NÐ(NÀvÐ(NÑ(NÔ(NÑNÔN��ð )•h aÐ(Ñ(Ô(Ð(NÐ(NÐ(NÐ(NÀvÐ(NÑ(NÔ(NÑNÔN�Ý�2œ:Ð&7¸#Ñ&=Ñ>Ô>Ñ?Ô?À1ÒDÐDÐDÐDà�˜‘”�õ
 •r”zÐ"3°cÑ"9Ñ:Ô:Ñ;Ô;¸qÒ@Ð@Ð@Ð@Ñ@õ •r”zÐ"3°cÑ"9Ñ:Ô:Ñ;Ô;¸qÒ@Ð@Ð@Ð@àˆH�Q‰KŒKˆKõ •r”zÐ"3°cÑ"9Ñ:Ô:Ñ;Ô;¸qÒ@Ð@Ð@Ð@Ñ@ð[MAð MAr"   c                  ó  ‡— t          ¦   «         Šˆfd„} t          dd¬¦  «        }|                     | ¦  «        }t          d¦  «        D ]4}t	          ‰¦  «        } |d¦  «         t	          ‰¦  «        |dz   k    sJ ‚Œ5dS )z, Test memory with location=None: no memoize c                 ó2   •— ‰                      d¦  «         | S rM   rB   rN   s    €r    Úffztest_no_memory.<locals>.ffé   rP   r"   Nr   r$   rs   r   )rW   r   r(   r)   r*   )r†   r-   Úggr/   r`   r,   s        @r    Útest_no_memoryrˆ   å   s¦   ø€ å‘&”&€Kðð ð ð ð õ ˜T¨1Ð-Ñ-Ô-€FØ	�Š�bÑ	Ô	€BÝ�1‰XŒXð ;ð ;ˆÝ! +Ñ.Ô.ÐØ
ˆˆ1‰ŒˆÝ�;ÑÔÐ#6¸Ñ#:Ò:Ð:Ð:Ð:Ð:ð;ð ;r"   c                 óØ   ‡— t          ¦   «         Šd	ˆfd„	}t          |‰| j        ¦  «         t          | j        d¬¦  «        }|                     |¦  «        } |dd¬¦  «        dk    sJ ‚dS )
z4 Test memory with a function with keyword arguments.Nr   c                 ó2   •— ‰                      d¦  «         | S rM   rB   )Úarg1Úarg2r,   s     €r    r_   ztest_memory_kwarg.<locals>.gù   s   ø€ Ø×Ò˜1ÑÔÐØˆr"   r   r$   é   r   )r‹   rŒ   rM   )rW   r0   rX   r   r(   )r^   r_   r-   r,   s      @r    Útest_memory_kwargrŽ   õ   s‰   ø€ å‘&”&€Kðð ð ð ð ð õ ˜˜;¨¬Ñ7Ô7Ð7å˜Vœ^°QÐ7Ñ7Ô7€FØ�Š�Q‰Œ€Aàˆ1�"˜1ÐÑÔ Ò#Ð#Ð#Ð#Ð#Ð#r"   c                 ób   ‡‡— t          ¦   «         Šˆfd„Št          ˆfd„‰| j        ¦  «         dS )z+ Test memory with a function with a lambda.c                 ó2   •— ‰                      d¦  «         | S ©z4 A helper function to define l as a lambda.
        r   rB   )r   r,   s    €r    Úhelperz"test_memory_lambda.<locals>.helper	  ó   ø€ ð 	×Ò˜1ÑÔÐØˆr"   c                 ó   •—  ‰| ¦  «        S rA   r   )r   r’   s    €r    ú<lambda>z$test_memory_lambda.<locals>.<lambda>  s   ø€  & &¨¡)¤)€ r"   N)rW   r0   rX   )r^   r,   r’   s    @@r    Útest_memory_lambdar–     sL   øø€ å‘&”&€Kðð ð ð ð õ Ð+Ð+Ð+Ð+¨[¸&¼.ÑIÔIÐIÐIÐIr"   c                 ód  — t          | j        d¬¦  «        }|j        d„ ¦   «         }|}|j        d„ ¦   «         }|}t          t          ¦  «        5 } |d¦  «          |d¦  «         ddd¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚dt          |d         j        ¦  «        v sJ ‚dS )z> Check that name collisions with functions will raise warningsr   r$   c                 ó   — | S )z0 A first function called name_collision
        r   ©r   s    r    Úname_collisionz2test_memory_name_collision.<locals>.name_collision  ó	   € ð ˆr"   c                 ó   — | S )z1 A second function called name_collision
        r   r™   s    r    rš   z2test_memory_name_collision.<locals>.name_collision  r›   r"   r   NÚ	collision)r   rX   r(   r   r   r*   ÚstrÚmessage)r^   r-   rš   ÚaÚbÚwarninfos         r    Útest_memory_name_collisionr£     s  € å˜Vœ^°QÐ7Ñ7Ô7€Fà„\ðð ñ „\ðð
 	€Aà„\ðð ñ „\ðð
 	€Aå	Õ%Ñ	&Ô	&ð ¨(Ø	ˆˆ!‰ŒˆØ	ˆˆ!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˆx‰=Œ=˜AÒÐÐÐØ�#˜h qœkÔ1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2s   ÁA2Á2A6Á9A6c                 ót  — t          | j        d¬¦  «        }|                     d„ ¦  «        }|                     d„ ¦  «        }t          t          ¦  «        5 } |d¦  «        dk    sJ ‚ |d¦  «        dk    sJ ‚ |d¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚d S )Nr   r$   c                 ó   — | S rA   r   r™   s    r    r•   z7test_memory_warning_lambda_collisions.<locals>.<lambda>1  s   € ˜q€ r"   c                 ó   — | dz   S rM   r   r™   s    r    r•   z7test_memory_warning_lambda_collisions.<locals>.<lambda>2  s
   € ˜q 1™u€ r"   r   r   rs   )r   rX   r(   r   r   r*   )r^   r-   r    r¡   r¢   s        r    Ú%test_memory_warning_lambda_collisionsr§   .  sý   € å˜Vœ^°QÐ7Ñ7Ô7€FØ�Š�[�[Ñ!Ô!€AØ�Š�_�_Ñ%Ô%€Aå	Õ%Ñ	&Ô	&ð ¨(Øˆq�‰tŒt�qŠyˆyˆyˆyØˆq�‰tŒt�qŠyˆyˆyˆyØˆq�‰tŒt�qŠyˆyˆyˆyˆyðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˆx‰=Œ=˜AÒÐÐÐÐÐs   Á4BÂBÂBc                 óæ  — t          | j        d¬¦  «        }t          d¦  «        }|                     |¦  «        }t          d¦  «        }|                     |¦  «        }t	          t
          ¦  «        5 } |d¦  «          |d¦  «          |d¦  «         d d d ¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚dt          |d         j        ¦  «         	                    ¦   «         v sJ ‚d S )Nr   r$   úlambda x: xzlambda x: x+1r   r   zcannot detect)
r   rX   r\   r(   r   r   r*   rž   rŸ   Úlower)r^   r-   Úa1Úb1r¢   s        r    Ú'test_memory_warning_collision_detectionr­   >  s'  € õ ˜Vœ^°QÐ7Ñ7Ô7€FÝ	ˆmÑ	Ô	€BØ	�Š�bÑ	Ô	€BÝ	ˆoÑ	Ô	€BØ	�Š�bÑ	Ô	€Bå	Õ%Ñ	&Ô	&ð ¨(Ø
ˆˆ1‰ŒˆØ
ˆˆ1‰ŒˆØ
ˆˆ1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 ˆx‰=Œ=˜AÒÐÐÐØ�c (¨1¤+Ô"5Ñ6Ô6×<Ò<Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>s   Á3"B!Â!B%Â(B%c                 ó„   ‡— t          ¦   «         Šˆfd„}ddl} |j        |d¦  «        }t          |‰| j        ¦  «         dS )z$ Test memory with functools.partial.c                 ó2   •— ‰                      d¦  «         |S r‘   rB   ©r   r   r,   s     €r    r+   z!test_memory_partial.<locals>.funcT  r“   r"   r   Nr   )rW   Ú	functoolsÚpartialr0   rX   )r^   r+   r±   Úfunctionr,   s       @r    Útest_memory_partialr´   P  sa   ø€ å‘&”&€Kðð ð ð ð ð ÐÐÐØ ˆyÔ   qÑ)Ô)€Hå˜ +¨v¬~Ñ>Ô>Ð>Ð>Ð>r"   c                 óœ   — t          | j        d¬¦  «        }t          d¦  «        }|                     |¦  «        } |d¦  «        dk    sJ ‚dS )zF Smoke test memory with a function with a function defined in an eval.r   r$   r©   r   N)r   rX   r\   r(   )r^   r-   ÚmÚmms       r    Útest_memory_evalr¸   `  sK   € å˜Vœ^°QÐ7Ñ7Ô7€Fåˆ]ÑÔ€AØ	�Š�a‰Œ€Bàˆ2ˆa‰5Œ5�AŠ:ˆ:ˆ:ˆ:ˆ:ˆ:r"   c                 óN   — t          | ¦  «        }|                      d¦  «         |S )zx A function with a side effect in its arguments.

        Return the length of its argument and append one element.
    N)r*   rC   )r   Úlen_xs     r    Úcount_and_appendr»   j  s#   € õ
 �‰FŒF€EØ‡H‚HˆT�N„N€NØ€Lr"   c                 ó¦   — t          | j        d¬¦  «        }|                     t          ¦  «        } |¦   «         dk    sJ ‚ |¦   «         dk    sJ ‚dS )zx Check that if a function has a side effect in its arguments, it
        should use the hash of changing arguments.
    r   r$   r   N)r   rX   r(   r»   )r^   r-   r+   s      r    Útest_argument_changer½   t  sX   € õ ˜Vœ^°QÐ7Ñ7Ô7€FØ�<Š<Õ(Ñ)Ô)€Dð ˆ4‰6Œ6�QŠ;ˆ;ˆ;ˆ;ð ˆ4‰6Œ6�QŠ;ˆ;ˆ;ˆ;ˆ;ˆ;r"   rS   rQ   c                 ó®  ‡	— t          ¦   «         Š	dˆ	fd„	}t          | j        |d¬¦  «        }|                     |¦  «        }t          j                             d¦  «        }t          d¦  «        D ]d}|                     d¦  «        }t          d¦  «        D ]=}t	          j	         ||¦  «        |k    ¦  «        sJ ‚t          ‰	¦  «        |dz   k    sJ ‚Œ>ŒedS )	z/ Test memory with a function with numpy arrays.Nc                 ó2   •— ‰                      d¦  «         | S rM   rB   rN   s    €r    Únztest_memory_numpy.<locals>.nˆ  rP   r"   r   ©r%   rS   r&   r'   )rR   rR   r   rA   )rW   r   rX   r(   r   ÚrandomÚRandomStater)   Úrandom_sampleÚallr*   )
r^   rS   rÀ   r-   Úcached_nÚrndr.   r    r/   r,   s
            @r    Útest_memory_numpyrÈ   ‚  sþ   ø€ õ ‘&”&€Kðð ð ð ð ð õ ˜Vœ^°yØðñ ô €Fà�|Š|˜A‰Œ€Hå
Œ)×
Ò
 Ñ
"Ô
"€CÝ�1‰XŒXð -ð -ˆØ×Ò˜hÑ'Ô'ˆÝ�q‘”ð 	-ð 	-ˆAÝ”6˜(˜( 1™+œ+¨Ò*Ñ+Ô+Ð+Ð+Ð+Ý�{Ñ#Ô# q¨1¡uÒ,Ð,Ð,Ð,Ð,ð	-ð-ð -r"   c                 ó|  — t          | j        dd¬¦  «        }|                     ¦   «         d„ ¦   «         }t          j        d¦  «        } ||¦  «        } ||¦  «        }t          |t          j        ¦  «        sJ ‚|j        dk    sJ ‚t          |t          j        ¦  «        sJ ‚|j        dk    sJ ‚~~t          j	        ¦   «          t          |¦  «         t          ||¦  «        } ||¦  «        }t          |¦  «        dk    sJ ‚d}	|	|d         v sJ ‚t          |t          j        ¦  «        sJ ‚|j        dk    sJ ‚dS )	z8Check that mmap_mode is respected even at the first callrQ   r   rÁ   c                 ó   — | dz  S ©Nr   r   ©r    s    r    Útwicez0test_memory_numpy_check_mmap_mode.<locals>.twicež  ó   € à�1‰uˆr"   r'   r   úException while loading resultsN)r   rX   r(   r   ÚonesÚ
isinstanceÚmemmaprg   ÚgcÚcollectr>   rJ   r*   )
r^   Úmonkeypatchr-   rÍ   r    r¡   ÚcÚrecorded_warningsÚdÚexception_msgs
             r    Ú!test_memory_numpy_check_mmap_moderÚ   ˜  sS  € õ ˜Vœ^°sÀAÐFÑFÔF€Fà‡\‚\�^„^ðð ñ „^ðõ 	Œ�‰
Œ
€Aàˆˆa‰Œ€AØˆˆa‰Œ€Aå�a�œÑ#Ô#Ð#Ð#Ð#ØŒ6�SŠ=ˆ=ˆ=ˆ=å�a�œÑ#Ô#Ð#Ð#Ð#ØŒ6�SŠ=ˆ=ˆ=ˆ=ð 	
Ø	Ý„J�L„L€LÝ˜fÑ%Ô%Ð%õ 5°U¸KÑHÔHÐØˆˆa‰Œ€AÝÐ Ñ!Ô! QÒ&Ð&Ð&Ð&Ø5€MØÐ-¨aÔ0Ð0Ð0Ð0Ð0å�a�œÑ#Ô#Ð#Ð#Ð#ØŒ6�SŠ=ˆ=ˆ=ˆ=ˆ=ˆ=r"   c                 ó  ‡— t          | j        d¬¦  «        } G d„ dt          ¦  «        Š|j        d	ˆfd„	¦   «         } |¦   «          t	          d¦  «        D ]4}t          ‰¦  «        5   |d¦  «         ddd¦  «         n# 1 swxY w Y   Œ5dS )
z1 Smoketest the exception handling of Memory.
    r   r$   c                   ó   — e Zd ZdS )ú*test_memory_exception.<locals>.MyExceptionN©Ú__name__r]   Ú__qualname__r   r"   r    ÚMyExceptionrÝ   Å  ó   € € € € € Øˆr"   rá   c                 ó   •— | r‰‚d S rA   r   )Úexcrá   s    €r    Úhz test_memory_exception.<locals>.hÈ  s   ø€ àð 	ØÐð	ð 	r"   r'   r   N)r   )r   rX   Ú	Exceptionr(   r)   r   )r^   r-   rå   r/   rá   s       @r    Útest_memory_exceptionrç   À  s  ø€ õ ˜Vœ^°QÐ7Ñ7Ô7€Fðð ð ð ð •iñ ô ð ð „\ðð ð ð ð ñ „\ðð
 €A�C„C€Cå�1‰XŒXð ð ˆå�KÑ Ô ð 	ð 	ØˆAˆa‰DŒDˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Á(B Â B	ÂB	c                 ó~  ‡— t          | j        d¬¦  «        }t          ¦   «         Š|                     dg¬¦  «        d
ˆfd„	¦   «         }|j        dgk    sJ ‚ |dd¬¦  «         t          ‰¦  «        dk    sJ ‚ |dd¬¦  «         t          ‰¦  «        dk    sJ ‚ |dd¬¦  «         t          ‰¦  «        dk    sJ ‚d	S )z# Test the ignore feature of memory r   r$   r   ©Úignorer   c                 ó2   •— ‰                      d¦  «         d S rM   rB   r°   s     €r    Úzztest_memory_ignore.<locals>.zÛ  s   ø€ à×Ò˜1ÑÔÐÐÐr"   ©r   r   N©r   ©r   rX   rW   r(   rê   r*   )r^   r-   rì   r,   s      @r    Útest_memory_ignorerð   Ö  sô   ø€ å˜Vœ^°QÐ7Ñ7Ô7€FÝ‘&”&€Kà‡\‚\˜#˜€\ÑÔðð ð ð ð ñ  Ôðð Œ8˜�uÒÐÐÐà€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ø€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ø€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ð Ð r"   c                 ó”  ‡— t          | j        d¬¦  «        }t          ¦   «         Šd„ }|                     dg¬¦  «        |dˆfd„	¦   «         ¦   «         }|j        dgk    sJ ‚ |dd¬¦  «         t          ‰¦  «        dk    sJ ‚ |dd¬¦  «         t          ‰¦  «        dk    sJ ‚ |dd	¬¦  «         t          ‰¦  «        dk    sJ ‚d
S )z; Test the ignore feature of memory on a decorated function r   r$   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                  ó   •—  ‰| i |¤ŽS rA   r   )ÚargsÚkwargsr!   s     €r    Úwrappedz?test_memory_ignore_decorated.<locals>.decorate.<locals>.wrappedï  s   ø€ à�1�dÐ%˜fÐ%Ð%Ð%r"   )r±   Úwraps)r!   rö   s   ` r    Údecoratez.test_memory_ignore_decorated.<locals>.decorateî  s6   ø€ Ý	Œ˜Ñ	Ô	ð	&ð 	&ð 	&ð 	&ñ 
Ô	ð	&àˆr"   r   ré   r   c                 ó2   •— ‰                      d¦  «         d S rM   rB   r°   s     €r    rì   z'test_memory_ignore_decorated.<locals>.zô  s   ø€ ð 	×Ò˜1ÑÔÐÐÐr"   rí   r   Nrî   rï   )r^   r-   rø   rì   r,   s       @r    Útest_memory_ignore_decoratedrú   é  s  ø€ å˜Vœ^°QÐ7Ñ7Ô7€FÝ‘&”&€Kðð ð ð ‡\‚\˜#˜€\ÑÔØðð ð ð ð ñ „Xñ  Ôðð Œ8˜�uÒÐÐÐà€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ø€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ø€A€aˆ1€I�I„I€IÝˆ{ÑÔ˜qÒ Ð Ð Ð Ð Ð r"   c                 ó¼   — t          | j        d¬¦  «        }|j        d„ ¦   «         } |d¦  «        dk    sJ ‚ |d¬¦  «        dk    sJ ‚ |d¬¦  «        dk    sJ ‚dS )	z_Non-regression test against 0.12.0 changes.

    https://github.com/joblib/joblib/pull/751
    r   r$   c                 ó   — | dz   S rM   r   rÌ   s    r    Úplus_onez,test_memory_args_as_kwargs.<locals>.plus_one
  rÎ   r"   r   r   rÌ   r'   N)r   rX   r(   )r^   r-   rý   s      r    Útest_memory_args_as_kwargsrþ     sŒ   € õ
 ˜Vœ^°QÐ7Ñ7Ô7€Fà„\ðð ñ „\ðð ˆ8�A‰;Œ;˜!ÒÐÐÐØˆ8�aˆ=‰=Œ=˜AÒÐÐÐð ˆ8�aˆ=‰=Œ=˜AÒÐÐÐÐÐr"   zignore, verbose, mmap_moder   éd   rR   c                 óÂ   — t          | j        d¬¦  «        }|                     |||¬¦  «        d„ ¦   «         }|j        |k    sJ ‚|j        |k    sJ ‚|j        |k    sJ ‚dS )z7Check cache may be called with kwargs before decoratingr   r$   )rê   r&   rS   c                 ó   — d S rA   r   r™   s    r    rì   z"test_partial_decoration.<locals>.z  s   € àˆr"   N)r   rX   r(   rê   Ú_verboserS   )r^   rê   r&   rS   r-   rì   s         r    Útest_partial_decorationr    s†   € õ ˜Vœ^°QÐ7Ñ7Ô7€Fà‡\‚\˜¨¸I€\ÑFÔFðð ñ GÔFðð Œ8�vÒÐÐÐØŒ:˜Ò Ð Ð Ð ØŒ;˜)Ò#Ð#Ð#Ð#Ð#Ð#r"   c                 ó„  — t          | j        d¬¦  «        }t                               d¦  «        }|                     d¦  «          | j        dg|¢R Ž j        }|                     t          ¦  «        }t          t          ¦  «        }t          j
                             |j        j        |¦  «        }||k    sJ ‚t          j
                             |¦  «        sJ ‚|j        t          j
                             |j        j        ¦  «        k    sJ ‚t          j        ¦   «          |                     ¦   «         rJ ‚t          j
                             t          j
                             |d¦  «        ¦  «        sJ ‚|                     ¦   «         sJ ‚|                     d¦  «        }t          j
                             |j        j        |j        |¦  «        } |d¦  «        }t          j
                             |¦  «        sJ ‚t          j        t          j
                             |d¦  «        ¦  «         | |d¦  «        k    sJ ‚d S )	Nr   r$   ú.r!   rh   zfunc_code.pyr   r2   )r   rX   rß   ÚsplitrC   r9   r(   r!   r   r7   r8   r5   r%   ÚexistsÚdirnamer	   r[   Ú_check_previous_func_codeÚ_get_args_idÚfunc_idÚremove)	r^   r-   r8   r_   r  r%   Úargs_idÚ
output_dirr    s	            r    Útest_func_dirr  &  sØ  € å˜Vœ^°QÐ7Ñ7Ô7€FÝ�>Š>˜#ÑÔ€DØ‡K‚K�ÑÔÐØˆ6Œ;�xÐ' $Ð'Ð'Ð'Ô/€Dà�Š•Q‰Œ€Aå$¥QÑ'Ô'€GÝŒw�|Š|˜AœOÔ4°gÑ>Ô>€HØ�tÒÐÐÐÝŒ7�>Š>˜$ÑÔÐÐÐØŒ?�bœgŸošo¨a¬oÔ.FÑGÔGÒGÐGÐGÐGõ
 ÔÑÔÐØ×*Ò*Ñ,Ô,Ð,Ð,Ð,ÝŒ7�>Š>�"œ'Ÿ,š, t¨^Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=Ø×&Ò&Ñ(Ô(Ð(Ð(Ð(ð �nŠn˜QÑÔ€GÝ”—’˜aœoÔ6¸¼	À7ÑKÔK€JØ	ˆˆ!‰Œ€AÝŒ7�>Š>˜*Ñ%Ô%Ð%Ð%Ð%Ý„I�bŒg�lŠl˜: |Ñ4Ô4Ñ5Ô5Ð5Ø���!‘”Š9ˆ9ˆ9ˆ9ˆ9ˆ9r"   c                 ój  — t          | j        d¬¦  «        }|                     t          ¦  «        } |d¦  «        }t	          j        t	          j        |¦  «        ¦  «        }|                     d¦  «        }t          j	         
                    |j        j        |j        |¦  «        }t          j	                             |¦  «        sJ ‚||j                             |j        |g¦  «        k    sJ ‚t	          j        t	          j        |¦  «        ¦  «        }|j        j        |j        j        k    sJ ‚t          d d¬¦  «        }t	          j        t	          j        |¦  «        ¦  «         |                     t          ¦  «        }t	          j        t	          j        |¦  «        ¦  «        } |d¦  «         d S )Nr   r$   r   )r   rX   r(   r!   ÚpickleÚloadsÚdumpsr
  r7   r8   r9   r5   r%   r  r  Ú	load_item)	r^   r-   r_   Úoutputrå   r  r  Úmemory2Úgps	            r    Útest_persistencer  F  sU  € å˜Vœ^°QÐ7Ñ7Ô7€FØ�Š•Q‰Œ€AØˆQˆq‰TŒT€FåŒ•V”\ !‘_”_Ñ%Ô%€Aà�nŠn˜QÑÔ€GÝ”—’˜aœoÔ6¸¼	À7ÑKÔK€JÝŒ7�>Š>˜*Ñ%Ô%Ð%Ð%Ð%Ø�Q”_×.Ò.°´	¸7Ð/CÑDÔDÒDÐDÐDÐDÝŒl�6œ<¨Ñ/Ô/Ñ0Ô0€GØÔÔ(¨GÔ,AÔ,JÒJÐJÐJÐJõ ˜T¨1Ð-Ñ-Ô-€FÝ
„L•”˜fÑ%Ô%Ñ&Ô&Ð&Ø�Š•Q‰Œ€AÝ	Œ•f”l 1‘o”oÑ	&Ô	&€BØ€B€q�E„E€E€E€Er"   c                 ó¦  — t          t          | j        ¦  «        t          | j        d¬¦  «                             t          ¦  «        fD ]‡}|                     d¦  «        }|rJ ‚t          |t          ¦  «        sJ ‚ |d¦  «        dk    sJ ‚|                     d¦  «        }|sJ ‚t          |t          ¦  «        sJ ‚|                     ¦   «          Œˆd S )Nr   r$   r   é   )	r   r!   rX   r   r(   Úcheck_call_in_cacherÑ   Úboolr[   )r^   r+   Úresults      r    Útest_check_call_in_cacher  ]  sØ   € Ý�q &¤.Ñ1Ô1Ý ¤¸Ð;Ñ;Ô;×AÒAÅ!ÑDÔDðFð 	ð 	ˆà×)Ò)¨!Ñ,Ô,ˆØÐÐÐÝ˜&¥$Ñ'Ô'Ð'Ð'Ð'Øˆt�A‰wŒw˜!Š|ˆ|ˆ|ˆ|Ø×)Ò)¨!Ñ,Ô,ˆØˆˆˆÝ˜&¥$Ñ'Ô'Ð'Ð'Ð'Ø�
Š
‰Œˆˆð	ð 	r"   c                 óÖ  — t          t          t          | j        ¦  «        t	          t          ¦  «        t          | j        d¬¦  «                             t          ¦  «        t          d ¬¦  «                             t          ¦  «        ft          t          t          t          f¦  «        D ]¿\  }} |d¦  «        dk    sJ ‚| 	                    d¦  «        }t          ||¦  «        sJ ‚|                     ¦   «         dk    sJ ‚|                     ¦   «          t          t          ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          ŒÀd S )Nr   r$   ©r%   r   r  )Úzipr   r!   rX   r   r   r(   r   r   Úcall_and_shelverÑ   Úgetr[   r   ÚKeyError)r^   r+   ÚResultr  s       r    Útest_call_and_shelver&  j  s„  € õ �]­1¨f¬nÑ=Ô=Ý-­aÑ0Ô0Ý#¨V¬^Ø,-ð/ñ /ô /ß/4ªuµQ©x¬xÝ#¨TÐ2Ñ2Ô2×8Ò8½Ñ;Ô;ð	õ -Õ.@Ý,Õ.@ðBñCô Cð ð ‰ˆˆfð ˆt�A‰wŒw˜!Š|ˆ|ˆ|ˆ|Ø×%Ò% aÑ(Ô(ˆÝ˜& &Ñ)Ô)Ð)Ð)Ð)Ø�zŠz‰|Œ|˜qÒ Ð Ð Ð à�Š‰ŒˆÝ•HÑÔð 	ð 	Ø�JŠJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š‰Œˆˆð!ð s   Ä(E	Å	E	ÅE	c                 óž  — t          | j        d¬¦  «                             t          ¦  «        }|                     d¦  «        }t          |t          ¦  «        sJ ‚t          t          ¦  «        5 }|j	        |j
        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚dt          |d         j        ¦  «        v sJ ‚d S )Nr   r$   r   r   z1The 'argument_hash' attribute has been deprecatedéÿÿÿÿ)r   rX   r(   r!   r"  rÑ   r   r   ÚDeprecationWarningÚargument_hashr  r*   rž   rŸ   )r^   r+   r  r3   s       r    Ú"test_call_and_shelve_argument_hashr+  €  s  € õ ˜6œ>°1Ð5Ñ5Ô5×;Ò;½AÑ>Ô>€DØ×!Ò! !Ñ$Ô$€FÝ�f�oÑ.Ô.Ð.Ð.Ð.Ý	Õ!Ñ	"Ô	"ð 6 aØÔ# v¤~Ò5Ð5Ð5Ð5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6åˆq‰6Œ6�QŠ;ˆ;ˆ;ˆ;Ø>Ýˆq�ŒuŒ}ÑÔðð ð ð ð ð s   Á/BÂBÂBc                 óö  — |                       d¦  «        }|                     d¦  «         t          j        |j        ¦  «        j        }t          j        d¦  «         |                     ¦   «         dk    sJ ‚|t          j        |j        ¦  «        j        k    rt          j
        d¦  «         t          | j        d¬¦  «        }|                     t          ¦  «        }|                     d¦  «        }t          j                              |j        j        |j        |d¦  «        } |d¦  «        dk    sJ ‚t          j        |¦  «        j        }t          j        d	¦  «         |                     d¦  «        }t)          |t*          ¦  «        sJ ‚t          j        |¦  «        j        |k    sJ ‚t          j        d	¦  «         |                     ¦   «         dk    sJ ‚t          j        |¦  «        j        |k    sJ ‚d
S )z6Check call_and_shelve only load stored data if needed.Útest_accessç      à?z>filesystem does not support fine-grained access time attributer   r$   r   r2   r  r   N)r9   r;   r7   ÚstatrX   Úst_atimeÚtimeÚsleepÚreadÚpytestÚskipr   r(   r!   r
  r8   r5   r%   r  r"  rÑ   r   r#  )	r^   Útest_access_time_fileÚtest_access_timer-   r+   r  Úresult_pathÚfirst_access_timer  s	            r    Ú.test_call_and_shelve_lazily_load_stored_resultr:  �  sÎ  € à"ŸKšK¨Ñ6Ô6ÐØ×Ò Ñ.Ô.Ð.Ý”wÐ4Ô<Ñ=Ô=ÔFÐõ 	„Jˆs�O„O€OØ ×%Ò%Ñ'Ô'¨=Ò8Ð8Ð8Ð8à�2œ7Ð#8Ô#@ÑAÔAÔJÒJÐJõ 	Œð  ñ 	!ô 	!ð 	!õ ˜Vœ^°QÐ7Ñ7Ô7€FØ�<Š<�‰?Œ?€DØ×Ò Ñ"Ô"€GÝ”'—,’,˜vÔ3Ô<Ø#œ|¨W°lñDô D€Kàˆ4�‰7Œ7�aŠ<ˆ<ˆ<ˆ<Ýœ Ñ,Ô,Ô5ÐÝ„Jˆq�M„M€Mð ×!Ò! !Ñ$Ô$€FÝ�f�oÑ.Ô.Ð.Ð.Ð.ÝŒ7�;ÑÔÔ(Ð,=Ò=Ð=Ð=Ð=Ý„Jˆq�M„M€Mð �:Š:‰<Œ<˜1ÒÐÐÐÝŒ7�;ÑÔÔ(Ð+<Ò<Ð<Ð<Ð<Ð<Ð<r"   c                 ó8  — t          t          | j        ¦  «        t          t          ¦  «        fD ]ê}|                      d¦  «        j        }|                     d¦  «        }t          |d¦  «        5 }t          j        ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5 }t          j	        |¦  «        }d d d ¦  «         n# 1 swxY w Y   | 
                    ¦   «         | 
                    ¦   «         k    sJ ‚t          j        |¦  «         Œëd S )Nzpickling_test.datr   ÚwbÚrb)r   r!   rX   r   r9   r"  r:   r  ÚdumpÚloadr#  r7   r  )r^   r+   rf   r  ÚfpÚresult2s         r    Útest_memorized_picklingrB  ±  st  € Ý�q &¤.Ñ1Ô1Õ3CÅAÑ3FÔ3FÐGð ð ˆØ—;’;Ð2Ñ3Ô3Ô;ˆØ×%Ò% aÑ(Ô(ˆÝ�(˜DÑ!Ô!ð 	$ RÝŒK˜ Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$å�(˜DÑ!Ô!ð 	& RÝ”k "‘o”oˆGð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&à�{Š{‰}Œ} §
¢
¡¤Ò,Ð,Ð,Ð,Ý
Œ	�(ÑÔÐÐðð s$   Á0BÂB	ÂB	Â-CÃC	ÃC	c                 óX  — t          t          | j        ¦  «        }|                     d¦  «        }t          t          | j        ¦  «        }|                     d¦  «        }|                     ¦   «         |                     ¦   «         k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚t          t          ¦  «        }t          |¦  «         t          |                     d¦  «        ¦  «         t          t          | j        dt          j        ¦   «         ¬¦  «        }|                     d¦  «        }|                     ¦   «          t          t          | j        d¬¦  «        }|                     d¦  «        }|                     ¦   «          t          t          | j        dt          j        ¦   «         ¬¦  «        }|                     d¦  «        }|                     ¦   «          t          t          | j        d¬¦  «        }|                     d¦  «        }|                     ¦   «          d S )Nr   é   )r&   Ú	timestamp)r&   r  )r   r!   rX   r"  r#  Úreprr   r1  )r^   r+   r  Úfunc2rA  s        r    Útest_memorized_reprrH  ½  s¬  € Ý�˜FœNÑ+Ô+€DØ×!Ò! !Ñ$Ô$€Få�!˜Vœ^Ñ,Ô,€EØ×#Ò# AÑ&Ô&€GØ�:Š:‰<Œ<˜7Ÿ;š;™=œ=Ò(Ð(Ð(Ð(Ý�‰:Œ:�˜e™œÒ$Ð$Ð$Ð$õ �AÑÔ€DÝˆ�J„J€JÝˆ×	Ò	˜aÑ	 Ô	 Ñ!Ô!Ð!õ �˜FœN°BÅ$Ä)Á+Ä+ÐNÑNÔN€DØ×!Ò! "Ñ%Ô%€FØ
‡J‚J�L„L€Lå�˜FœN°BÐ7Ñ7Ô7€DØ×!Ò! "Ñ%Ô%€FØ
‡J‚J�L„L€Lå�˜FœN°AÅÄÁÄÐMÑMÔM€DØ×!Ò! "Ñ%Ô%€FØ
‡J‚J�L„L€Lå�˜FœN°AÐ6Ñ6Ô6€DØ×!Ò! "Ñ%Ô%€FØ
‡J‚J�L„L€L€L€Lr"   c                 ó”  — |                      d¦  «        j        }t          j                             |d¦  «        }d}t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     |¦  «         dd l}t          |j        d¬¦  «        }| 
                    |j        ¦  «        }	 |	d¦  «          |	d¦  «          |	d¦  «         t          |d¦  «        5 }|                     d	|z   ¦  «         d d d ¦  «         n# 1 swxY w Y    |	d¦  «          |	d¦  «         t          j        |¦  «         t          j         |¦  «         d
}t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y    |	d¦  «          |	d¦  «         t          j                             d¦  «         t          j                             d¦  «         dd l}| 
                    |j        ¦  «        }	 |	d¦  «          |	d¦  «         |                      ¦   «         \  }
}|
dk    sJ ‚d S )NÚ
tmp_importztmp_joblib_.pyz$def f(x):
    print(x)
    return x
r3   r   r$   r   r   z

z-def f(x):
    print("x=%s" % x)
    return x
z
Reloading
Útmp_joblib_z1
2
Reloading
x=1
)ÚmkdirrX   r7   r8   r9   r:   r;   Úsyspath_prependrK  r   r(   r!   rY   rZ   ÚsysÚstdoutÚmodulesÚpopÚ
readouterr)Úcapsysr^   rÕ   Údir_namerf   ÚcontentÚmodule_fileÚtmpr-   r!   ra   Úerrs               r    Útest_memory_file_modificationrY  Ý  sÿ  € ð �|Š|˜LÑ)Ô)Ô1€HÝŒw�|Š|˜HÐ&6Ñ7Ô7€HØ7€GÝ	ˆh˜Ñ	Ô	ð # Ø×Ò˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð ×Ò Ñ)Ô)Ð)ØÐÐÐå˜Vœ^°QÐ7Ñ7Ô7€FØ�Š�S”UÑÔ€Aà€A€a�D„D€DØ€A€a�D„D€DØ€A€a�D„D€Dõ 
ˆh˜Ñ	Ô	ð , Ø×Ò˜& 7Ñ*Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð €A€a�D„D€DØ€A€a�D„D€Dõ „M�(ÑÔÐÝ„HˆXÑÔÐà@€GÝ	ˆh˜Ñ	Ô	ð # Ø×Ò˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð €A€a�D„D€DØ€A€a�D„D€Dõ „J×Ò�]Ñ#Ô#Ð#Ý„K‡O‚O�MÑ"Ô"Ð"ØÐÐÐØ�Š�S”UÑÔ€Að €A€a�D„D€DØ€A€a�D„D€Dà× Ò Ñ"Ô"�H€CˆØÐ*Ò*Ð*Ð*Ð*Ð*Ð*s6   ÁA/Á/A3Á6A3Ã4DÄDÄ DÅ4FÆFÆFc                 ó   — d S rA   r   ©r    r¡   s     r    Ú_function_to_cacher\    s   € à€Dr"   c                 ó   — | |z   S rA   r   r[  s     r    Ú_sumr^    ó   € Øˆq‰5€Lr"   c                 ó   — | |z  S rA   r   r[  s     r    Ú_productra    r_  r"   c                 óª  — t           j        t          _        t          | j        d¬¦  «        }|                     t          ¦  «        } |dd¦  «        dk    sJ ‚ |dd¦  «        dk    sJ ‚t          t          ¦  «        5  t          j        t          _         |dd¦  «        dk    sJ ‚ |dd¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r$   r   r   r'   )	r^  ry   r\  r   rX   r(   r   r   ra  )r^   r-   r!   s      r    Ú*test_memory_in_memory_function_code_changerc  "  s  € Ý"&¤-ÕÔå˜Vœ^°QÐ7Ñ7Ô7€FØ�ŠÕ'Ñ(Ô(€Aàˆ1ˆQ�‰7Œ7�aŠ<ˆ<ˆ<ˆ<Øˆ1ˆQ�‰7Œ7�aŠ<ˆ<ˆ<ˆ<å	Õ%Ñ	&Ô	&ð ð å&.Ô&7ÕÔ#Øˆq��A‰wŒw˜!Š|ˆ|ˆ|ˆ|Øˆq��A‰wŒw˜!Š|ˆ|ˆ|ˆ|ˆ|ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á?;CÃCÃCc                  óN   — t          d ¬¦  «        } |                      ¦   «          d S )Nr   )r   r[   )r-   s    r    Ú$test_clear_memory_with_none_locationre  2  s#   € Ý˜TÐ"Ñ"Ô"€FØ
‡L‚L�N„N€N€N€Nr"   Úkw1Úkw2©rf  rg  c                ó   — | |||fS rA   r   )r    r¡   rf  rg  s       r    Úfunc_with_kwonly_argsrj  7  s   € Øˆa��cˆ>Ðr"   r    r¡   Úreturnc                 ó   — | |z   S rA   r   r[  s     r    Úfunc_with_signaturerm  ;  r_  r"   c                 óz  — t          | j        d¬¦  «        }|                     t          ¦  «        } |ddd¬¦  «        dk    sJ ‚t	          t
          ¦  «        5 } |dddd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d
¦  «          |dddd¬¦  «         t	          t
          ¦  «        5 } |dddd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d
¦  «         |                     t          dg¬¦  «        } |dddd¬¦  «        dk    sJ ‚ |dddd¬¦  «        dk    sJ ‚d S )Nr   r$   r   r   r'   )rf  )r   r   r'   rg  rs   )rg  z?Keyword-only parameter 'kw1' was passed as positional parameterrh  rg  ré   )r   r   r'   rs   Úignored)r   rX   r(   rj  r   Ú
ValueErrorÚmatch)r^   r-   Úfunc_cachedÚexcinfos       r    Ú!test_memory_func_with_kwonly_argsrt  ?  sø  € Ý˜Vœ^°QÐ7Ñ7Ô7€FØ—,’,Õ4Ñ5Ô5€Kàˆ;�q˜! Ð#Ñ#Ô#Ð'7Ò7Ð7Ð7Ð7õ 
•
Ñ	Ô	ð $˜wØˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à‡M‚Mð ñ ô ð ð
 €K��1˜! Ð#Ñ#Ô#Ð#å	•
Ñ	Ô	ð $˜wØˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à‡M‚Mð ñ ô ð ð —,’,Õ4¸e¸W�,ÑEÔE€KØˆ;�q˜! ¨Ð*Ñ*Ô*¨lÒ:Ð:Ð:Ð:Øˆ;�q˜! ¨	Ð2Ñ2Ô2°lÒBÐBÐBÐBÐBÐBs$   ÁA5Á5A9Á<A9Â8CÃCÃCc                 óŠ   — t          | j        d¬¦  «        }|                     t          ¦  «        } |dd¦  «        dk    sJ ‚d S )Nr   r$   r   g       @g      @)r   rX   r(   rm  )r^   r-   rr  s      r    Útest_memory_func_with_signaturerv  [  sK   € Ý˜Vœ^°QÐ7Ñ7Ô7€FØ—,’,Õ2Ñ3Ô3€Kàˆ;�q˜"ÑÔ Ò#Ð#Ð#Ð#Ð#Ð#r"   c                 ó&  ‡‡— t          | j        d¬¦  «        }|                     ¦   «         d„ ¦   «         Št          t	          |¦  «        ¦  «        }|D ]} ‰|¦  «         Œt          ‰¦  «        Šˆfd„|D ¦   «         }ˆˆfd„|D ¦   «         }||‰fS )Nr   r$   c                 ó   — dS )NÁè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   ©rO   s    r    Úget_1000_bytesz(_setup_toy_cache.<locals>.get_1000_bytese  s   € àˆzr"   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )r
  )rn   rO   r{  s     €r    ú
<listcomp>z$_setup_toy_cache.<locals>.<listcomp>n  s7   ø€ ð (ð (ð (Øð $×0Ò0°Ñ5Ô5ð (ð (ð (r"   c                 óf   •— g | ]-}t           j                             ‰j        j        ‰|¦  «        ‘Œ.S r   )r7   r8   r9   r5   r%   )rn   r  r  r{  s     €€r    r}  z$_setup_toy_cache.<locals>.<listcomp>q  sF   ø€ ð 3ð 3ð 3à õ ”W—\’\ .Ô">Ô"GØ")¨7ñ4ô 4ð 3ð 3ð 3r"   )r   rX   r(   rW   r)   r   )	r^   Ú
num_inputsr-   ÚinputsrO   Úhash_dirnamesÚfull_hashdirsr  r{  s	          @@r    Ú_setup_toy_cacherƒ  b  sã   øø€ Ý˜Vœ^°QÐ7Ñ7Ô7€Fà‡\‚\�^„^ðð ñ „^ðõ •%˜
Ñ#Ô#Ñ$Ô$€FØð ð ˆØˆ�sÑÔÐÐå$ ^Ñ4Ô4€Gð(ð (ð (ð (Ø &ð(ñ (ô (€Mð3ð 3ð 3ð 3ð 3à$1ð3ñ 3ô 3€Mð �= .Ð0Ð0r"   c                 ó^  ‡— t          | ¦  «        \  }}}|j                             ¦   «         }d„ |D ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚d„ Šˆfd„|D ¦   «         }d„ |D ¦   «         }||k    sJ ‚d„ |D ¦   «         }d„ |D ¦   «         }	d„ |D ¦   «         }
|
|	k    sJ ‚d S )Nc                 ó   — g | ]	}|j         ‘Œ
S r   )r8   ©rn   Úcis     r    r}  z#test__get_items.<locals>.<listcomp>z  s   € Ð)Ð)Ð)˜R�”Ð)Ð)Ð)r"   c                 óv   ‡ — ˆ fd„t          j        ‰ ¦  «        D ¦   «         }t          d„ |D ¦   «         ¦  «        S )Nc                 óP   •— g | ]"}t           j                             ‰|¦  «        ‘Œ#S r   ©r7   r8   r9   )rn   ÚfnÚ	directorys     €r    r}  z;test__get_items.<locals>.get_files_size.<locals>.<listcomp>~  s9   ø€ ð 7ð 7ð 7Øõ ”g—l’l 9¨bÑ1Ô1ð 7ð 7ð 7r"   c              3   óT   K  — | ]#}t           j                             |¦  «        V — Œ$d S rA   )r7   r8   Úgetsize)rn   r@  s     r    rp   z:test__get_items.<locals>.get_files_size.<locals>.<genexpr>€  s0   è è € Ð<Ð<¨2•2”7—?’? 2Ñ&Ô&Ð<Ð<Ð<Ð<Ð<Ð<r"   )r7   r{   Úsum)rŒ  Ú
full_pathss   ` r    Úget_files_sizez'test__get_items.<locals>.get_files_size}  sR   ø€ ð7ð 7ð 7ð 7Ý "¤
¨9Ñ 5Ô 5ð7ñ 7ô 7ˆ
åÐ<Ð<°Ð<Ñ<Ô<Ñ<Ô<Ð<r"   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )rn   Úhash_dirr‘  s     €r    r}  z#test__get_items.<locals>.<listcomp>‚  s3   ø€ ð !<ð !<ð !<Ø%-ð "0 °Ñ!9Ô!9ð !<ð !<ð !<r"   c                 ó   — g | ]	}|j         ‘Œ
S r   )Úsizer†  s     r    r}  z#test__get_items.<locals>.<listcomp>„  s   € Ð0Ð0Ð0 B˜œÐ0Ð0Ð0r"   c                 óN   — g | ]"}t           j                             |d ¦  «        ‘Œ#S )r2   rŠ  )rn   r“  s     r    r}  z#test__get_items.<locals>.<listcomp>‡  s8   € ð 3ð 3ð 3Ø$õ œŸš X¨|Ñ<Ô<ð 3ð 3ð 3r"   c                 ó†   — g | ]>}t           j                              t          j                             |¦  «        ¦  «        ‘Œ?S r   )ÚdatetimeÚfromtimestampr7   r8   Úgetatime)rn   r‹  s     r    r}  z#test__get_items.<locals>.<listcomp>Š  sI   € ð $ð $ð $àõ 	Ô×'Ò'­¬×(8Ò(8¸Ñ(<Ô(<Ñ=Ô=ð$ð $ð $r"   c                 ó   — g | ]	}|j         ‘Œ
S r   ©Úlast_accessr†  s     r    r}  z#test__get_items.<locals>.<listcomp>�  s   € Ð4Ð4Ð4¨�R”^Ð4Ð4Ð4r"   )rƒ  r5   r6   Úset)r^   r-   Úexpected_hash_dirsr/   ÚitemsÚ	hash_dirsÚexpected_hash_cache_sizesÚhash_cache_sizesÚoutput_filenamesÚexpected_last_accessesÚlast_accessesr‘  s              @r    Útest__get_itemsr§  w  s(  ø€ Ý$4°VÑ$<Ô$<Ñ!€FÐ ØÔ ×*Ò*Ñ,Ô,€EØ)Ð) 5Ð)Ñ)Ô)€IÝˆy‰>Œ>�SÐ!3Ñ4Ô4Ò4Ð4Ð4Ð4ð=ð =ð =ð
!<ð !<ð !<ð !<Ø1:ð!<ñ !<ô !<Ðà0Ð0¨%Ð0Ñ0Ô0ÐØÐ8Ò8Ð8Ð8Ð8ð3ð 3Ø(1ð3ñ 3ô 3Ðð$ð $à"ð$ñ $ô $Ðð 5Ð4¨eÐ4Ñ4Ô4€MØÐ2Ò2Ð2Ð2Ð2Ð2Ð2r"   c                 óà  — t          | d¬¦  «        \  }}}|j                             d¦  «        }|g k    sJ ‚t          | ¦  «        \  }}}|j                             ¦   «         }|j                             d¦  «        }t	          |¦  «        }t
                               t          |¦  «        t          |¦  «        ¦  «        sJ ‚t	          |¦  «        |dz
  k    sJ ‚|j                             d¦  «        }t          |¦  «        t          |¦  «        k    sJ ‚|j                             d¦  «        }|g k    sJ ‚d}	|j                             |	¦  «        }
t          |
¦  «        sJ t          |¦  «        ¦   «         ‚|j                             d	¦  «        }t          |¦  «                             |¦  «        }t          d
„ |D ¦   «         ¦  «        t          d„ |D ¦   «         ¦  «        k    sJ ‚d S )Nr   )r  Ú1KÚ2Kr   i   Ú1Méô  ip  c              3   ó$   K  — | ]}|j         V — Œd S rA   rœ  r†  s     r    rp   z,test__get_items_to_delete.<locals>.<genexpr>´  s$   è è € Ð?Ð? 2�”Ð?Ð?Ð?Ð?Ð?Ð?r"   c              3   ó$   K  — | ]}|j         V — Œd S rA   rœ  r†  s     r    rp   z,test__get_items_to_delete.<locals>.<genexpr>µ  s$   è è € Ð9Ð9 2�”Ð9Ð9Ð9Ð9Ð9Ð9r"   )rƒ  r5   Ú_get_items_to_deleter6   r*   rž  ÚissubsetÚsortedÚ
differenceÚmaxÚmin)r^   r-   r/   Úitems_to_deleteÚexpected_hash_cachedirsr   Ú	nb_hashesÚitems_to_delete_2048bÚitems_to_delete_emptyÚbytes_limit_too_smallÚitems_to_delete_500bÚitems_to_delete_6000bÚsurviving_itemss                r    Útest__get_items_to_deleter¾  ‘  s	  € å# F°qÐ9Ñ9Ô9�L€FˆAˆqØÔ*×?Ò?ÀÑEÔE€OØ˜bÒ Ð Ð Ð å)9¸&Ñ)AÔ)AÑ&€FÐ# QØÔ ×*Ò*Ñ,Ô,€Eð Ô*×?Ò?ÀÑEÔE€OÝÐ+Ñ,Ô,€IÝ�<Š<�˜OÑ,Ô,­c°%©j¬jÑ9Ô9Ð9Ð9Ð9ÝˆÑÔ 9¨q¡=Ò0Ð0Ð0Ð0ð #Ô0×EÒEÀdÑKÔKÐÝ�/Ñ"Ô"¥fÐ-BÑ&CÔ&CÒCÐCÐCÐCð #Ô0×EÒEÀdÑKÔKÐØ  BÒ&Ð&Ð&Ð&ð  ÐØ!Ô/×DÒDØñô Ðõ Ð#Ñ$Ô$Ð0Ð0¥c¨%¡j¤jÑ0Ô0Ð0ð #Ô0×EÒEÀdÑKÔKÐÝ˜%‘j”j×+Ò+Ð,AÑBÔB€OåÐ?Ð?Ð)>Ð?Ñ?Ô?Ñ?Ô?ÝÐ9Ð9¨Ð9Ñ9Ô9Ñ9Ô9ò:ð :ð :ð :ð :ð :r"   c                 ó  — t          | ¦  «        \  }}}|j                             ¦   «         }|                     ¦   «          |j                             ¦   «         }t	          |¦  «        t	          |¦  «        k    sJ ‚|                     d¬¦  «         |j                             ¦   «         }t	          |¦  «        t	          |¦  «        k    sJ ‚|                     d¬¦  «         |j                             ¦   «         }t
                               t          |¦  «        t          |¦  «        ¦  «        sJ ‚t          |¦  «        dk    sJ ‚d}|                     |¬¦  «         |j                             ¦   «         }|g k    sJ ‚d S )Nr«  )Úbytes_limitÚ3Kr   r¬  ©rƒ  r5   r6   Úreduce_sizer±  rž  r°  r*   )r^   r-   r/   Úref_cache_itemsÚcache_itemsrº  s         r    Ú#test_memory_reduce_size_bytes_limitrÆ  ¸  s{  € Ý# FÑ+Ô+�L€FˆAˆqØÔ*×4Ò4Ñ6Ô6€Oð ×ÒÑÔÐØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð ×Ò 4ÐÑ(Ô(Ð(ØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð ×Ò 4ÐÑ(Ô(Ð(ØÔ&×0Ò0Ñ2Ô2€KÝ�<Š<�˜KÑ(Ô(­#¨oÑ*>Ô*>Ñ?Ô?Ð?Ð?Ð?Ýˆ{ÑÔ˜qÒ Ð Ð Ð ð  ÐØ
×ÒÐ#8ÐÑ9Ô9Ð9ØÔ&×0Ò0Ñ2Ô2€KØ˜"ÒÐÐÐÐÐr"   c                 ó  — t          | ¦  «        \  }}}|j                             ¦   «         }|                     ¦   «          |j                             ¦   «         }t	          |¦  «        t	          |¦  «        k    sJ ‚|                     d¬¦  «         |j                             ¦   «         }t	          |¦  «        t	          |¦  «        k    sJ ‚|                     d¬¦  «         |j                             ¦   «         }t
                               t          |¦  «        t          |¦  «        ¦  «        sJ ‚t          |¦  «        dk    sJ ‚|                     d¬¦  «         |j                             ¦   «         }|g k    sJ ‚d S )NrR   )Úitems_limitr   r   rÂ  )r^   r-   r/   rÄ  rÅ  s        r    Ú#test_memory_reduce_size_items_limitrÉ  Ô  st  € Ý# FÑ+Ô+�L€FˆAˆqØÔ*×4Ò4Ñ6Ô6€Oð ×ÒÑÔÐØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð ×Ò 2ÐÑ&Ô&Ð&ØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð ×Ò 1ÐÑ%Ô%Ð%ØÔ&×0Ò0Ñ2Ô2€KÝ�<Š<�˜KÑ(Ô(­#¨oÑ*>Ô*>Ñ?Ô?Ð?Ð?Ð?Ýˆ{ÑÔ˜qÒ Ð Ð Ð ð ×Ò 1ÐÑ%Ô%Ð%ØÔ&×0Ò0Ñ2Ô2€KØ˜"ÒÐÐÐÐÐr"   c                 ó¸  — dd l }dd l}t          | ¦  «        \  }}}|j                             ¦   «         }|                     ¦   «          |j                             ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚|                      |j        d¬¦  «        ¬¦  «         |j                             ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚ |j        d¦  «          |d¦  «          |d¦  «         |                      |j        d¬¦  «        ¬¦  «         |j                             ¦   «         }t           
                    t          |¦  «        t          |¦  «        ¦  «        rJ ‚t          |¦  «        dk    sJ ‚|                      |j        d¬¦  «        ¬¦  «         |j                             ¦   «         }|g k    sJ ‚d S )	Nr   r   )Údays)Ú	age_limitr(  éþÿÿÿ©Úsecondsr   )r1  r˜  rƒ  r5   r6   rÃ  r±  Ú	timedeltar2  rž  r°  r*   )r^   r1  r˜  r-   r/   Ú	put_cacherÄ  rÅ  s           r    Ú!test_memory_reduce_size_age_limitrÒ  ï  sã  € Ø€K€K€KØ€O€O€OÝ+¨FÑ3Ô3Ñ€FˆAˆyØÔ*×4Ò4Ñ6Ô6€Oð ×ÒÑÔÐØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð ×ÒÐ!3 Ô!3¸Ð!;Ñ!;Ô!;ÐÑ<Ô<Ð<ØÔ&×0Ò0Ñ2Ô2€KÝ�/Ñ"Ô"¥f¨[Ñ&9Ô&9Ò9Ð9Ð9Ð9ð €D„Jˆq�M„M€MØ€Iˆb�M„M€MØ€Iˆb�M„M€MØ
×ÒÐ!3 Ô!3¸AÐ!>Ñ!>Ô!>ÐÑ?Ô?Ð?ØÔ&×0Ò0Ñ2Ô2€KÝ�|Š|�C Ñ,Ô,­c°/Ñ.BÔ.BÑCÔCÐCÐCÐCÝˆ{ÑÔ˜qÒ Ð Ð Ð ð ×ÒÐ!3 Ô!3¸AÐ!>Ñ!>Ô!>ÐÑ?Ô?Ð?ØÔ&×0Ò0Ñ2Ô2€KØ˜"ÒÐÐÐÐÐr"   c                 óÌ   — t          | ¦  «        \  }}}|                     ¦   «          t          j        |j        j        ¦  «        g k    sJ ‚|                     d¬¦  «        rJ ‚d S )Nrs   )Ú
stacklevel)rƒ  r[   r7   r{   r5   r%   r	  )r^   r-   r/   r_   s       r    Útest_memory_clearrÕ    sh   € Ý# FÑ+Ô+�L€FˆAˆqØ
‡L‚L�N„N€NåŒ:�fÔ*Ô3Ñ4Ô4¸Ò:Ð:Ð:Ð:ð ×*Ò*°aÐ*Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r"   c                  ó   — dgdz  } | S )Nry  iè  r   )Úcomplex_objs    r    Úfast_func_with_complex_outputrØ    s   € Ø�, Ñ%€KØÐr"   c                 óZ   — d„ t          t          d¦  «        ¦  «        D ¦   «         }| r|ndS )Nc                 ó.   — i | ]}t          |¦  «        |“ŒS r   )rž   )rn   r.   s     r    ú
<dictcomp>z=fast_func_with_conditional_complex_output.<locals>.<dictcomp>  s    € Ð6Ð6Ð6 •3�q‘6”6˜1Ð6Ð6Ð6r"   g     jø@zsimple output)r)   Úint)Úcomplex_outputr×  s     r    Ú)fast_func_with_conditional_complex_outputrÞ    s0   € Ø6Ð6¥e­C°©H¬H¡o¤oÐ6Ñ6Ô6€KØ(Ð=ˆ;ˆ;¨oÐ=r"   c                 ó  ‡— t          | j        ¬¦  «        }|                     t          ¦  «        Š t	          d¬¦  «        ˆfd„t          d¦  «        D ¦   «         ¦  «         |                     ¦   «         \  }}d}||vsJ ‚||vsJ ‚d S )Nr   r   ri   c              3   óF   •K  — | ]} t          ‰¦  «        ¦   «         V — Œd S rA   rl   ©rn   r.   rr  s     €r    rp   zMtest_cached_function_race_condition_when_persisting_output.<locals>.<genexpr>*  s4   øè è € Ð@Ð@°!Ð+•w˜{Ñ+Ô+Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r"   r'   rÏ   )r   rX   r(   rØ  r   r)   rR  ©r^   Úcapfdr-   rO  ÚstderrrÙ   rr  s         @r    Ú:test_cached_function_race_condition_when_persisting_outputrå  "  s£   ø€ õ
 ˜Vœ^Ð,Ñ,Ô,€FØ—,’,Õ<Ñ=Ô=€Kà…H�AÐÑÔÐ@Ð@Ð@Ð@µu¸Q±x´xÐ@Ñ@Ô@Ñ@Ô@Ð@à×%Ò%Ñ'Ô'�N€FˆFð
 6€MØ Ð&Ð&Ð&Ð&Ø Ð&Ð&Ð&Ð&Ð&Ð&r"   c                 ó  ‡— t          | j        ¬¦  «        }|                     t          ¦  «        Š t	          d¬¦  «        ˆfd„t          d¦  «        D ¦   «         ¦  «         |                     ¦   «         \  }}d}||vsJ ‚||vsJ ‚d S )Nr   r   ri   c              3   ó^   •K  — | ]'} t          ‰¦  «        |d z  dk    rdnd¦  «        V — Œ(dS )r   r   TFNrl   rá  s     €r    rp   zOtest_cached_function_race_condition_when_persisting_output_2.<locals>.<genexpr>A  sY   øè è € ð *ð *Øð ,•w˜{Ñ+Ô+°A¸±E¸Q²J°J¨D¨DÀEÑJÔJð *ð *ð *ð *ð *ð *r"   r'   rÏ   )r   rX   r(   rÞ  r   r)   rR  râ  s         @r    Ú<test_cached_function_race_condition_when_persisting_output_2rè  6  sº   ø€ õ ˜Vœ^Ð,Ñ,Ô,€FØ—,’,ÕHÑIÔI€Kà…H�AÐÑÔð *ð *ð *ð *Ý % a¡¤ð*ñ *ô *ñ *ô *ð *ð ×%Ò%Ñ'Ô'�N€FˆFð
 6€MØ Ð&Ð&Ð&Ð&Ø Ð&Ð&Ð&Ð&Ð&Ð&r"   c                 ó@  — t          | j        ¬¦  «        }d„ }|                     |¦  «        }d} ||¦  «        \  }}||k    sJ ‚t          |¦  «         t	          ||¦  «        } ||¦  «        \  }	}
t          |¦  «        dk    sJ ‚d}||d         v sJ ‚|	|k    sJ ‚|
|k    sJ ‚t          |¦  «         |                     |¦  «        }	 |                     ¦   «          t          d¦  «        ‚# t          $ r%}d}|t          |j        ¦  «        v sJ ‚Y d }~d S d }~ww xY w)	Nr   c                 óT   — t          j        d¦  «         | t          j         ¦   «         fS )Ng{®Gáz„?©r1  r2  rz  s    r    r+   zItest_memory_recomputes_after_an_error_while_loading_results.<locals>.funcR  s%   € õ 	Œ
�4ÑÔÐØ•D”I‘K”KÐÐr"   rO   r   rÏ   r   z<It normally not possible to load a corrupted MemorizedResultzis corrupted)r   rX   r(   r>   rJ   r*   r"  r#  ÚAssertionErrorr$  rž   rô   )r^   rÕ   r-   r+   Úcached_funcÚ	input_argrO   rE  r×   Úrecomputed_argÚrecomputed_timestamprÙ   Ú	referenceÚerŸ   s                  r    Ú;test_memory_recomputes_after_an_error_while_loading_resultsró  N  s�  € å˜Vœ^Ð,Ñ,Ô,€Fð ð  ð  ð —,’,˜tÑ$Ô$€KØ€IØ �[ Ñ+Ô+�N€Cˆð �)ÒÐÐÐõ ˜fÑ%Ô%Ð%õ 5°[À+ÑNÔNÐØ+6¨;°sÑ+;Ô+;Ñ(€NÐ(ÝÐ Ñ!Ô! QÒ&Ð&Ð&Ð&Ø5€MØÐ-¨aÔ0Ð0Ð0Ð0Ð0Ø˜SÒ Ð Ð Ð Ø )Ò+Ð+Ð+Ð+õ ˜fÑ%Ô%Ð%Ø×+Ò+¨CÑ0Ô0€Ið&Ø�Š‰ŒˆÝðñ
ô 
ð 	
øõ ð &ð &ð &Ø ˆØ�#˜aœf™+œ+Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%øøøøð&øøøs   Ã#C. Ã.
DÃ8DÄDc                   ó   — e Zd ZdZdS )ÚIncompleteStoreBackendzAThis backend cannot be instantiated and should raise a TypeError.N)rß   r]   rà   Ú__doc__r   r"   r    rõ  rõ  }  s   € € € € € ØKÐKØ€Dr"   rõ  c                   óB   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚDummyStoreBackendz(A dummy store backend that does nothing.c                 ó   — dS )zOpen an item on store.Nr   )Úselfrô   rõ   s      r    Ú
_open_itemzDummyStoreBackend._open_item…  ó   € àˆr"   c                 ó   — dS )z!Check if an item location exists.Nr   ©rú  r%   s     r    Ú_item_existszDummyStoreBackend._item_exists‰  rü  r"   c                 ó   — dS )z&Move an item from src to dst in store.Nr   )rú  ÚsrcÚdsts      r    Ú
_move_itemzDummyStoreBackend._move_item�  rü  r"   c                 ó   — dS )zCreate location on store.Nr   rþ  s     r    Úcreate_locationz!DummyStoreBackend.create_location‘  rü  r"   c                 ó   — dS )z&Check if an object exists in the storeFr   ©rú  Úobjs     r    r  zDummyStoreBackend.exists•  s   € àˆur"   c                 ó   — dS )zClear object on storeNr   r  s     r    Úclear_locationz DummyStoreBackend.clear_location™  rü  r"   c                 ó   — g S )z3Returns the whole list of items available in cache.r   )rú  s    r    r6   zDummyStoreBackend.get_items�  s   € àˆ	r"   c                 ó   — dS )zConfigure the storeNr   )rú  r%   rô   rõ   s       r    Ú	configurezDummyStoreBackend.configure¡  rü  r"   N)rß   r]   rà   rö  rû  rÿ  r  r  r  r
  r6   r  r   r"   r    rø  rø  ‚  s’   € € € € € Ø2Ð2ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r"   rø  Úinvalid_prefixc                 ó¨   — t          t          ¦  «        5 }t          | d ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «         d S )Nz&Store backend name should be a string*©r   rp  r
   rq  )r  rs  s     r    Ú(test_register_invalid_store_backends_keyr  ¦  s�   € õ 
•
Ñ	Ô	ð 5˜wÝ˜~¨tÑ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5à‡M‚MÐ;Ñ<Ô<Ð<Ð<Ð<ó   •2²6¹6c                  ó¨   — t          t          ¦  «        5 } t          dd ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S )NÚfsz.Store backend should inherit StoreBackendBase*r  ©rs  s    r    Ú+test_register_invalid_store_backends_objectr  ®  s�   € õ 
•
Ñ	Ô	ð +˜wÝ˜t TÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +à‡M‚MÐCÑDÔDÐDÐDÐDr  c                  óª   — t          t          ¦  «        5 } t          dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S )Nz/tmp/joblibÚunknown)r%   ÚbackendzUnknown location*)r   Ú	TypeErrorr   rq  r  s    r    Ú!test_memory_default_store_backendr  ¶  sŽ   € å	•	Ñ	Ô	ð :˜gÝ˜¨yÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :à‡M‚MÐ&Ñ'Ô'Ð'Ð'Ð's   •3³7º7c                  óî   —  G d„ d¦  «        }  | ¦   «         }t          t          ¦  «        5 }t          d|¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}|t          |d         j        ¦  «        v sJ ‚d S )Nc                   ó   — e Zd ZdS )úHtest_warning_on_unknown_location_type.<locals>.NonSupportedLocationClassNrÞ   r   r"   r    ÚNonSupportedLocationClassr  ¾  râ   r"   r  Úlocalr   zbInstantiating a backend using a NonSupportedLocationClass as a location is not supported by joblibr   )r   ÚUserWarningr   rž   rŸ   )r  Úunsupported_locationr¢   Úexpected_mesages       r    Ú%test_warning_on_unknown_location_typer$  ½  sì   € ðð ð ð ð ñ ô ð à4Ð4Ñ6Ô6Ðå	�{Ñ	Ô	ð G˜xÝ˜wÐ1EÐFÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð-€Oð �c (¨1¤+Ô"5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   ¬A
Á
AÁAc                  ó  — d} t          | t          ¦  «         | t          ft          j        ¦   «         v sJ ‚t	          t
          ¦  «        5 }t          | d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     d¦  «         d S )NÚisbÚfake_locationznCan't instantiate abstract class IncompleteStoreBackend (without an implementation for|with) abstract methods*)r
   rõ  r   r   r   r  r   rq  )Úbackend_namers  s     r    Ú)test_instanciate_incomplete_store_backendr)  Ë  sÕ   € ð €LÝ˜<Õ)?Ñ@Ô@Ð@ØÕ0Ð1µ_Ô5JÑ5LÔ5LÐLÐLÐLÐLÝ	•	Ñ	Ô	ð >˜gÝ˜|¨_Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >à‡M‚Mð Kñ Lô Lð Lð Lð Ls   Á
A'Á'A+Á.A+c                  ó¾   — d} t          | t          ¦  «         | t          ft          j        ¦   «         v sJ ‚t	          | d¦  «        }t          |t          ¦  «        sJ ‚d S )NÚdsbÚdummy_location)r
   rø  r   r   r   rÑ   )r(  Úbackend_objs     r    Útest_dummy_store_backendr.  ×  sg   € ð €LÝ˜<Õ):Ñ;Ô;Ð;ØÕ+Ð,µÔ0EÑ0GÔ0GÐGÐGÐGÐGå(¨Ð7GÑHÔH€KÝ�kÕ#4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5r"   c                  óh   — t          j        d¦  «        } t          d| ¦  «        }|j        dk    sJ ‚d S )NÚsome_folderr   )ÚpathlibÚPathr   r%   )r8   r-  s     r    Ú0test_instanciate_store_backend_with_pathlib_pathr3  â  s:   € åŒ<˜Ñ&Ô&€DÝ(¨°$Ñ7Ô7€KØÔ =Ò0Ð0Ð0Ð0Ð0Ð0r"   c                 óV  — d}t          ¦   «         }|j        �J ‚t          |¦  «         t          |¦  «        |                     d ¬¦  «        k    sJ ‚|                     | j        ¦  «         t          |¦  «        |                     | j        ¬¦  «        k    sJ ‚t          |¦  «         d S )Nz-FileSystemStoreBackend(location="{location}")r   )r   r%   rF  rž   rt   r  rX   )r^   Úrepr_patternr  s      r    Ú"test_filesystem_store_backend_reprr6  é  s¨   € ð C€LÝ$Ñ&Ô&€GØÔÐ#Ð#Ð#åˆ�M„M€Måˆw‰<Œ<˜<×.Ò.¸Ð.Ñ=Ô=Ò=Ð=Ð=Ð=ð ×Ò�f”nÑ%Ô%Ð%åˆw‰<Œ<˜<×.Ò.¸¼Ð.ÑGÔGÒGÐGÐGÐGåˆ�M„M€M€M€Mr"   c                 óâ  — d„ }t          | j        d¬¦  «        }|                     |¦  «        }d}t          |¦  «        |                     ||j        j        ¬¦  «        k    sJ ‚|                     dd¦  «        }d}t          |¦  «        |                     |j        j        |j        |j	        ¬¦  «        k    sJ ‚t          |¦  «        d	                     |j        j        ¬
¦  «        k    sJ ‚d S )Nc                 ó   — | |z   S rA   r   r[  s     r    Úmy_funcz)test_memory_objects_repr.<locals>.my_func   s   € Ø�1‰uˆr"   r   r$   z/MemorizedFunc(func={func}, location={location}))r+   r%   é*   zJMemorizedResult(location="{location}", func="{func}", args_id="{args_id}"))r%   r+   r  zMemory(location={location})r   )
r   rX   r(   rž   rt   r5   r%   r"  r  r  )r^   r9  r-   Úmemorized_funcÚmemorized_func_reprÚmemorized_resultÚmemorized_result_reprs          r    Útest_memory_objects_reprr?  ý  s<  € ðð ð õ ˜Vœ^°QÐ7Ñ7Ô7€FØ—\’\ 'Ñ*Ô*€NàKÐåˆ~ÑÔÐ"5×"<Ò"<ØØÔ%Ô.ð #=ñ #0ô #0ò 0ð 0ð 0ð 0ð &×5Ò5°b¸"Ñ=Ô=ÐðCÐõ ÐÑ Ô Ð$9×$@Ò$@ØÔ%Ô.ØÔ%Ø Ô(ð %Añ %*ô %*ò *ð *ð *ð *õ
 ˆv‰;Œ;Ð7×>Ò>ØÔ%Ô.ð ?ñ 0ô 0ò 0ð 0ð 0ð 0ð 0ð 0r"   c                 óŽ  — t          | j        ¬¦  «        }|j        d„ ¦   «         }|                     d¦  «        }t	          j        |¦  «        }t	          j        |¦  «        }|j        j        |j        j        k    sJ ‚|j	        |j	        k    sJ ‚|j
        |j
        k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚d S )Nr   c                 ó   — | dz  S rË   r   r™   s    r    r_   z'test_memorized_result_pickle.<locals>.g!  s   € à�!‰tˆr"   rs   )r   rX   r(   r"  r  r  r  r5   r%   r+   r  rž   )r^   r-   r_   r=  Úmemorized_result_pickleÚmemorized_result_loadss         r    Útest_memorized_result_picklerD    sè   € õ
 ˜Vœ^Ð,Ñ,Ô,€Fà„\ðð ñ „\ðð ×(Ò(¨Ñ+Ô+ÐÝ$œlÐ+;Ñ<Ô<ÐÝ#œ\Ð*AÑBÔBÐàÔ)Ô2ØÔ,Ô5ò6ð 6ð 6ð 6àÔ Ð$:Ô$?Ò?Ð?Ð?Ð?ØÔ#Ð'=Ô'EÒEÐEÐEÐEÝÐÑ Ô ¥CÐ(>Ñ$?Ô$?Ò?Ð?Ð?Ð?Ð?Ð?r"   c                 ó6  — |€g }t          | ¦  «        }t          |¦  «        }t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        k    sJ ‚|                     ¦   «         D ]}||v rŒ||         ||         k    sJ ‚Œd S rA   )Úvarsrž  Úkeys)ÚleftÚrightÚignored_attrsÚ	left_varsÚ
right_varsÚattrs         r    ÚcomparerN  0  s¦   € ØÐØˆå�T‘
”
€IÝ�e‘”€JÝˆy�~Š~ÑÔÑ Ô ¥C¨
¯ªÑ(9Ô(9Ñ$:Ô$:Ò:Ð:Ð:Ð:Ø—’Ñ Ô ð 3ð 3ˆØ�=Ð Ð ØØ˜Œ *¨TÔ"2Ò2Ð2Ð2Ð2Ð2ð3ð 3r"   Úmemory_kwargsr'   r   )rT   r&   r  Ú	parameterÚunused)rS   r&   Úbackend_optionsc                 óœ  — t          dd| j        i|¤Ž}t          j        t          j        |¦  «        ¦  «        }t          |j        |j        ¦  «         t          ||t          g d¢¦  «        ¬¦  «         t          |¦  «        t          |¦  «        k    sJ ‚| 	                    t          ¦  «        }t          j        t          j        |¦  «        ¦  «        }t          |j        |j        ¦  «         t          ||t          g d¢¦  «        ¬¦  «         t          |¦  «        t          |¦  «        k    sJ ‚|                     d¦  «        }t          j        t          j        |¦  «        ¦  «        }t          |j        |j        ¦  «         t          ||t          g d¢¦  «        ¬¦  «         t          |¦  «        t          |¦  «        k    sJ ‚d S )Nr%   )r5   rE  Ú_func_code_id)rJ  r   r   )r   rX   r  r  r  rN  r5   rž  r   r(   r!   r"  )r^   rO  r-   Úmemory_reloadedrr  Úfunc_cached_reloadedr=  Úmemorized_result_reloadeds           r    Útest_memory_pickle_dump_loadrX  =  sà  € õ
 Ð=Ð=˜Vœ^Ð=¨}Ð=Ð=€Få”l¥6¤<°Ñ#7Ô#7Ñ8Ô8€Oõ ˆFÔ  /Ô"?Ñ@Ô@Ð@ÝˆF�OÝÐMÐMÐMÑNÔNðPñ Pô Pð På�‰<Œ<�4 Ñ0Ô0Ò0Ð0Ð0Ð0à—,’,�q‘/”/€Kå!œ<­¬°[Ñ(AÔ(AÑBÔBÐõ ˆKÔ%Ð';Ô'IÑJÔJÐJÝˆKÐ-ÝÐMÐMÐMÑNÔNðPñ Pô Pð På�ÑÔ¥Ð%9Ñ :Ô :Ò:Ð:Ð:Ð:ð #×2Ò2°1Ñ5Ô5ÐÝ &¤­V¬\Ð:JÑ-KÔ-KÑ LÔ LÐåÐÔ*Ø%Ô3ñ5ô 5ð 5åÐÐ7ÝÐMÐMÐMÑNÔNðPñ Pô Pð PåÐ Ñ!Ô!¥TÐ*CÑ%DÔ%DÒDÐDÐDÐDÐDÐDr"   c                 óˆ  — |                      t          j        ¦  «         d}t          | j        d¬¦  «        }|j        d„ ¦   «         } ||¦  «        }d|j        v sJ ‚|                     ¦   «          t          | j        d¬¦  «        }|j        d„ ¦   «         } ||¦  «        }d|j        vsJ ‚|                     ¦   «          d S )Nr'   é   r$   c                 ó   — | dz  S rË   r   r™   s    r    r!   ztest_info_log.<locals>.fg  ó   € à�A‰vˆr"   ÚQueryingr   c                 ó   — | dz  S rË   r   r™   s    r    r!   ztest_info_log.<locals>.fq  r\  r"   )Ú	set_levelÚloggingÚINFOr   rX   r(   Útextr[   )r^   Úcaplogr   r-   r!   r/   s         r    Útest_info_logrd  a  sÝ   € Ø
×Ò•W”\Ñ"Ô"Ð"Ø	€Aå˜Vœ^°RÐ8Ñ8Ô8€Fà„\ðð ñ „\ðð 	
ˆˆ!‰Œ€AØ˜œÐ$Ð$Ð$Ð$Ø
‡L‚L�N„N€Nå˜Vœ^°QÐ7Ñ7Ô7€Fà„\ðð ñ „\ðð 	
ˆˆ!‰Œ€AØ˜Vœ[Ð(Ð(Ð(Ð(Ø
‡L‚L�N„N€N€N€Nr"   c                 óÐ   — ddl m} |dk    rt          d¦  «        ‚t          j        t          d¬¦  «        5  t          | j        d¬¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   )Ú__version__z1.5z6Bytes limit is deprecated and should be removed by 1.4rÀ  ©rq  r©  )r%   rÀ  )rh   rf  r)  r4  r   r   rX   )r^   rf  r/   s      r    Útest_deprecated_bytes_limitrh  z  sÄ   € Ø"Ð"Ð"Ð"Ð"Ð"Ø�eÒÐÝ ØDñ
ô 
ð 	
õ 
ŒÕ(°Ð	>Ñ	>Ô	>ð >ð >Ý˜FœN¸Ð=Ñ=Ô=ˆð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   ·AÁAÁ"Ac                   óx   — e Zd ZdZdd„Zd„ Zej                             dddg¦  «        d„ ¦   «         Z	d	„ Z
d
„ ZdS )ÚTestCacheValidationCallbackz.Tests on parameter `cache_validation_callback`Nc                 óB   — d|d<   |�t          j        |¦  «         |dz  S )NTÚrunr   rë  )rú  r   rØ   Údelays       r    ÚfoozTestCacheValidationCallback.foo‡  s*   € Øˆˆ%‰ØÐÝŒJ�uÑÔÐØ�1‰uˆr"   c                 óž   — d}t          j        t          |¬¦  «        5  |                     d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z2Test invalid values for `cache_validation_callbackz9cache_validation_callback needs to be callable. Got True.rg  T)Úcache_validation_callbackN)r4  r   rp  r(   )rú  r-   rq  s      r    Ú&test_invalid_cache_validation_callbackzBTestCacheValidationCallback.test_invalid_cache_validation_callback�  s”   € àKˆÝŒ]�:¨UÐ3Ñ3Ô3ð 	9ð 	9Ø�LŠL°4ˆLÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   žAÁAÁ	AÚconsider_cache_validTFc                 óÒ   ‡— |                      | j        ˆfd„dg¬¦  «        }ddiddi}} |d|¦  «        dk    sJ ‚ |d|¦  «        dk    sJ ‚|d         sJ ‚|d         ‰k    sJ ‚dS )	zTest expiry of old resultsc                 ó   •— ‰S rA   r   )r/   rr  s    €r    r•   zUTestCacheValidationCallback.test_constant_cache_validation_callback.<locals>.<lambda>™  s   ø€ Ð:N€ r"   rØ   ©rp  rê   rl  Fr   rs   N©r(   rn  )rú  r-   rr  r!   Úd1Úd2s     `   r    Ú'test_constant_cache_validation_callbackzCTestCacheValidationCallback.test_constant_cache_validation_callback“  s    ø€ ð
 �LŠLØŒHÐ0NÐ0NÐ0NÐ0NØ�5ð ñ 
ô 
ˆð
 ˜� %¨ ˆBˆØˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}Øˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}à�%ŒyÐÐÐØ�%ŒyÐ0Ò0Ð0Ð0Ð0Ð0Ð0r"   c                 óX  — d„ }|                      | j        |dg¬¦  «        }ddiddi}} |d|d¬¦  «        d	k    sJ ‚ |d|d¬¦  «        d	k    sJ ‚|d         sJ ‚|d         sJ ‚ddiddi}} |d|d
¬¦  «        d	k    sJ ‚ |d|d
¬¦  «        d	k    sJ ‚|d         sJ ‚|d         rJ ‚dS )z*Test cache validity based on run duration.c                 ó&   — | d         }|dk    rdS d S )NÚdurationgš™™™™™¹?Tr   )Úmetadatar|  s     r    rp  z^TestCacheValidationCallback.test_memory_only_cache_long_run.<locals>.cache_validation_callback§  s!   € Ø 
Ô+ˆHØ˜#Š~ˆ~Ø�tð ˆ~r"   rØ   ru  rl  Fr   r   )rm  rs   gš™™™™™É?Nrv  )rú  r-   rp  r!   rw  rx  s         r    Útest_memory_only_cache_long_runz;TestCacheValidationCallback.test_memory_only_cache_long_run¤  s,  € ð	ð 	ð 	ð
 �LŠLØŒHÐ0IØ�5ð ñ 
ô 
ˆð ˜� %¨ ˆBˆØˆq��B˜aÐ Ñ Ô  AÒ%Ð%Ð%Ð%Øˆq��B˜aÐ Ñ Ô  AÒ%Ð%Ð%Ð%Ø�%ŒyÐÐÐØ�%ŒyÐÐÐð ˜� %¨ ˆBˆØˆq��B˜cÐ"Ñ"Ô" aÒ'Ð'Ð'Ð'Øˆq��B˜cÐ"Ñ"Ô" aÒ'Ð'Ð'Ð'Ø�%ŒyÐÐÐØ�e”9ÐÐÐÐÐr"   c                 óF  — |                      | j        t          d¬¦  «        dg¬¦  «        }ddiddiddi}}} |d|¦  «        dk    sJ ‚ |d|¦  «        dk    sJ ‚t          j        d	¦  «          |d|¦  «        dk    sJ ‚|d         sJ ‚|d         rJ ‚|d         sJ ‚d
S )z!Test expiry of old cached resultsg333333Ó?rÎ  rØ   ru  rl  Fr   rs   r.  N)r(   rn  r   r1  r2  )rú  r-   r!   rw  rx  Úd3s         r    Útest_memory_expires_afterz5TestCacheValidationCallback.test_memory_expires_after¿  sÖ   € ð �LŠLØŒHµÀbÐ0IÑ0IÔ0IØ�5ð ñ 
ô 
ˆð
 ˜U�^ e¨U ^°e¸U°^�ˆBˆØˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}Øˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}ÝŒ
�2‰ŒˆØˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}à�%ŒyÐÐÐØ�e”9ÐÐÐØ�%ŒyÐÐÐÐÐr"   rA   )rß   r]   rà   rö  rn  rq  r4  Úmarkr   ry  r~  r�  r   r"   r    rj  rj  „  s�   € € € € € Ø4Ð4ðð ð ð ð9ð 9ð 9ð „[×ÒÐ3°d¸E°]ÑCÔCð1ð 1ñ DÔCð1ð ð ð ð6ð ð ð ð r"   rj  c                   ó4   — e Zd ZdZed„ ¦   «         Zd„ Zd„ ZdS )ÚTestMemorizedFuncz8Tests for the MemorizedFunc and NotMemorizedFunc classesc                 óJ   — |                      | d¦  «        dz   || <   ||          S )Nr   r   )r#  )r   Úcounters     r    r!   zTestMemorizedFunc.fÕ  s(   € à—[’[  AÑ&Ô&¨Ñ*ˆ�‰
Ø�qŒzÐr"   c                 ó  — |                      | j        dg¬¦  «        }i } |d|¦  «        dk    sJ ‚ |d|¦  «        dk    sJ ‚|                     d|¦  «        \  }}|dk    s
J d¦   «         ‚t          |t          ¦  «        s
J d¦   «         ‚dS )úTest calling the functionr†  ré   r   r   úf has not been called properlyú0Metadata are not returned by MemorizedFunc.call.N)r(   r!   ÚcallrÑ   Údict©rú  r-   r!   r†  r   Úmetas         r    Útest_call_method_memorizedz,TestMemorizedFunc.test_call_method_memorizedÚ  s¶   € ð �LŠL˜œ¨¨ˆLÑ4Ô4ˆàˆØˆq��G‰}Œ} Ò!Ð!Ð!Ð!Øˆq��G‰}Œ} Ò!Ð!Ð!Ð!à—&’&˜˜GÑ$Ô$‰ˆˆ4Ø�AŠvˆvˆvÐ7‰vŒvˆvÝ˜$¥Ñ%Ô%ð 	
ð 	
Ø>ñ	
ô 	
ð 	
ð 	
ð 	
r"   c                 ó
  — t          | j        ¦  «        }i } |d|¦  «        dk    sJ ‚ |d|¦  «        dk    sJ ‚|                     d|¦  «        \  }}|dk    s
J d¦   «         ‚t          |t          ¦  «        s
J d¦   «         ‚dS )rˆ  r   r   r'   r‰  rŠ  N)r   r!   r‹  rÑ   rŒ  r�  s         r    Útest_call_method_not_memorizedz0TestMemorizedFunc.test_call_method_not_memorizedé  s¬   € õ ˜TœVÑ$Ô$ˆàˆØˆq��G‰}Œ} Ò!Ð!Ð!Ð!Øˆq��G‰}Œ} Ò!Ð!Ð!Ð!à—&’&˜˜GÑ$Ô$‰ˆˆ4Ø�AŠvˆvˆvÐ7‰vŒvˆvÝ˜$¥Ñ%Ô%ð 	
ð 	
Ø>ñ	
ô 	
ð 	
ð 	
ð 	
r"   N)rß   r]   rà   rö  Ústaticmethodr!   r�  r‘  r   r"   r    r„  r„  Ò  sQ   € € € € € Ø>Ð>àðð ñ „\ðð
ð 
ð 
ð
ð 
ð 
ð 
ð 
r"   r„  rî   )rR   )TrA   )wrö  r±   rÓ   r`  rY   r7   Úos.pathr1  r  rN  r1  r˜  rv   r4  Újoblib.memoryr   r   r   r   r   r   r	   r
   r   r   r   r   Újoblib.parallelr   r   Újoblib._store_backendsr   r   Újoblib.test.commonr   r   r   Újoblib.testingr   r   r   Újoblib.hashingr   r!   r0   r>   rJ   rb   rƒ   rˆ   rŽ   r–   r£   r§   r­   r´   r¸   r»   r½   rÈ   rÚ   rç   rð   rú   rþ   r  r  r  r  r&  r+  r:  rB  rH  rY  r\  r^  ra  rc  re  rj  rÜ  Úfloatrm  rt  rv  rƒ  r§  r¾  rÆ  rÉ  rÒ  rÕ  rØ  rÞ  rå  rè  ró  rõ  rø  rŒ  rW   r  r  r  r$  r)  r.  r3  r6  r?  rD  rN  r‚  rX  rd  rh  rj  r„  r   r"   r    ú<module>r›     sí  ððð ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à €€€à  Ð  Ð  Ð  Ð  Ð  Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø *Ð *Ð *Ð *Ð *Ð *Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð ð
ð ð ð ð-ð -ð -ðð ð ð
ð 
ð 
ð(ð (ð (ðV €Ð# d¨E ]Ñ3Ô3ð_Að _Añ 4Ô3ð_AðD;ð ;ð ;ð $ð $ð $ð 
Jð 
Jð 
Jð3ð 3ð 3ð8ð ð ð ?ð ?ð ?ð$?ð ?ð ?ð ð ð ð ð ð ð ð ðð ð ð Ø€ˆ[˜4 ˜+Ñ&Ô&ð-ð -ñ 'Ô&ñ „ð-ð( ð$ð $ñ „ð$ðNð ð ð,!ð !ð !ð&!ð !ð !ð4ð ð ð( €Ð)¨c¨U°C¸Ð,=Ø-/°°T¨Nð,<ñ =ô =ð
$ð 
$ñ=ô =ð
$ðð ð ð@
ð 
ð 
ð.
ð 
ð 
ðð ð ð,
ð 
ð 
ð!=ð !=ð !=ðH	ð 	ð 	ðð ð ð@5+ð 5+ð 5+ðp	ð 	ð 	ð
ð ð ðð ð ðð ð ð ð ð ð
 (-°%ð ð ð ð ð ð˜3ð  5ð ¨Uð ð ð ð ðCð Cð Cð8$ð $ð $ð1ð 1ð 1ð 1ð*3ð 3ð 3ð4$;ð $;ð $;ðNð ð ð8ð ð ð6ð ð ð>9ð 9ð 9ðð ð ð
>ð >ð >ð >ð
 ð'ð 'ñ Ôð'ð& ð'ð 'ñ Ôð'ð.,&ð ,&ð ,&ð^	ð 	ð 	ð 	ð 	Ð-ñ 	ô 	ð 	ð
!ð !ð !ð !ð !Ð(ñ !ô !ð !ðH €Ð  d d¡f¤f¨d¨d©f¬fÐ5Ñ6Ô6ð=ð =ñ 7Ô6ð=ðEð Eð Eð(ð (ð (ð7ð 7ð 7ð	Lð 	Lð 	Lð6ð 6ð 6ð1ð 1ð 1ðð ð ð(0ð 0ð 0ð:@ð @ð @ð,
3ð 
3ð 
3ð 
3ð „×Ò˜Ø'(°QÐ7Ð7Ø(+¸Ø/:¸HÐ.EðGð GðHñIô IðEð Eñ	Iô IðEð@ð ð ð2>ð >ð >ðKð Kð Kð Kð Kñ Kô Kð Kð\$
ð $
ð $
ð $
ð $
ñ $
ô $
ð $
ð $
ð $
r"   