§
    f˜ºhäÅ  ã            	       ó\  — 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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mZmZ ddl m!Z!m"Z" ddl#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* dod
„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 d(dfg¦  «        d)„ ¦   «         ZAd*„ ZBd+„ ZCejD         (                    d,ddg¦  «        d-„ ¦   «         ZEd.„ ZFd/„ ZGd0„ ZHd1„ ZId2„ ZJd3„ ZKd4„ ZLd5„ ZMd6„ ZNd7„ ZOd8d9d:œd;„ZPd<eQd=eRd>eRfd?„ZSd@„ ZTdA„ ZUdpdB„ZVdC„ ZWdD„ ZXdE„ ZYdF„ ZZdG„ Z[dH„ Z\dI„ Z]dqdJ„Z^e%dK„ ¦   «         Z_e%dL„ ¦   «         Z`dM„ Za G dN„ dOe¦  «        Zb G dP„ dQe¦  «        Zc e(dRd ed¦   «          ee¦   «         g¦  «        dS„ ¦   «         ZfdT„ ZgdU„ ZhdV„ ZidW„ ZjdX„ ZkdY„ ZldZ„ Zmd[„ Znd\„ Zodrd]„ZpejD         (                    d^d_d`daœddbdcddideœg¦  «        df„ ¦   «         Zqdg„ Zr G dh„ di¦  «        Zs G dj„ dk¦  «        Zte& e(dldm eju        dm¦  «         eju        dm¦  «         v                    ¦   «         g¦  «        dn„ ¦   «         ¦   «         ZwdS )sz
Test the memory module.
é    N)ÚFileSystemStoreBackendÚStoreBackendBase)Úhash)Ú_FUNCTION_HASHESÚ_STORE_BACKENDSÚJobLibCollisionWarningÚMemorizedFuncÚMemorizedResultÚMemoryÚNotMemorizedFuncÚNotMemorizedResultÚ_build_func_identifierÚ_store_backend_factoryÚexpires_afterÚregister_store_backend)ÚParallelÚdelayed)ÚnpÚwith_multiprocessingÚ
with_numpy)ÚparametrizeÚraisesÚwarnsé   c                 ó   — | dz  |z   S )z-A module-level function for testing purposes.é   © )ÚxÚys     ú_/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/joblib/test/test_memory.pyÚfr!   /   s   € àˆa‰4�!‰8€Oó    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   6   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>   E   s¶   € Ø!Ô/×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_recordS   s   ø€ Ø�Š˜ÑÔÐÐÐr"   Úwarn)Úsetattr)r+   Úmonkeypatch_fixturerF   rE   s      @r    Úmonkeypatch_cached_func_warnrJ   L   sC   ø€ ð
 €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>.fc   ó   ø€ Ø×Ò˜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_integrationrc   \   s€  ø€ å‘&”&€Kð
