§
    Øj�Ó  ã                   ób  — 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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, dpd„Z-d„ Z.d„ Z/d„ Z0d„ Z1ej2        j3         e*dddg¦  «        d„ ¦   «         ¦   «         Z4dZ5ej2        j3        d„ ¦   «         Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<d„ Z=d„ Z>d„ Z?e( e*ddd g¦  «        d!„ ¦   «         ¦   «         Z@e(d"„ ¦   «         ZAe(d#„ ¦   «         ZBd$„ ZCd%„ ZDd&„ ZEd'„ ZF e*d(d)gd*d fg d+dfg¦  «        d,„ ¦   «         ZGd-„ ZHd.„ ZIej2         *                    d/ddg¦  «        d0„ ¦   «         ZJd1„ ZKd2„ ZLd3„ ZMd4„ ZNd5„ ZOd6„ ZPd7„ ZQd8„ ZRd9„ ZSd:d;d<œd=„ZTd>eUd?eVd@eVfdA„ZWdB„ ZXdC„ ZYdqdD„ZZdE„ Z[dF„ Z\dG„ Z]dH„ Z^dI„ Z_dJ„ Z`dK„ ZadrdL„Zbe'dM„ ¦   «         Zce'dN„ ¦   «         ZddO„ Ze G dP„ dQe¦  «        Zf G dR„ dSe¦  «        Zg e*dTd eh¦   «          ei¦   «         g¦  «        dU„ ¦   «         ZjdV„ ZkdW„ ZldX„ ZmdY„ ZndZ„ Zod[„ Zpd\„ Zqd]„ Zrd^„ Zsdsd_„Ztej2         *                    d`dadbdcœd dddedfidgœg¦  «        dh„ ¦   «         Zuej2        j3        di„ ¦   «         Zv G dj„ dk¦  «        Zw G dl„ dm¦  «        Zx G dn„ do¦  «        ZydS )tz
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     úŒ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/joblib/test/test_memory.pyÚfr"   0   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   7   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?   F   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_recordT   s   ø€ Ø�Š˜ÑÔÐÐÐr#   Úwarn)Úsetattr)r,   Úmonkeypatch_fixturerG   rF   s      @r!   Úmonkeypatch_cached_func_warnrK   M   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>.fd   ó   ø€ Ø×Ò˜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#   aZ  if 1:
    import sys
    import textwrap

    from joblib import Memory

    LOCATION, WITNESS = sys.argv[1], sys.argv[2]

    ns = {}
    exec(
        compile(
            textwrap.dedent('''
                def f(x):
                    with open(WITNESS, "a") as fh:
                        fh.write("ran\\n")
                    return x * 2
            '''),
            filename="<ipython-input-0-000000000000>",
            mode="exec",
        ),
        None,
        ns,
    )
    f = ns["f"]
    f.__module__ = "__main__"

    assert Memory(location=LOCATION, verbose=0).cache(f)(21) == 42
c                 ól  — |                       d¦  «        j        }|                       d¦  «        j        }t          j                             t          j                             t          j                             t          ¦  «        ¦  «        ¦  «        }t          j                             ¦   «         }t          j	                              t          j                             |¦  «        | 
                    dd¦  «        g¦  «        |d<   dD ]M}||d<   t          j        t          j        dt          ||gdd|¬	¦  «        }|j        d
