§
    dŠtjCÇ  ã                   óÞ  — 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m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„ Z0 e)dddg¦  «        d„ ¦   «         Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9g fd„Z:d„ Z;e' e)dddg¦  «        d „ ¦   «         ¦   «         Z<e'd!„ ¦   «         Z=d"„ Z>d#„ Z?d$„ Z@d%„ ZA e)d&d'gd(dfg d)dfg¦  «        d*„ ¦   «         ZBd+„ ZCd,„ ZDejE         )                    d-ddg¦  «        d.„ ¦   «         ZFd/„ ZGd0„ ZHd1„ ZId2„ ZJd3„ ZKd4„ ZLd5„ ZMd6„ ZNd7„ ZOd8„ ZPd9d:d;œd<„ZQd=eRd>eSd?eSfd@„ZTdA„ ZUdB„ ZVdpdC„ZWdD„ ZXdE„ ZYdF„ ZZdG„ Z[dH„ Z\dI„ Z]dJ„ Z^dqdK„Z_e&dL„ ¦   «         Z`e&dM„ ¦   «         ZadN„ Zb G dO„ dPe¦  «        Zc G dQ„ dRe¦  «        Zd e)dSd ee¦   «          ef¦   «         g¦  «        dT„ ¦   «         ZgdU„ ZhdV„ ZidW„ ZjdX„ ZkdY„ ZldZ„ Zmd[„ Znd\„ Zod]„ Zpdrd^„ZqejE         )                    d_d`dadbœddcdddeidfœg¦  «        dg„ ¦   «         Zrdh„ Zs G di„ dj¦  «        Zt G dk„ dl¦  «        Zu G dm„ dn¦  «        ZvdS )sz
Test the memory module.
é    N)ÚPath)Ú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     úU/var/www/html/CA-Chatbot/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_lazyr1   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_fixturerG   rF   s      @r!   Úmonkeypatch_cached_func_warnrK   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   rC   ©Úargr-   s    €r!   r"   z"test_memory_integration.<locals>.fc   ó   ø€ Ø×Ò˜1ÑÔÐØˆ
r#   )FT)ÚrNé
   )r&   r'   Ú	mmap_modeÚcompressT©Úignore_errorsr   F)rH   Ú__main__r   r%   N)Úlistr1   Ústrpathr   ÚshutilÚrmtreer)   Úclearr+   ÚevalÚ
__module__)	Útmpdirr"   rU   rT   r.   ÚgÚcurrent_accumulatorÚoutr-   s	           @r!   Útest_memory_integrationrd   \   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"   rX   r   r   r%   Újoblibzipython-inputr(   r   ©Ún_jobsc              3   óH   •K  — | ]} t          ‰¦  «        |¦  «        V — Œd S rB   ©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 rB   rn   ro   s     €r!   rr   zHtest_parallel_call_cached_function_defined_in_jupyter.<locals>.<genexpr>Ú   rs   r#   é   çš™™™™™É?é   )Úformatrg   ÚcompileÚtextwrapÚdedentr_   Ú__code__Úco_filenamer   rZ   r)   r+   r8   Úlistdirr   r*   ÚtimeÚsleep)r`   re   Ú
session_noÚipython_cell_sourceÚipython_cell_idÚ	my_localsr"   r.   Úf_cache_relative_directoryÚf_cache_directoryr0   rq   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 rN   rC   rO   s    €r!   Úffztest_no_memory.<locals>.ffø   rQ   r#   Nr   r%   rw   r   )rY   r   r)   r*   r+   )rŠ   r.   Úggr0   rb   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 rN   rC   )Úarg1Úarg2r-   s     €r!   ra   ztest_memory_kwarg.<locals>.g  s   ø€ Ø×Ò˜1ÑÔÐØˆr#   r   r%   é   r   )r�   r�   rN   )rY   r1   rZ   r   r)   )r`   ra   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   rC   )r   r-   s    €r!   Úhelperz"test_memory_lambda.<locals>.helper  ó   ø€ à×Ò˜1ÑÔÐØˆr#   c                 ó   •—  ‰| ¦  «        S rB   r   )r   r–   s    €r!   ú<lambda>z$test_memory_lambda.<locals>.<lambda>  s   ø€  & &¨¡)¤)€ r#   N)rY   r1   rZ   )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   rZ   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 rB   r   r�   s    r!   r™   z7test_memory_warning_lambda_collisions.<locals>.<lambda>=  s   € ˜q€ r#   c                 ó   — | dz   S rN   r   r�   s    r!   r™   z7test_memory_warning_lambda_collisions.<locals>.<lambda>>  s
   € ˜q 1™u€ r#   r   r   rw   )r   rZ   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   rZ   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•   rC   ©r   r    r-   s     €r!   r,   z!test_memory_partial.<locals>.func`  r—   r#   r   Nr   )rY   Ú	functoolsÚpartialr1   rZ   )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   rZ   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+   rD   )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   rZ   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#   rT   rR   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 rN   rC   rO   s    €r!   Únztest_memory_numpy.<locals>.n”  rQ   r#   r   ©r&   rT   r'   r(   )rS   rS   r   rB   )rY   r   rZ   r)   r   ÚrandomÚRandomStater*   Úrandom_sampleÚallr+   )