ð ð ð ð õ ˜˜;¨¬Ñ7Ô7Ð7ð "ð ;ð ;ˆØ$ð 	ð 	ˆIÝØœØØ#Ø!ð	ñ ô ˆ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                      |¦  «        }i }t          t          t          j        |¦  «        |d¬¦  «        d |¦  «         |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    �rkt          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 ¦   «         ¦  «         nª t          d¬¦  «        ˆfd„dD ¦   «         ¦  «         t          d¦  «        D ]@}
t          t          j        |	dz  ¦  «        ¦  «        dk    r nt!          j        d¦  «         ŒAt          t          j        |	dz  ¦  «        ¦  «        dk    sJ ‚ ‰d¦  «         t          t          j        |	dz  ¦  «        ¦  «        dk    sJ ‚�Œst          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!   rW   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   øè è € Ð"HÐ"H¸AÐ#4¥7¨8Ñ#4Ô#4°QÑ#7Ô#7Ð"HÐ"HÐ"HÐ"HÐ"HÐ"Hr"   )r   r   c              3   óH   •K  — | ]} t          ‰¦  «        |¦  «        V — Œd S rA   rm   rn   s     €r    rq   zHtest_parallel_call_cached_function_defined_in_jupyter.<locals>.<genexpr>Ú   rr   r"   é   çš™™™™™É?é   )Úformatrf   ÚcompileÚtextwrapÚdedentr^   Ú__code__Úco_filenamer   rY   r(   r*   r7   Úlistdirr   r)   ÚtimeÚsleep)r_   rd   Ú
session_noÚipython_cell_sourceÚipython_cell_idÚ	my_localsr!   r-   Úf_cache_relative_directoryÚf_cache_directoryr/   rp   s              @r    Ú5test_parallel_call_cached_function_defined_in_jupyterr†   Š   sW  ø€ ð" ð VAñ VAˆ
ðÐð
 <×BÒBÀ:ÑNÔNˆàˆ	ÝÝÝ”Ð 3Ñ4Ô4Ø(Øðñ ô ð Øñ	
ô 	
ð 	
ð �cŒNˆØ!ˆŒð ˆq�‰tŒt�qŠyˆyˆyˆyØŒzÔ%¨Ò8Ð8Ð8Ð8å ¤¸Ð;Ñ;Ô;ˆØ—<’< ‘?”?ˆå•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Ð"HÐ"HÐ"HÀÐ"HÑ"HÔ"HÑHÔHÐHÐHð #• Ð"Ñ"Ô"Ð"HÐ"HÐ"HÐ"HÀÐ"HÑ"HÔ"HÑHÔHÐHõ ˜r™œð $ð $�AÝ�2œ:Ð&7¸#Ñ&=Ñ>Ô>Ñ?Ô?À1ÒDÐDØ˜Ý”J˜s‘O”O�O�OÝ�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VAð V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 memoizec                 ó2   •— ‰                      d¦  «         | S rM   rB   rN   s    €r    Úffztest_no_memory.<locals>.ffø   rP   r"   Nr   r$   rv   r   )rX   r   r(   r)   r*   )r‰   r-   Úggr/   ra   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 )
z3Test 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   )rX   r0   rY   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 ©z*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)rX   r0   rY   )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 )z&A first function called name_collisionr   ©r   s    r    Úname_collisionz2test_memory_name_collision.<locals>.name_collision$  ó	   € ð ˆr"   c                 ó   — | S )z'A second function called name_collisionr   rœ   s    r    r�   z2test_memory_name_collision.<locals>.name_collision+  rž   r"   r   NÚ	collision)r   rY   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>=  s   € ˜q€ r"   c                 ó   — | dz   S rM   r   rœ   s    r    r˜   z7test_memory_warning_lambda_collisions.<locals>.<lambda>>  s
   € ˜q 1™u€ r"   r   r   rv   )r   rY   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   rY   r]   r(   r   r   r*   r¡   r¢   Úlower)r_   r-   Úa1Úb1r¥   s        r    Ú'test_memory_warning_collision_detectionr°   J  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>.func`  r–   r"   r   Nr   )rX   Ú	functoolsÚpartialr0   rY   )r_   r+   r´   Úfunctionr,   s       @r    Útest_memory_partialr·   \  sa   ø€ å‘&”&€Kðð ð ð ð ð
 ÐÐÐà ˆyÔ   qÑ)Ô)€Hå˜ +¨v¬~Ñ>Ô>Ð>Ð>Ð>r"   c                 óœ   — t          | j        d¬¦  «        }t          d¦  «        }|                     |¦  «        } |d¦  «        dk    sJ ‚dS )zESmoke test memory with a function with a function defined in an eval.r   r$   r¬   r   N)r   rY   r]   r(   )r_   r-   ÚmÚmms       r    Útest_memory_evalr»   l  sK   € å˜Vœ^°QÐ7Ñ7Ô7€Fåˆ]ÑÔ€AØ	�Š�a‰Œ€Bàˆ2ˆa‰5Œ5�AŠ:ˆ:ˆ:ˆ:ˆ:ˆ:r"   c                 óN   — t          | ¦  «        }|                      d¦  «         |S )zsA 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¾   v  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 )zsCheck that if a function has a side effect in its arguments, it
    should use the hash of changing arguments.
    r   r$   r   N)r   rY   r(   r¾   )r_   r-   r+   s      r    Útest_argument_changerÀ   €  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   )rX   r   rY   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È!ÐLÑLÔL€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   rY   r(   r   ÚonesÚ
isinstanceÚmemmaprh   Ú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 )
z+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   rY   Ú	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 memoryr   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   rY   rX   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 )z9Test the ignore feature of memory on a decorated functionr   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ø  s8   ø€ Ý	Œ˜Ñ	Ô	ð	&ð 	&ð 	&ð 	&ñ 
Ô	ð	&ð ˆ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   rY   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   rY   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!   ri   zfunc_code.pyr   r2   )r   rY   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  0  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   rY   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  P  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"   Úconsider_cache_validc                 ó  ‡— t          t          | j        ˆfd„¬¦  «        t          | j        d¬¦  «                             t          ˆfd„¬¦  «        fD ]‹}|                     d¦  «        }t          |t          ¦  «        sJ ‚|rJ ‚ |d¦  «        dk    sJ ‚|                     d¦  «        }t          |t          ¦  «        sJ ‚|‰k    sJ ‚|                     ¦   «          ŒŒt          t          ¦  «        }|                     d¦  «        rJ ‚d S )Nc                 ó   •— ‰S rA   r   ©r/   r  s    €r    r˜   z*test_check_call_in_cache.<locals>.<lambda>k  s   ø€ ÐCW€ r"   ©Úcache_validation_callbackr   r$   c                 ó   •— ‰S rA   r   r  s    €r    r˜   z*test_check_call_in_cache.<locals>.<lambda>n  s   ø€ Ð3G€ r"   r   é   )
r	   r!   rY   r   r(   Úcheck_call_in_cacherÔ   Úboolr\   r   )r_   r  r+   Úresults    `  r    Útest_check_call_in_cacher'  g  s6  ø€ õ 	ÝˆvŒ~Ð9WÐ9WÐ9WÐ9Wð	
ñ 	
ô 	
õ 	˜œ°Ð2Ñ2Ô2×8Ò8ÝÐ)GÐ)GÐ)GÐ)Gð 	9ñ 	
ô 	
ð	ð ð ˆð ×)Ò)¨!Ñ,Ô,ˆÝ˜&¥$Ñ'Ô'Ð'Ð'Ð'ØÐÐÐØˆt�A‰wŒw˜!Š|ˆ|ˆ|ˆ|Ø×)Ò)¨!Ñ,Ô,ˆÝ˜&¥$Ñ'Ô'Ð'Ð'Ð'ØÐ-Ò-Ð-Ð-Ð-Ø�
Š
‰Œˆˆå�AÑÔ€DØ×'Ò'¨Ñ*Ô*Ð*Ð*Ð*Ð*Ð*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!   rY   r   r   r(   r
   r   Úcall_and_shelverÔ   Úgetr\   r   ÚKeyError)r_   r+   ÚResultr&  s       r    Útest_call_and_shelver/  ~  s{  € õ å�!˜Vœ^Ñ,Ô,Ý�QÑÔÝ˜FœN°AÐ6Ñ6Ô6×<Ò<½QÑ?Ô?Ý˜DÐ!Ñ!Ô!×'Ò'­Ñ*Ô*ð		
õ 
Õ,­oÕ?QÐRñô ð ð ‰ˆˆfð ˆt�A‰wŒw˜!Š|ˆ|ˆ|ˆ|Ø×%Ò% aÑ(Ô(ˆÝ˜& &Ñ)Ô)Ð)Ð)Ð)Ø�zŠz‰|Œ|˜qÒ Ð Ð Ð à�Š‰ŒˆÝ•HÑÔð 	ð 	Ø�JŠJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�Š‰Œˆˆð#ð s   Ä(E	Å	E	ÅE	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   ÚstatrY   Úst_atimer~   r   Ú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õ 	ŒÐTÑUÔUÐUå˜Vœ^°QÐ7Ñ7Ô7€FØ�<Š<�‰?Œ?€DØ×Ò Ñ"Ô"€GÝ”'—,’,ØÔÔ% t¤|°W¸lñô €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!   rY   r   r9   r+  r:   r  ÚdumpÚloadr,  r7   r  )r_   r+   rg   r&  ÚfpÚresult2s         r    Útest_memorized_picklingrD  ¹  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!   rY   r+  r,  Úreprr   r~   )r_   r+   r&  Úfunc2rC  s        r    Útest_memorized_reprrJ  Å  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
)ÚmkdirrY   r7   r8   r9   r:   r;   Úsyspath_prependrM  r   r(   r!   rZ   r[   ÚsysÚstdoutÚmodulesÚpopÚ
readouterr)Úcapsysr_   rØ   Údir_namerg   ÚcontentÚmodule_fileÚtmpr-   r!   rb   Úerrs               r    Útest_memory_file_modificationr[  å  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    Ú_productrc  '  ra  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`  r{   r^  r   rY   r(   r   r   rc  )r_   r-   r!   s      r    Ú*test_memory_in_memory_function_code_changere  +  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_locationrg  ;  s#   € Ý˜TÐ"Ñ"Ô"€FØ
‡L‚L�N„N€N€N€Nr"   Úkw1Úkw2©rh  ri  c                ó   — | |||fS rA   r   )r£   r¤   rh  ri  s       r    Úfunc_with_kwonly_argsrl  @  s   € Øˆa��cˆ>Ðr"   r£   r¤   Úreturnc                 ó   — | |z   S rA   r   r]  s     r    Úfunc_with_signaturero  D  ra  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'   )rh  )r   r   r'   ri  rv   )ri  z?Keyword-only parameter 'kw1' was passed as positional parameterrj  ri  rì   )r   r   r'   rv   Úignored)r   rY   r(   rl  r   Ú
ValueErrorÚmatch)r_   r-   Úfunc_cachedÚexcinfos       r    Ú!test_memory_func_with_kwonly_argsrv  H  sè  € Ý˜Vœ^°QÐ7Ñ7Ô7€FØ—,’,Õ4Ñ5Ô5€Kàˆ;�q˜! Ð#Ñ#Ô#Ð'7Ò7Ð7Ð7Ð7õ 
•
Ñ	Ô	ð $˜wØˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à‡M‚MÐSÑTÔTÐTð €K��1˜! Ð#Ñ#Ô#Ð#å	•
Ñ	Ô	ð $˜wØˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à‡M‚MÐSÑTÔTÐTð —,’,Õ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   rY   r(   ro  )r_   r-   rt  s      r    Útest_memory_func_with_signaturerx  b  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_bytesl  s   € àˆzr"   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )r  )ro   rO   r}  s     €r    ú
<listcomp>z$_setup_toy_cache.<locals>.<listcomp>u  s'   ø€ ÐHÐHÐH¸#�^×0Ò0°Ñ5Ô5ÐHÐHÐHr"   c                 óf   •— g | ]-}t           j                             ‰j        j        ‰|¦  «        ‘Œ.S r   )r7   r8   r9   r5   r%   )ro   r  r  r}  s     €€r    r  z$_setup_toy_cache.<locals>.<listcomp>w  sA   ø€ ð ð ð àõ 	Œ�Š�^Ô1Ô:¸GÀWÑMÔMðð ð r"   )r   rY   r(   rX   r)   r   )	r_   Ú
num_inputsr-   ÚinputsrO   Úhash_dirnamesÚfull_hashdirsr  r}  s	          @@r    Ú_setup_toy_cacher…  i  sÔ   øø€ Ý˜Vœ^°QÐ7Ñ7Ô7€Fà‡\‚\�^„^ðð ñ „^ðõ •%˜
Ñ#Ô#Ñ$Ô$€FØð ð ˆØˆ�sÑÔÐÐå$ ^Ñ4Ô4€GØHÐHÐHÐHÀÐHÑHÔH€Mðð ð ð ð à$ðñ ô €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   ©ro   Úcis     r    r  z#test__get_items.<locals>.<listcomp>�  s   € Ð)Ð)Ð)˜R�”Ð)Ð)Ð)r"   c                 óv   ‡ — ˆ fd„t          j        ‰ ¦  «        D ¦   «         }t          d„ |D ¦   «         ¦  «        S )Nc                 óP   •— g | ]"}t           j                             ‰|¦  «        ‘Œ#S r   ©r7   r8   r9   )ro   ÚfnÚ	directorys     €r    r  z;test__get_items.<locals>.get_files_size.<locals>.<listcomp>…  s)   ø€ ÐRÐRÐR°b•b”g—l’l 9¨bÑ1Ô1ÐRÐRÐRr"   c              3   óT   K  — | ]#}t           j                             |¦  «        V — Œ$d S rA   )r7   r8   Úgetsize)ro   rB  s     r    rq   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„  sC   ø€ ØRÐRÐRÐR½B¼JÀyÑ<QÔ<QÐRÑRÔRˆ
ÝÐ<Ð<°Ð<Ñ<Ô<Ñ<Ô<Ð<r"   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )ro   Úhash_dirr“  s     €r    r  z#test__get_items.<locals>.<listcomp>ˆ  s#   ø€ Ð TÐ TÐ T¸h  °Ñ!9Ô!9Ð TÐ TÐ Tr"   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Œ  )ro   r•  s     r    r  z#test__get_items.<locals>.<listcomp>Œ  s(   € ÐWÐWÐWÀ�œŸš X¨|Ñ<Ô<ÐWÐWÐWr"   c                 ó†   — g | ]>}t           j                              t          j                             |¦  «        ¦  «        ‘Œ?S r   )ÚdatetimeÚfromtimestampr7   r8   Úgetatime)ro   r�  s     r    r  z#test__get_items.<locals>.<listcomp>Ž  sF   € ð ð ð ØBD�Ô×'Ò'­¬×(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©  ~  s  ø€ Ý$4°VÑ$<Ô$<Ñ!€FÐ ØÔ ×*Ò*Ñ,Ô,€EØ)Ð) 5Ð)Ñ)Ô)€IÝˆy‰>Œ>�SÐ!3Ñ4Ô4Ò4Ð4Ð4Ð4ð=ð =ð =ð !UÐ TÐ TÐ TÈ)Ð TÑ TÔ TÐØ0Ð0¨%Ð0Ñ0Ô0ÐØÐ8Ò8Ð8Ð8Ð8àWÐWÈYÐWÑWÔWÐðð ØHXðñ ô Ðð 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    rq   z,test__get_items_to_delete.<locals>.<genexpr>¸  s$   è è € Ð>Ð> "ˆrŒ~Ð>Ð>Ð>Ð>Ð>Ð>r"   c              3   ó$   K  — | ]}|j         V — Œd S rA   rž  rˆ  s     r    rq   z,test__get_items_to_delete.<locals>.<genexpr>¸  s=   è è € ð Fð FØˆŒðFð Fð Fð Fð Fð Fr"   )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åÐ>Ð>Ð(=Ð>Ñ>Ô>Ñ>Ô>Å#ð Fð FØ!0ðFñ Fô Fñ Cô Cò ð ð ð ð ð 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 ‚t          j        t          d	¬
¦  «        5  |                      |j        d¬¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y    |j        d¦  «         |                      |j        d¬¦  «        ¬¦  «         |j                             ¦   «         }|g k    sJ ‚d S )Nr   r   )Údays)Ú	age_limitéÿÿÿÿéþÿÿÿ©Úsecondsr   zhas to be a positive©rs  gü©ñÒMbP?)rš  r~   r…  r5   r6   rÅ  r³  Ú	timedeltar   r   r²  r*   r6  r   rr  )r_   rš  r~   r-   r/   Ú	put_cacherÆ  rÇ  s           r    Ú!test_memory_reduce_size_age_limitrÖ  ô  s›  € Ø€O€O€OØ€K€K€Kå+¨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Ò Ð Ð Ð õ 
Œ•zÐ)?Ð	@Ñ	@Ô	@ð Eð EØ×ÒÐ%7 XÔ%7ÀÐ%CÑ%CÔ%CÐÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð €D„JˆuÑÔÐØ
×ÒÐ!3 Ô!3¸AÐ!>Ñ!>Ô!>ÐÑ?Ô?Ð?ØÔ&×0Ò0Ñ2Ô2€KØ˜"ÒÐÐÐÐÐs   Æ/&G!Ç!G%Ç(G%c                 óÌ   — t          | ¦  «        \  }}}|                     ¦   «          t          j        |j        j        ¦  «        g k    sJ ‚|                     d¬¦  «        rJ ‚d S )Nrv   )Ú
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 )Nr{  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¡   )ro   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   rj   c              3   óF   •K  — | ]} t          ‰¦  «        ¦   «         V — Œd S rA   rm   ©ro   r.   rt  s     €r    rq   zMtest_cached_function_race_condition_when_persisting_output.<locals>.<genexpr>5  s4   øè è € Ð@Ð@°!Ð+•w˜{Ñ+Ô+Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r"   r'   rÒ   )r   rY   r(   rÜ  r   r)   rT  ©r_   Úcapfdr-   rQ  ÚstderrrÜ   rt  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   rj   c              3   ó^   •K  — | ]'} t          ‰¦  «        |d z  dk    rdnd¦  «        V — Œ(dS )r   r   TFNrm   rå  s     €r    rq   zOtest_cached_function_race_condition_when_persisting_output_2.<locals>.<genexpr>K  sW   øè è € ð ð Ø@AÐ��ÑÔ Q¨¡U¨a¢Z Z˜T˜T°UÑ;Ô;ðð ð ð ð ð r"   r'   rÒ   )r   rY   r(   râ  r   r)   rT  ræ  s         @r    Ú<test_cached_function_race_condition_when_persisting_output_2rì  A  sº   ø€ õ ˜Vœ^Ð,Ñ,Ô,€FØ—,’,ÕHÑIÔI€Kà…H�AÐÑÔð ð ð ð ÝEJÈ1ÁXÄXðñ ô ñ ô ð ð ×%Ò%Ñ'Ô'�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„?©r~   r   r|  s    r    r+   zItest_memory_recomputes_after_an_error_while_loading_results.<locals>.func\  s%   € õ 	Œ
�4ÑÔÐØ•D”I‘K”KÐÐr"   rO   r   rÒ   r   z<It normally not possible to load a corrupted MemorizedResultzis corrupted)r   rY   r(   r>   rJ   r*   r+  r,  ÚAssertionErrorr-  r¡   r÷   )r_   rØ   r-   r+   Úcached_funcÚ	input_argrO   rG  rÚ   Úrecomputed_argÚrecomputed_timestamprÜ   Ú	referenceÚer¢   s                  r    Ú;test_memory_recomputes_after_an_error_while_loading_resultsr÷  Y  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ð&Ø�Š‰ŒˆÝØJñ
ô 
ð 	
øõ ð &ð &ð &Ø ˆØ�#˜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   rr  r   rs  )r  ru  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  ©ru  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   rs  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ñ   € ðð ð ð ð ñ ô ð ð 5Ð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ð	ð ð
 �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   rs  )Úbackend_nameru  s     r    Ú)test_instanciate_incomplete_store_backendr-  Ø  sÐ   € ð €LÝ˜<Õ)?Ñ@Ô@Ð@ØÕ0Ð1µ_Ô5JÑ5LÔ5LÐLÐLÐLÐLÝ	•	Ñ	Ô	ð >˜gÝ˜|¨_Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >à‡M‚Mð	Añô ð ð ð 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_backendr2  æ  sg   € ð €LÝ˜<Õ):Ñ;Ô;Ð;ØÕ+Ð,µÔ0EÑ0GÔ0GÐGÐGÐGÐGå(¨Ð7GÑHÔH€KÝ�kÕ#4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5r"   c                  óÎ   — t          j        d¦  «        } t          d| ¦  «        }	 |j        dk    sJ ‚	 t	          j        dd¬¦  «         d S # t	          j        dd¬¦  «         w xY w)NÚsome_folderr$  TrU   )ÚpathlibÚPathr   r%   rZ   r[   )r8   r1  s     r    Ú0test_instanciate_store_backend_with_pathlib_pathr7  ñ  sr   € åŒ<˜Ñ&Ô&€DÝ(¨°$Ñ7Ô7€Kð9ØÔ# }Ò4Ð4Ð4Ð4Ð4åŒ�m°4Ð8Ñ8Ô8Ð8Ð8Ð8ø�Œ�m°4Ð8Ñ8Ô8Ð8Ð8øøøs   ¦A ÁA$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%   rH  r¡   rw   r  rY   )r_   Úrepr_patternr  s      r    Ú"test_filesystem_store_backend_reprr:  û  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   rY   r(   r¡   rw   r5   r%   r+  r  r  )r_   r=  r-   Úmemorized_funcÚmemorized_func_reprÚmemorized_resultÚmemorized_result_reprs          r    Útest_memory_objects_reprrC    s=  € ðð ð õ ˜Vœ^°QÐ7Ñ7Ô7€FØ—\’\ 'Ñ*Ô*€NàKÐåˆ~ÑÔÐ"5×"<Ò"<Ø˜vÔ3Ô<ð #=ñ #ô #ò ð ð ð ð &×5Ò5°b¸"Ñ=Ô=Ðð 	Uð õ ÐÑ Ô Ð$9×$@Ò$@ØÔ%Ô.ØÔ%Ø Ô(ð %Añ %ô %ò ð ð ð õ ˆv‰;Œ;Ð7×>Ò>ØÔ%Ô.ð ?ñ ô ò ð ð ð ð ð r"   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>.g6  ó   € à�!‰tˆr"   rv   )r   rY   r(   r+  r  r  r  r5   r%   r+   r  r¡   )r_   r-   r`   rA  Úmemorized_result_pickleÚmemorized_result_loadss         r    Útest_memorized_result_picklerI  /  sì   € õ
 ˜Vœ^Ð,Ñ,Ô,€Fà„\ðð ñ „\ðð ×(Ò(¨Ñ+Ô+ÐÝ$œlÐ+;Ñ<Ô<ÐÝ#œ\Ð*AÑBÔBÐð 	Ô&Ô/Ø!Ô/Ô8ò	9ð 	9ð 	9ð 	9ð Ô Ð$:Ô$?Ò?Ð?Ð?Ð?ØÔ#Ð'=Ô'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    ÚcomparerS  G  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   rG  Ú_func_code_id)rO  r   r   )r   rY   r  r  r  rS  r5   r   r   r(   r!   r+  )r_   rT  r-   Úmemory_reloadedrt  Úfunc_cached_reloadedrA  Úmemorized_result_reloadeds           r    Útest_memory_pickle_dump_loadr]  T  s×  € õ Ð=Ð=˜Vœ^Ð=¨}Ð=Ð=€Få”l¥6¤<°Ñ#7Ô#7Ñ8Ô8€Oõ ˆFÔ  /Ô"?Ñ@Ô@Ð@ÝØØÝÐIÐIÐIÑJÔJðñ ô ð õ
 �‰<Œ<�4 Ñ0Ô0Ò0Ð0Ð0Ð0à—,’,�q‘/”/€Kå!œ<­¬°[Ñ(AÔ(AÑBÔBÐõ ˆKÔ%Ð';Ô'IÑJÔJÐJÝØØÝÐIÐIÐIÑJÔJðñ ô ð õ
 �ÑÔ¥Ð%9Ñ :Ô :Ò:Ð:Ð:Ð:ð #×2Ò2°1Ñ5Ô5ÐÝ &¤­V¬\Ð:JÑ-KÔ-KÑ LÔ LÐåÐÔ*Ð,EÔ,SÑTÔTÐTÝØØ!ÝÐIÐIÐIÑJÔJðñ ô ð õ
 Ð Ñ!Ô!¥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>.f‰  rF  r"   ÚQueryingr   c                 ó   — | dz  S rÎ   r   rœ   s    r    r!   ztest_info_log.<locals>.f“  rF  r"   )Ú	set_levelÚloggingÚINFOr   rY   r(   Útextr\   )r_   Úcaplogr   r-   r!   r/   s         r    Útest_info_logrh  ƒ  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                   ó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.rÓ  Tr   N)r6  r   rr  r(   )rþ  r-   rs  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r  TFc                 óÒ   ‡— |                      | 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  s    €r    r˜   zUTestCacheValidationCallback.test_constant_cache_validation_callback.<locals>.<lambda>°  s   ø€ Ð0D€ r"   rÛ   ©r!  rí   rl  Fr   rv   N©r(   rn  )rþ  r-   r  r!   Úd1Úd2s     `   r    Ú'test_constant_cache_validation_callbackzCTestCacheValidationCallback.test_constant_cache_validation_callback«  s    ø€ ð �LŠLØŒHØ&DÐ&DÐ&DÐ&DØ�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   )Úmetadatarz  s     r    r!  z^TestCacheValidationCallback.test_memory_only_cache_long_run.<locals>.cache_validation_callback¾  s!   € Ø 
Ô+ˆHØ˜#Š~ˆ~Ø�tð ˆ~r"   rÛ   rs  rl  Fr   r   )rm  rv   ru   Nrt  )rþ  r-   r!  r!   ru  rv  s         r    Útest_memory_only_cache_long_runz;TestCacheValidationCallback.test_memory_only_cache_long_run»  s-  € ð	ð 	ð 	ð
 �LŠLØŒHÐ0IÐSVÐRWð ñ 
ô 
ˆð
 ˜� %¨ ˆ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Û   rs  rl  Fr   rv   r2  N)r(   rn  r   r~   r   )rþ  r-   r!   ru  rv  Úd3s         r    Útest_memory_expires_afterz5TestCacheValidationCallback.test_memory_expires_afterÕ  s×   € ð �LŠLØŒHµÀcÐ0JÑ0JÔ0JÐTWÐSXð ñ 
ô 
ˆð ˜U�^ e¨U ^°e¸U°^�ˆBˆØˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}Øˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}ÝŒ
�3‰ŒˆØˆq��B‰xŒx˜1Š}ˆ}ˆ}ˆ}à�%ŒyÐÐÐØ�e”9ÐÐÐØ�%ŒyÐÐÐÐÐr"   rA   )râ   r^   rã   rú  rn  rp  r6  Úmarkr   rw  r|  r  r   r"   r    rj  rj  œ  s�   € € € € € Ø4Ð4ðð ð ð ð9ð 9ð 9ð „[×ÒÐ3°d¸E°]ÑCÔCð1ð 1ñ DÔCð1ðð ð ð4ð ð ð ð 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%   Útest_cache_dirc                 ó   — t          | ¦  «        }t          j        g d¢g d¢g¦  «        }|                     t          j        ¦  «        } ||¦  «         t          j        | ¦  «        } 	 t          j         	                    | d¦  «        }d}t          |¦  «        5 }||                     ¦   «         k    sJ ‚	 ddd¦  «         n# 1 swxY w Y   t          j        | d¬¦  «         dS # t          j        | d¬¦  «         w xY w)zoTest that using the memory object automatically creates a `.gitignore` file
    within the new cache directory.)r   r   r'   )rv   r#  é   z