k    sJ |j        ¦   «         ‚ŒNt%          |¦  «        5 }|                     ¦   «                              d¦  «        dk    s
J d¦   «         ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr)   ÚwitnessÚ
PYTHONPATHÚ )Ú1Ú2ÚPYTHONHASHSEEDz-cT)Úcapture_outputÚtextÚenvr   Úranr   z!the second session lost the cache)r:   rZ   r8   r9   ÚdirnameÚabspathÚ__file__ÚenvironÚcopyÚpathsepÚgetÚ
subprocessÚrunÚsysÚ
executableÚ_JUPYTER_SESSIONÚ
returncodeÚstderrr;   ÚreadÚcount)r`   r&   r‰   Újoblib_rootr‘   ÚseedÚpÚfhs           r!   Ú5test_cached_jupyter_function_persists_across_sessionsr§     sÉ  € ð �{Š{˜7Ñ#Ô#Ô+€HØ�kŠk˜)Ñ$Ô$Ô,€Gå”'—/’/¥"¤'§/¢/µ"´'·/²/Å(Ñ2KÔ2KÑ"LÔ"LÑMÔM€KÝ
Œ*�/Š/Ñ
Ô
€CÝœ
ŸšÝ	Œ�Š˜Ñ	%Ô	% s§w¢w¨|¸RÑ'@Ô'@ÐAñô €CˆÑð ð +ð +ˆØ $ˆÐÑÝŒNÝŒ^˜TÕ#3°X¸wÐGØØØð	
ñ 
ô 
ˆð Œ|˜qÒ Ð Ð  !¤(Ñ Ô Ð Ð å	ˆg‰Œð P˜"Ø�wŠw‰yŒy�Š˜uÑ%Ô%¨Ò*Ð*Ð*Ð,OÑ*Ô*Ð*Ð*ðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps   Å%6F)Æ)F-Æ0F-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¬   6  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>.gJ  s   ø€ Ø×Ò˜1ÑÔÐØˆr#   r   r%   é   r   )r¯   r°   rN   )rY   r1   rZ   r   r)   )r`   ra   r.   r-   s      @r!   Útest_memory_kwargr²   F  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>.helperZ  ó   ø€ à×Ò˜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º   V  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_collisionf  ó	   € ð ˆr#   c                 ó   — | S )z'A second function called name_collisionr   r½   s    r!   r¾   z2test_memory_name_collision.<locals>.name_collisionm  r¿   r#   r   NÚ	collision)r   rZ   r)   r   r	   r+   ÚstrÚmessage)r`   r.   r¾   ÚaÚbÚwarninfos         r!   Útest_memory_name_collisionrÇ   b  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Ñ   Œ  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Ü   ®  sK   € å˜Vœ^°QÐ7Ñ7Ô7€Fåˆ]ÑÔ€AØ	�Š�a‰Œ€Bàˆ2ˆa‰5Œ5�AŠ:ˆ:ˆ:ˆ:ˆ:ˆ:r#   c                 ó¦   — t          | j        d¬¦  «        }g fd„}|                     |¦  «        } |¦   «         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%   c                 óN   — t          | ¦  «        }|                      d¦  «         |S )z{A 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_appendz.test_argument_change.<locals>.count_and_append¾  s#   € õ
 �A‘”ˆØ	�Š�‰ŒˆØˆr#   r   N©r   rZ   r)   )r`   r.   rà   r,   s       r!   Útest_argument_changerâ   ¸  sq   € õ ˜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¬¦  «        }|j        d„ ¦   «         }|                     ¦   «         }t	          |j        j        |j        d¬¦  «        }|j        j        dk    sJ ‚t          | 
                    ¦   «         t          j        ¦  «        sJ ‚dS )a  MemorizedResult must forward mmap_mode to its store backend.

    Reconstructing a MemorizedResult from a location (as when loading a cached
    result in a fresh process) previously dropped mmap_mode, so the array was
    loaded into memory instead of being memory-mapped.
    r   r%   c                  ó*   — t          j        d¦  «        S )Nr(   )r   rõ   r   r#   r!   r"   z3test_memorized_result_forwards_mmap_mode.<locals>.f  s   € åŒw�q‰zŒzÐr#   rR   )rT   N)r   rZ   r)   Úcall_and_shelver   r6   r&   Ú_call_idrT   rö   r™   r   r÷   )r`   r.   r"   ÚcachedÚdirects        r!   Ú(test_memorized_result_forwards_mmap_moder    s¨   € õ ˜Vœ^°QÐ7Ñ7Ô7€Fà„\ðð ñ „\ðð ×ÒÑ Ô €FÝØÔÔ% v¤À#ðñ ô €Fð ÔÔ)¨SÒ0Ð0Ð0Ð0Ý�f—j’j‘l”l¥B¤IÑ.Ô.Ð.Ð.Ð.Ð.Ð.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  8  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>.wrappedQ  s   ø€ à�1�dÐ%˜fÐ%Ð%Ð%r#   )rÕ   Úwraps)r"   r"  s   ` r!   Údecoratez.test_memory_ignore_decorated.<locals>.decorateP  s8   ø€ Ý	Œ˜Ñ	Ô	ð	&ð 	&ð 	&ð 	&ñ 