r`   rT   rÄ   r.   Úcached_nÚrndr/   r¤   r0   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 callrR   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   rZ   r)   r   ÚonesÚ
isinstanceÚmemmapri   ÚgcÚcollectr?   rK   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 rB   r   )Úexcrå   s    €r!   Úhz test_memory_exception.<locals>.hÒ  s   ø€ àð 	ØÐð	ð 	r#   r(   r   N)r   )r   rZ   Ú	Exceptionr)   r*   r   )r`   r.   ré   r0   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 rN   rC   r´   s     €r!   Úzztest_memory_ignore.<locals>.zå  s   ø€ à×Ò˜1ÑÔÐÐÐr#   ©r    r   N©r   ©r   rZ   rY   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 rB   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 rN   rC   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 rN   r   rÐ   s    r!   Úplus_onez,test_memory_args_as_kwargs.<locals>.plus_one  rÒ   r#   r   r   rÐ   r(   N)r   rZ   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   rS   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'   rT   c                 ó   — d S rB   r   r�   s    r!   rð   z"test_partial_decoration.<locals>.z'  s   € àˆr#   N)r   rZ   r)   rî   Ú_verboserT   )r`   rî   r'   rT   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"   rj   zfunc_code.pyr   r3   )r   rZ   rã   ÚsplitrD   r:   r)   r"   r   r8   r9   r6   r&   ÚexistsÚdirnamer   r]   Ú_check_previous_func_codeÚ_get_args_idÚfunc_idÚremove)	r`   r.   r9   ra   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   rZ   r)   r"   ÚpickleÚloadsÚdumpsr  r8   r9   r:   r6   r&   r  r  Ú	load_item)	r`   r.   ra   Ú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 rB   r   ©r0   r  s    €r!   r™   z*test_check_call_in_cache.<locals>.<lambda>k  s   ø€ ÐCW€ r#   ©Úcache_validation_callbackr   r%   c                 ó   •— ‰S rB   r   r   s    €r!   r™   z*test_check_call_in_cache.<locals>.<lambda>n  s   ø€ Ð3G€ r#   r   é   )
r
   r"   rZ   r   r)   Úcheck_call_in_cacherÕ   Úboolr]   r   )r`   r  r,   Úresults    `  r!   Útest_check_call_in_cacher(  g  s5  ø€ õ 	ÝˆvŒ~Ð9WÐ9WÐ9WÐ9Wð	