.gitignorez%# Created by joblib automatically.
*
NTrU   )r   r   Úasarrayr(   Úsquarer5  r6  r7   r8   r9   r:   r5  rZ   r[   )r%   ÚmemÚarrÚcostly_operationÚpath_to_gitignore_fileÚgitignore_file_contentr!   s          r    Útest_memory_creates_gitignorer›    s7  € õ �Ñ
Ô
€CÝ
Œ*�i�i�i   Ð+Ñ
,Ô
,€CØ—y’y¥¤Ñ+Ô+ÐØÐ�SÑÔÐåŒ|˜HÑ%Ô%€Hð4Ý!#¤§¢¨h¸Ñ!EÔ!EÐØ!JÐÝÐ(Ñ)Ô)ð 	6¨QØ)¨Q¯VªV©X¬XÒ5Ð5Ð5Ð5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6õ 	Œ�h¨dÐ3Ñ3Ô3Ð3Ð3Ð3ø�Œ�h¨dÐ3Ñ3Ô3Ð3Ð3øøøs0   Á)1C% ÂCÂ6C% ÃCÃC% Ã	CÃ
C% Ã%C=rñ   )rR   )TrA   )xrú  rš  r´   rÖ   rd  r7   Úos.pathr5  r  rZ   rP  ry   r~   r6  Újoblib._store_backendsr   r   Újoblib.hashingr   Újoblib.memoryr   r   r   r	   r
   r   r   r   r   r   r   r   Újoblib.parallelr   r   Újoblib.test.commonr   r   r   Újoblib.testingr   r   r   r!   r0   r>   rJ   rc   r†   r‹   r‘   r™   r¦   rª   r°   r·   r»   r¾   rÀ   rË   rÝ   rê   ró   rý   r  r  r  r  r€  r'  r/  r<  rD  rJ  r[  r^  r`  rc  re  rg  rl  rà  Úfloatro  rv  rx  r…  r©  rÀ  rÈ  rË  rÖ  rÙ  rÜ  râ  ré  rì  r÷  rù  rü  rŠ  rX   r  r  r  r(  r-  r2  r7  r:  rC  rI  rS  r]  rh  rj  r‚  r6  Úresolver›  r   r"   r    ú<module>r¥     s&  ððð ð €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€à €€€à KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð
ð ð ð ð-ð -ð -ðð ð ðð ð ð +ð +ð +ð\ €Ð# d¨E ]Ñ3Ô3ðfAð fAñ 4Ô3ðfAðR;ð ;ð ;ð $ð $ð $ð 	Jð 	Jð 	Jð3ð 3ð 3ð4ð ð ð ?ð ?ð ?ð$?ð ?ð ?ð ð ð ð ð ð ð ð ðð ð ð Ø€ˆ[˜4 ˜+Ñ&Ô&ð-ð -ñ 'Ô&ñ „ð-ð& ð$ð $ñ „ð$ðNð ð ð*!ð !ð !ð&!ð !ð !ð6ð ð ð( €Ð)¨c¨U°C¸Ð,=ÀÀBÈ¸~Ð+NÑOÔOð
$ð 
$ñ PÔOð
$ðð ð ð@
ð 
ð 
ð. „×ÒÐ/°$¸°Ñ?Ô?ð+ð +ñ @Ô?ð+ð,ð ð ð.!=ð !=ð !=ðH	ð 	ð 	ðð ð ð@6+ð 6+ð 6+ðr	ð 	ð 	ð
ð ð ðð ð ðð ð ð ð ð ð
 (-°%ð ð ð ð ð ð˜3ð  5ð ¨Uð ð ð ð ðCð Cð Cð4&ð &ð &ð1ð 1ð 1ð 1ð*3ð 3ð 3ð.%ð %ð %ðPð ð ð8ð ð ð6"ð "ð "ðJ9ð 9ð 9ðð ð ð
>ð >ð >ð >ð
 ð'ð 'ñ Ôð'ð& ð'ð 'ñ Ôð'ð.*&ð *&ð *&ðZ	ð 	ð 	ð 	ð 	Ð-ñ 	ô 	ð 	ð!ð !ð !ð !ð !Ð(ñ !ô !ð !ðH €Ð  d d¡f¤f¨d¨d©f¬fÐ5Ñ6Ô6ð=ð =ñ 7Ô6ð=ðEð Eð Eð(ð (ð (ð7ð 7ð 7ð"ð ð ð6ð 6ð 6ð9ð 9ð 9ðð ð ð(ð ð ð@@ð @ð @ð0
3ð 
3ð 
3ð 
3ð „×ÒØà 1Ð%Ð%Ø a¸[È(Ð<SÐTÐTðñô ð%Eð %Eñô ð%EðPð ð ð2Hð Hð Hð Hð Hñ Hô Hð HðV$
ð $
ð $
ð $
ð $
ñ $
ô $
ð $
ðN Ø€ØàØˆŒÐ%Ñ&Ô&ØˆŒÐ%Ñ&Ô&×.Ò.Ñ0Ô0ðñô ð4ð 4ñô ñ „ð4ð 4ð 4r"   