Ô	ð	&ð ˆr#   r    r  r   c                 ó2   •— ‰                      d¦  «         d S rN   rC   rÔ   s     €r!   r  z'test_memory_ignore_decorated.<locals>.zW  s   ø€ ð 	×Ò˜1ÑÔÐÐÐr#   r  r   Nr  r  )r`   r.   r$  r  r-   s       @r!   Útest_memory_ignore_decoratedr&  K  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_onem  ró   r#   r   r   rñ   r(   Nrá   )r`   r.   r)  s      r!   Útest_memory_args_as_kwargsr*  f  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  ó   € àˆr#   N)r   rZ   r)   r  Ú_verboserT   )r`   r  r'   rT   r.   r  s         r!   Útest_partial_decorationr0  z  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&   Úexistsr“   r   r]   Ú_check_previous_func_codeÚ_get_args_idÚfunc_idÚremove)	r`   r.   r9   ra   r7  r&   Úargs_idÚ
output_dirrÄ   s	            r!   Útest_func_dirr;  ˆ  sØ  € å˜Vœ^°QÐ7Ñ7Ô7€FÝ�>Š>˜#ÑÔ€DØ‡K‚K�ÑÔÐØˆ6Œ;�xÐ' $Ð'Ð'Ð'Ô/€Dà�Š•Q‰Œ€Aå$¥QÑ'Ô'€GÝŒw�|Š|˜AœOÔ4°gÑ>Ô>€HØ�tÒÐÐÐÝŒ7�>Š>˜$ÑÔÐÐÐØŒ?�bœgŸošo¨a¬oÔ.FÑGÔGÒGÐGÐGÐGõ
 ÔÑÔÐØ×*Ò*Ñ,Ô,Ð,Ð,Ð,ÝŒ7�>Š>�"œ'Ÿ,š, t¨^Ñ<Ô<Ñ=Ô=Ð=Ð=Ð=Ø×&Ò&Ñ(Ô(Ð(Ð(Ð(ð �nŠn˜QÑÔ€GÝ”—’˜aœoÔ6¸¼	À7ÑKÔK€JØ	ˆˆ!‰Œ€AÝŒ7�>Š>˜*Ñ%Ô%Ð%Ð%Ð%Ý„I�bŒg�lŠl˜: |Ñ4Ô4Ñ5Ô5Ð5Ø���!‘”Š9ˆ9ˆ9ˆ9ˆ9ˆ9r#   c                 ój  — t          | j        d¬¦  «        }|                     t          ¦  «        } |d¦  «        }t	          j        t	          j        |¦  «        ¦  «        }|                     d¦  «        }t          j	         
                    |j        j        |j        |¦  «        }t          j	                             |¦  «        sJ ‚||j                             |j        |g¦  «        k    sJ ‚t	          j        t	          j        |¦  «        ¦  «        }|j        j        |j        j        k    sJ ‚t          d d¬¦  «        }t	          j        t	          j        |¦  «        ¦  «         |                     t          ¦  «        }t	          j        t	          j        |¦  «        ¦  «        } |d¦  «         d S )Nr   r%   r   )r   rZ   r)   r"   ÚpickleÚloadsÚdumpsr6  r8   r9   r:   r6   r&   r7  r4  Ú	load_item)	r`   r.   ra   Úoutputr  r9  r:  Úmemory2Úgps	            r!   Útest_persistencerD  ¨  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   rE  s    €r!   r¹   z*test_check_call_in_cache.<locals>.<lambda>Ã  s   ø€ ÐCW€ r#   ©Úcache_validation_callbackr   r%   c                 ó   •— ‰S rB   r   rH  s    €r!   r¹   z*test_check_call_in_cache.<locals>.<lambda>Æ  s   ø€ Ð3G€ r#   r   é   )