ñ 	
ô 	
õ 	˜œ°Ð2Ñ2Ô2×8Ò8ÝÐ)GÐ)GÐ)GÐ)Gð 	9ñ 	
ô 	
ð	ð ð ˆð ×)Ò)¨!Ñ,Ô,ˆÝ˜&¥$Ñ'Ô'Ð'Ð'Ð'ØÐÐˆzØˆ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"   rZ   r   r   r)   r   r   Úcall_and_shelverÕ   Úgetr]   r   ÚKeyError)r`   r,   ÚResultr'  s       r!   Útest_call_and_shelver0  ~  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   r3   r$  r   N)r:   r<   r8   ÚstatrZ   Úst_atimer   r€   ÚreadÚpytestÚskipr   r)   r"   r  r9   r6   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"   rZ   r   r:   r,  r;   r  ÚdumpÚloadr-  r8   r  )r`   r,   rh   r'  ÚfpÚresult2s         r!   Útest_memorized_picklingrE  ¹  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"   rZ   r,  r-  Úreprr   r   )r`   r,   r'  Úfunc2rD  s        r!   Útest_memorized_reprrK  Å  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
r4   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
)ÚmkdirrZ   r8   r9   r:   r;   r<   Úsyspath_prependrN  r   r)   r"   r[   r\   ÚsysÚstdoutÚmodulesÚpopÚ
readouterr)Úcapsysr`   rÙ   Údir_namerh   ÚcontentÚmodule_fileÚtmpr.   r"   rc   Ú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 rB   r   ©r¤   r¥   s     r!   Ú_function_to_cacher_    s   € à€Dr#   c                 ó   — | |z   S rB   r   r^  s     r!   Ú_sumra  #  ó   € Øˆq‰5€Lr#   c                 ó   — | |z  S rB   r   r^  s     r!   Ú_productrd  '  rb  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(   )	ra  r|   r_  r   rZ   r)   r   r	   rd  )r`   r.   r"   s      r!   Ú*test_memory_in_memory_function_code_changerf  +  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_locationrh  ;  s#   € Ý˜TÐ"Ñ"Ô"€FØ
‡L‚L�N„N€N€N€Nr#   Úkw1Úkw2©ri  rj  c                ó   — | |||fS rB   r   )r¤   r¥   ri  rj  s       r!   Úfunc_with_kwonly_argsrm  @  s   € Øˆa��cˆ>Ðr#   r¤   r¥   Úreturnc                 ó   — | |z   S rB   r   r^  s     r!   Úfunc_with_signaturerp  D  rb  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(   )ri  )r   r   r(   rj  rw   )rj  z?Keyword-only parameter 'kw1' was passed as positional parameterrk  rj  rí   )r   r   r(   rw   Úignored)r   rZ   r)   rm  r   Ú
ValueErrorÚmatch)r`   r.   Úfunc_cachedÚexcinfos       r!   Ú!test_memory_func_with_kwonly_argsrw  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   rZ   r)   rp  )r`   r.   ru  s      r!   Útest_memory_func_with_signaturery  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   ©rP   s    r!   Úget_1000_bytesz(_setup_toy_cache.<locals>.get_1000_bytesl  s   € àˆzr#   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )r  )rp   rP   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   )r8   r9   r:   r6   r&   )rp   r  r  r~  s     €€r!   r€  z$_setup_toy_cache.<locals>.<listcomp>w  sA   ø€ ð ð ð àõ 	Œ�Š�^Ô1Ô:¸GÀWÑMÔMðð ð r#   )r   rZ   r)   rY   r*   r   )	r`   Ú
num_inputsr.   ÚinputsrP   Ú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   )r9   ©rp   Ú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   ©r8   r9   r:   )rp   Ú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 rB   )r8   r9   Úgetsize)rp   rC  s     r!   rr   z:test__get_items.<locals>.get_files_size.<locals>.<genexpr>†  s0   è è € Ð<Ð<¨2•2”7—?’? 2Ñ&Ô&Ð<Ð<Ð<Ð<Ð<Ð<r#   )r8   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   )rp   Ú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 )r3   r�  )rp   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Úfromtimestampr8   r9   Úgetatime)rp   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†  r6   r7   Úset)r`   r.   Úexpected_hash_dirsr0   Ú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 rB   rŸ  r‰  s     r!   rr   z,test__get_items_to_delete.<locals>.<genexpr>¸  s$   è è € Ð>Ð> "ˆrŒ~Ð>Ð>Ð>Ð>Ð>Ð>r#   c              3   ó$   K  — | ]}|j         V — Œd S rB   rŸ  r‰  s     r!   rr   z,test__get_items_to_delete.<locals>.<genexpr>¸  s=   è è € ð Fð FØˆŒðFð Fð Fð Fð Fð Fr#   )r†  r6   Ú_get_items_to_deleter7   r+   r¡  ÚissubsetÚsortedÚ
differenceÚmaxÚmin)r`   r.   r0   Ú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×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†  r6   r7   Úreduce_sizer´  r¡  r³  r+   )r`   r.   r0   Ú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 )NrS   )Úitems_limitr   r   rÅ  )r`   r.   r0   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©rt  gü©ñÒMbP?)r›  r   r†  r6   r7   rÆ  r´  Ú	timedeltar€   r¡  r³  r+   r7  r   rs  )r`   r›  r   r.   r0   Ú	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 )Nrw   )Ú
stacklevel)r†  r]   r8   r~   r6   r&   r  )r`   r.   r0   ra   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¢   )rp   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   rk   c              3   óF   •K  — | ]} t          ‰¦  «        ¦   «         V — Œd S rB   rn   ©rp   r/   ru  s     €r!   rr   zMtest_cached_function_race_condition_when_persisting_output.<locals>.<genexpr>5  s4   øè è € Ð@Ð@°!Ð+•w˜{Ñ+Ô+Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r#   r(   rÓ   )r   rZ   r)   rÝ  r   r*   rU  ©r`   Úcapfdr.   rR  ÚstderrrÝ   ru  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   rk   c              3   ó^   •K  — | ]'} t          ‰¦  «        |d z  dk    rdnd¦  «        V — Œ(dS )r   r   TFNrn   ræ  s     €r!   rr   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   rZ   r)   rã  r   r*   rU  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#   rP   r   rÓ   r   z<It normally not possible to load a corrupted MemorizedResultzis corrupted)r   rZ   r)   r?   rK   r+   r,  r-  ÚAssertionErrorr.  r¢   rø   )r`   rÙ   r.   r,   Úcached_funcÚ	input_argrP   rH  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!   r7   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  r7   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   rs  r   rt  )r  rv  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  ©rv  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   rt  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   rt  )Úbackend_namerv  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_backendr3  æ  sg   € ð €LÝ˜<Õ):Ñ;Ô;Ð;ØÕ+Ð,µÔ0EÑ0GÔ0GÐGÐGÐGÐGå(¨Ð7GÑHÔH€KÝ�kÕ#4Ñ5Ô5Ð5Ð5Ð5Ð5Ð5r#   c                  óÄ   — t          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%  TrV   )r   r   r&   r[   r\   )r9   r2  s     r!   Ú0test_instanciate_store_backend_with_pathlib_pathr6  ñ  sp   € å�ÑÔ€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&   rI  r¢   rx   r  rZ   )r`   Úrepr_patternr  s      r!   Ú"test_filesystem_store_backend_reprr9  û  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 rB   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   rZ   r)   r¢   rx   r6   r&   r,  r  r  )r`   r<  r.   Úmemorized_funcÚmemorized_func_reprÚmemorized_resultÚmemorized_result_reprs          r!   Útest_memory_objects_reprrB    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!   ra   z'test_memorized_result_pickle.<locals>.g6  ó   € à�!‰tˆr#   rw   )r   rZ   r)   r,  r  r  r  r6   r&   r,   r  r¢   )r`   r.   ra   r@  Úmemorized_result_pickleÚmemorized_result_loadss         r!   Útest_memorized_result_picklerH  /  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 rB   )Úvarsr¡  Úkeys)ÚleftÚrightÚignored_attrsÚ	left_varsÚ
right_varsÚattrs         r!   ÚcomparerR  G  s¦   € ØÐØˆå�T‘
”
€IÝ�e‘”€JÝˆy�~Š~ÑÔÑ Ô ¥C¨
¯ªÑ(9Ô(9Ñ$:Ô$:Ò:Ð:Ð:Ð:Ø—’Ñ Ô ð 3ð 3ˆØ�=Ð Ð ØØ˜Œ *¨TÔ"2Ò2Ð2Ð2Ð2Ð2ð3ð 3r#   Úmemory_kwargsr(   r   )rU   r'   r$  Ú	parameterÚunused)rT   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&   )r6   rH  Ú_func_code_id)rN  r   r   )r   rZ   r  r  r  rR  r6   r¡  r   r)   r"   r,  )r`   rS  r.   Úmemory_reloadedru  Úfunc_cached_reloadedr@  Ú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‰  rE  r#   ÚQueryingr   c                 ó   — | dz  S rÏ   r   r�   s    r!   r"   ztest_info_log.<locals>.f“  rE  r#   )Ú	set_levelÚloggingÚINFOr   rZ   r)   Útextr]   )r`   Úcaplogr   r.   r"   r0   s         r!   Útest_info_logrg  ƒ  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)r7  r   rs  r)   )rÿ  r.   rt  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 rB   r   r   s    €r!   r™   zUTestCacheValidationCallback.test_constant_cache_validation_callback.<locals>.<lambda>°  s   ø€ Ð0D€ r#   rÜ   ©r"  rî   rk  Fr   rw   N©r)   rm  )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Ø�%Œ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   )Úmetadatary  s     r!   r"  z^TestCacheValidationCallback.test_memory_only_cache_long_run.<locals>.cache_validation_callback¾  s!   € Ø 
Ô+ˆHØ˜#Š~ˆ~Ø�tð ˆ~r#   rÜ   rr  rk  Fr   r   )rl  rw   rv   Nrs  )rÿ  r.   r"  r"   rt  ru  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Ø�%ŒyÐÐˆyð ˜� %¨ ˆBˆØˆq��B˜cÐ"Ñ"Ô" aÒ'Ð'Ð'Ð'Øˆq��B˜cÐ"Ñ"Ô" aÒ'Ð'Ð'Ð'Ø�%ŒyÐÐˆ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Ü   rr  rk  Fr   rw   r3  N)r)   rm  r   r   r€   )rÿ  r.   r"   rt  ru  Ú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ÐÐˆyØ�e”9ÐÐˆ}Ø�%ŒyÐÐˆyÐÐr#   rB   )rã   r_   rä   rû  rm  ro  r7  Úmarkr   rv  r{  r~  r   r#   r!   ri  ri  œ  s�   € € € € € Ø4Ð4ðð ð ð ð9ð 9ð 9ð „[×ÒÐ3°d¸E°]ÑCÔCð1ð 1ñ DÔCð1ðð ð ð4ð ð ð ð r#   ri  c                   ó4   — e Zd ZdZed„ ¦   «         Zd„ Zd„ ZdS )ÚTestMemorizedFuncú8Tests 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�  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestAutoGitignorer‚  c                 ó  — t          |                     d¦  «        ¦  «        }t          |¦  «        }|                     t          ¦  «        } |d¦  «         |dz  }|                     ¦   «         sJ ‚|                     ¦   «         dk    sJ ‚dS )zsTest that using the memory object automatically creates a `.gitignore` file
        within the new cache directory.Útest_cache_dirr   ú
.gitignorez%# Created by joblib automatically.
*
N)r   rO  r   r)   Úidr  Ú	read_text)rÿ  r`   r&   ÚmemÚcostly_operationÚgitignore_files         r!   Útest_memory_creates_gitignorez/TestAutoGitignore.test_memory_creates_gitignore  s’   € õ ˜ŸšÐ%5Ñ6Ô6Ñ7Ô7ˆå�XÑÔˆØŸ9š9¥R™=œ=ÐØÐ˜ÑÔÐà! LÑ0ˆØ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ø×'Ò'Ñ)Ô)Ð-VÒVÐVÐVÐVÐVÐVr#   c                 óF  — t          |                     d¦  «        ¦  «        }|dz  }d}|                     |¦  «         t          |¦  «        } |                     t
          ¦  «        d¦  «         |                     ¦   «         sJ ‚|                     ¦   «         |k    sJ ‚dS )zvTest that using the memory object does not overwrite an existing
        `.gitignore` file within the cache directory.r”  r•  z# Existing .gitignore file!r   N)r   rO  Ú
write_textr   r)   r–  r  r—  )rÿ  r`   r&   rš  Úexisting_contentr˜  s         r!   Ú1test_memory_does_not_overwrite_existing_gitignorezCTestAutoGitignore.test_memory_does_not_overwrite_existing_gitignore  s¨   € õ ˜ŸšÐ%5Ñ6Ô6Ñ7Ô7ˆØ! LÑ0ˆà8ÐØ×!Ò!Ð"2Ñ3Ô3Ð3õ �XÑÔˆØˆ�	Š	•"‰Œ�aÑÔÐà×$Ò$Ñ&Ô&Ð&Ð&Ð&Ø×'Ò'Ñ)Ô)Ð-=Ò=Ð=Ð=Ð=Ð=Ð=r#   N)rã   r_   rä   rû  r›  rŸ  r   r#   r!   r’  r’    s;   € € € € € Ø>Ð>ðWð Wð Wð>ð >ð >ð >ð >r#   r’  rò   )rS   )TrB   )wrû  r›  rµ   r×   rc  r8   Úos.pathr  r[   rQ  rz   r   Úpathlibr   r7  Ú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"   r1   r?   rK   rd   r‡   rŒ   r’   rš   r§   r«   r±   r¸   r¼   r¿   rÁ   rÌ   rÞ   rë   rô   rþ   r  r  r  r  r  r(  r0  r=  rE  rK  r\  r_  ra  rd  rf  rh  rm  rá  Úfloatrp  rw  ry  r†  rª  rÁ  rÉ  rÌ  r×  rÚ  rÝ  rã  rê  rí  rø  rú  rý  rŠ  rY   r  r  r   r)  r.  r3  r6  r9  rB  rH  rR  r\  rg  ri  r�  r’  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 >ð  >ð  >ð  >ð  >ñ  >ô  >ð  >ð  >ð  >r#   