r
   r"   rZ   r   r)   Úcheck_call_in_cacherö   Úboolr]   r   )r`   rE  r,   Úresults    `  r!   Útest_check_call_in_cacherP  ¿  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   rL  )Úzipr
   r"   rZ   r   r   r)   r   r   r  rö   r™   r]   r   ÚKeyError)r`   r,   ÚResultrO  s       r!   Útest_call_and_shelverV  Ö  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   rL  r   N)r:   r<   r8   ÚstatrZ   Úst_atimer   r€   r¡   ÚpytestÚskipr   r)   r"   r6  r9   r6   r&   r7  r  rö   r   r™   )	r`   Útest_access_time_fileÚtest_access_timer.   r,   r9  Úresult_pathÚfirst_access_timerO  s	            r!   Ú.test_call_and_shelve_lazily_load_stored_resultrb  í  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   r8  )r`   r,   rh   rO  ÚfpÚresult2s         r!   Útest_memorized_picklingrj    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'   rL  )r
   r"   rZ   r  r™   Úreprr   r   )r`   r,   rO  Úfunc2ri  s        r!   Útest_memorized_reprrp    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_prependrs  r   r)   r"   r[   r\   rœ   Ú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                 ó   — | |z   S rB   r   ©rÄ   rÅ   s     r!   Ú_sumrƒ  v  ó   € Øˆq‰5€Lr#   c                 ó   — | |z  S rB   r   r‚  s     r!   Ú_productr†  z  r„  r#   c                 ó’  — d„ }t           j        |_        t          | j        d¬¦  «        }|                     |¦  «        } |dd¦  «        dk    sJ ‚ |dd¦  «        dk    sJ ‚t          t          ¦  «        5  t          j        |_         |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 )Nc                 ó   — d S rB   r   r‚  s     r!   Ú_function_to_cachezFtest_memory_in_memory_function_code_change.<locals>._function_to_cache  r.  r#   r   r%   r   r   r(   )rƒ  r|   r   rZ   r)   r   r	   r†  )r`   r‰  r.   r"   s       r!   Ú*test_memory_in_memory_function_code_changerŠ  ~  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   Á86B<Â<C ÃC c                  óN   — t          d ¬¦  «        } |                      ¦   «          d S )NrR  )r   r]   )r.   s    r!   Ú$test_clear_memory_with_none_locationrŒ  ’  s#   € Ý˜TÐ"Ñ"Ô"€FØ
‡L‚L�N„N€N€N€Nr#   Úkw1Úkw2©r�  rŽ  c                ó   — | |||fS rB   r   )rÄ   rÅ   r�  rŽ  s       r!   Úfunc_with_kwonly_argsr‘  —  s   € Øˆa��cˆ>Ðr#   rÄ   rÅ   Úreturnc                 ó   — | |z   S rB   r   r‚  s     r!   Úfunc_with_signaturer”  ›  r„  r#   c                 ó.  — t          | j        d¬¦  «        }|                     t          ¦  «        } |ddd¬¦  «        dk    sJ ‚t	          t
          d¬	¦  «        5   |dddd
¬¦  «         d d d ¦  «         n# 1 swxY w Y    |dddd
¬¦  «         t	          t
          d¬	¦  «        5   |dddd
¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     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(   )r�  )r   r   r(   rŽ  zToo many arguments for©Úmatchrw   )rŽ  r�  rŽ  r  )r   r   r(   rw   Úignored)r   rZ   r)   r‘  r   Ú
ValueError©r`   r.   Úfunc_cacheds      r!   Ú!test_memory_func_with_kwonly_argsrœ  Ÿ  sÔ  € Ý˜Vœ^°QÐ7Ñ7Ô7€FØ—,’,Õ4Ñ5Ô5€Kàˆ;�q˜! Ð#Ñ#Ô#Ð'7Ò7Ð7Ð7Ð7õ 
•
Ð":Ð	;Ñ	;Ô	;ð $ð $Øˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð
 €K��1˜! Ð#Ñ#Ô#Ð#å	•
Ð":Ð	;Ñ	;Ô	;ð $ð $Øˆ�A�q˜! Ð#Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð —,’,Õ4¸e¸W�,ÑEÔE€KØˆ;�q˜! ¨Ð*Ñ*Ô*¨lÒ:Ð:Ð:Ð:Øˆ;�q˜! ¨	Ð2Ñ2Ô2°lÒBÐBÐBÐBÐBÐBs$   ÁA7Á7A;Á>A;Â'CÃCÃ
Cc                 óŠ   — t          | j        d¬¦  «        }|                     t          ¦  «        } |dd¦  «        dk    sJ ‚d S )Nr   r%   r   g       @g      @)r   rZ   r)   r”  rš  s      r!   Útest_memory_func_with_signaturerž  ·  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_bytesÁ  s   € àˆzr#   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )r6  )rp   rP   r£  s     €r!   ú
<listcomp>z$_setup_toy_cache.<locals>.<listcomp>Ê  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“   r7  r£  s     €€r!   r¥  z$_setup_toy_cache.<locals>.<listcomp>Ì  sA   ø€ ð ð ð àõ 	Œ�Š�^Ô1Ô:¸GÀWÑMÔMðð ð r#   )r   rZ   r)   rY   r*   r   )	r`   Ú
num_inputsr.   ÚinputsrP   Úhash_dirnamesÚfull_hashdirsr7  r£  s	          @@r!   Ú_setup_toy_cacher«  ¾  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   rh  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 positiver–  gü©ñÒMbP?)rÀ  r   r«  r6   r7   rë  rÙ  Ú	timedeltar€   rÆ  rØ  r+   r\  r   r™  )r`   rÀ  r   r.   r0   Ú	put_cacherì  rí  s           r!   Ú!test_memory_reduce_size_age_limitrû  I  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&   r5  )r`   r.   r0   ra   s       r!   Útest_memory_clearrþ  n  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  x  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 )NrR  r   rk   c              3   óF   •K  — | ]} t          ‰¦  «        ¦   «         V — Œd S rB   rn   ©rp   r/   r›  s     €r!   rr   zMtest_cached_function_race_condition_when_persisting_output.<locals>.<genexpr>Š  s4   øè è € Ð@Ð@°!Ð+•w˜{Ñ+Ô+Ñ-Ô-Ð@Ð@Ð@Ð@Ð@Ð@r#   r(   rô   )r   rZ   r)   r  r   r*   ry  ©r`   Úcapfdr.   rv  r    rþ   r›  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 )NrR  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>   sW   øè è € ð ð Ø@AÐ��ÑÔ Q¨¡U¨a¢Z Z˜T˜T°UÑ;Ô;ðð ð ð ð ð r#   r(   rô   )r   rZ   r)   r  r   r*   ry  r  s         @r!   Ú<test_cached_function_race_condition_when_persisting_output_2r  –  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)	NrR  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™   ÚAssertionErrorrT  rÂ   r   )r`   rú   r.   r,   Úcached_funcÚ	input_argrP   rm  rü   Úrecomputed_argÚrecomputed_timestamprþ   Ú	referenceÚerÃ   s                  r!   Ú;test_memory_recomputes_after_an_error_while_loading_resultsr  ®  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!   r4  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-  r4  r2  r7   r5  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   r™  r   r—  )r6  Úexcinfos     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*r8  ©r9  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   r—  r>  s    r!   Ú!test_memory_default_store_backendrD    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!   ÚNonSupportedLocationClassrG    r  r#   rH  ÚlocalrR  zbInstantiating a backend using a NonSupportedLocationClass as a location is not supported by joblibr   )r   ÚUserWarningr   rÂ   rÃ   )rH  Úunsupported_locationrÆ   Úexpected_mesages       r!   Ú%test_warning_on_unknown_location_typerM    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   rC  r   r—  )Úbackend_namer9  s     r!   Ú)test_instanciate_incomplete_store_backendrR  -  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ö   )rQ  Úbackend_objs     r!   Útest_dummy_store_backendrW  ;  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_folderrI  TrV   )r   r   r&   r[   r\   )r9   rV  s     r!   Ú0test_instanciate_store_backend_with_pathlib_pathrZ  F  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}")rR  )r   r&   rn  rÂ   rx   r5  rZ   )r`   Úrepr_patternrB  s      r!   Ú"test_filesystem_store_backend_reprr]  P  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_funcg  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,   r9  zMemory(location={location})rR  )
r   rZ   r)   rÂ   rx   r6   r&   r  r7  r9  )r`   r`  r.   Úmemorized_funcÚmemorized_func_reprÚmemorized_resultÚmemorized_result_reprs          r!   Útest_memory_objects_reprrf  d  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 )NrR  c                 ó   — | dz  S rð   r   r½   s    r!   ra   z'test_memorized_result_pickle.<locals>.g‹  ó   € à�!‰tˆr#   rw   )r   rZ   r)   r  r=  r?  r>  r6   r&   r,   r9  rÂ   )r`   r.   ra   rd  Úmemorized_result_pickleÚmemorized_result_loadss         r!   Útest_memorized_result_picklerl  „  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!   Úcomparerv  œ  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'   rL  Ú	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   rm  Ú_func_code_id)rr  r   r   )r   rZ   r=  r>  r?  rv  r6   rÆ  r   r)   r"   r  )r`   rw  r.   Úmemory_reloadedr›  Úfunc_cached_reloadedrd  Úmemorized_result_reloadeds           r!   Útest_memory_pickle_dump_loadr€  ©  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ß  ri  r#   ÚQueryingr   c                 ó   — | dz  S rð   r   r½   s    r!   r"   ztest_info_log.<locals>.fé  ri  r#   )Ú	set_levelÚloggingÚINFOr   rZ   r)   r�   r]   )r`   Úcaplogr   r.   r"   r0   s         r!   Útest_info_logrŠ  Ø  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 )NTr›   r   r  )r"  r   rý   Údelays       r!   ÚfoozTestCacheValidationCallback.fooõ  s*   € Øˆˆ%‰ØÐÝŒJ�uÑÔÐØ�1‰uˆr#   c                 óÀ   — t          |d¬¦  «        }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_callbackr   r%   z9cache_validation_callback needs to be callable. Got True.r–  TrI  N)r   r\  r   r™  r)   )r"  Útmp_pathr.   r—  s       r!   Ú&test_invalid_cache_validation_callbackzBTestCacheValidationCallback.test_invalid_cache_validation_callbackû  s¦   € å °1Ð5Ñ5Ô5ˆØ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rE  TFc                 óô   ‡— t          |d¬¦  «        }|                     | 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 resultsr   r%   c                 ó   •— ‰S rB   r   rH  s    €r!   r¹   zUTestCacheValidationCallback.test_constant_cache_validation_callback.<locals>.<lambda>  s   ø€ Ð0D€ r#   rý   ©rJ  r  r›   Fr   rw   N©r   r)   r�  )r"  r‘  rE  r.   r"   Úd1Úd2s     `    r!   Ú'test_constant_cache_validation_callbackzCTestCacheValidationCallback.test_constant_cache_validation_callback  s±   ø€ õ  °1Ð5Ñ5Ô5ˆØ�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                 óz  — d„ }t          |d¬¦  «        }|                     | j        |dg¬¦  «        }ddiddi}} |d|d¬	¦  «        d
k    sJ ‚ |d|d¬	¦  «        d
k    sJ ‚|d         sJ ‚|d         sJ ‚ddiddi}} |d|d¬	¦  «        d
k    sJ ‚ |d|d¬	¦  «        d
k    sJ ‚|d         sJ ‚|d         rJ ‚dS )z*Test cache validity based on run duration.c                 ó&   — | d         }|dk    rdS d S )NÚdurationgš™™™™™¹?Tr   )Úmetadatarœ  s     r!   rJ  z^TestCacheValidationCallback.test_memory_only_cache_long_run.<locals>.cache_validation_callback  s!   € Ø 
Ô+ˆHØ˜#Š~ˆ~Ø�tð ˆ~r#   r   r%   rý   r•  r›   Fr   )rŽ  rw   rv   Nr–  )r"  r‘  rJ  r.   r"   r—  r˜  s          r!   Útest_memory_only_cache_long_runz;TestCacheValidationCallback.test_memory_only_cache_long_run  s;  € ð	ð 	ð 	õ
  °1Ð5Ñ5Ô5ˆØ�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                 óh  — t          |d¬¦  «        }|                     | 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 resultsr   r%   g333333Ó?r÷  rý   r•  r›   Fr   rw   rY  N)r   r)   r�  r   r   r€   )r"  r‘  r.   r"   r—  r˜  Úd3s          r!   Útest_memory_expires_afterz5TestCacheValidationCallback.test_memory_expires_after.  sä   € å °1Ð5Ñ5Ô5ˆØ�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  r�  r’  r\  Úmarkr   r™  rž  r¡  r   r#   r!   rŒ  rŒ  ò  s�   € € € € € Ø4Ð4ðð ð ð ð9ð 9ð 9ð „[×ÒÐ3°d¸E°]ÑCÔCð1ð 1ñ DÔCð1ð ð ð ð6ð ð ð ð r#   rŒ  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.fC  s(   € à—[’[  AÑ&Ô&¨Ñ*ˆ�‰
Ø�qŒzÐr#   c                 ó>  — t          |d¬¦  «        }|                     | 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  r   r   úf has not been called properlyú0Metadata are not returned by MemorizedFunc.call.N)r   r)   r"   Úcallrö   Údict)r"  r‘  r.   r"   r§  r   Úmetas          r!   Útest_call_method_memorizedz,TestMemorizedFunc.test_call_method_memorizedH  sÄ   € å °1Ð5Ñ5Ô5ˆØ�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"  r"   r§  r   r®  s        r!   Útest_call_method_not_memorizedz0TestMemorizedFunc.test_call_method_not_memorizedW  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   rt  r   r)   Úidr4  Ú	read_text)r"  r`   r&   ÚmemÚcostly_operationÚgitignore_files         r!   Útest_memory_creates_gitignorez/TestAutoGitignore.test_memory_creates_gitignorei  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   rt  Ú
write_textr   r)   r¸  r4  r¹  )r"  r`   r&   r¼  Úexisting_contentrº  s         r!   Ú1test_memory_does_not_overwrite_existing_gitignorezCTestAutoGitignore.test_memory_does_not_overwrite_existing_gitignorew  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´  f  s;   € € € € € Ø>Ð>ðWð Wð Wð>ð >ð >ð >ð >r#   r´  r  )rS   )TrB   )zr  rÀ  rÕ   rø   r‡  r8   Úos.pathr=  r[   rš   rœ   rz   r   Úpathlibr   r\  Ú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¢  Úthread_unsafer‡   rž   r§   r¬   r²   rº   rÇ   rË   rÑ   rØ   rÜ   râ   rí   rÿ   r  r  r  r&  r*  r0  r;  rD  rP  rV  rb  rj  rp  r€  rƒ  r†  rŠ  rŒ  r‘  r  Úfloatr”  rœ  rž  r«  rÏ  ræ  rî  rñ  rû  rþ  r  r  r  r  r  r  r   r­  rY   r:  r?  rD  rM  rR  rW  rZ  r]  rf  rl  rv  r€  rŠ  rŒ  r¤  r´  r   r#   r!   ú<module>rÌ     s9  ððð ð €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð à €€€à 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ðVÐ ð< „ÔðPð Pñ ÔðPð>;ð ;ð ;ð $ð $ð $ð 	Jð 	Jð 	Jð3ð 3ð 3ð4ð ð ð ?ð ?ð ?ð$?ð ?ð ?ð ð ð ðð ð ð0 Ø€ˆ[˜4 ˜+Ñ&Ô&ð-ð -ñ 'Ô&ñ „ð-ð& ð$ð $ñ „ð$ðN ð/ð /ñ „ð/ð*ð ð ð*!ð !ð !ð&!ð !ð !ð6ð ð ð( €Ð)¨c¨U°C¸Ð,=ÀÀBÈ¸~Ð+NÑOÔOð
$ð 
$ñ PÔOð
$ðð ð ð@
ð 
ð 
ð. „×ÒÐ/°$¸°Ñ?Ô?ð+ð +ñ @Ô?ð+ð,ð ð ð.!=ð !=ð !=ðH	ð 	ð 	ðð ð ð@6+ð 6+ð 6+ðrð ð ðð ð ðð ð ð(ð ð ð
 (-°%ð ð ð ð ð ð˜3ð  5ð ¨Uð ð ð ð ðCð Cð Cð0&ð &ð &ð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 „Ôðð ñ Ôðð2Kð Kð Kð Kð Kñ Kô Kð Kð\#
ð #
ð #
ð #
ð #
ñ #
ô #
ð #
ðL >ð  >ð  >ð  >ð  >ñ  >ô  >ð  >ð  >ð  >r#   