+
    €",iöÅ  ã                   ó  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RI H!t!H"t" ^ RI#H$t$H%t%H&t& ^ RI'H(t(H)t)H*t* RfR lt+R	 t,R
 t-R t.R t/]P`                  Pb                  ](! RRR.4      R 4       4       t2R t3R t4R t5R t6R t7R t8R t9R t:. 3R lt;R t<]&](! RRR.4      R 4       4       t=]&R 4       t>R t?R  t@R! tAR" tB](! R#R$.^dR3. ^
R3.4      R% 4       tCR& tDR' tE]P`                  PQ                  R(RR.4      R) 4       tFR* tGR+ tHR, tIR- tJR. tKR/ tLR0 tMR1 tNR2 tOR3 tPR4R4R5R5/R6 ltQR7 R8 ltRR9 tSR: tTRgR; ltUR< tVR= tWR> tXR? tYR@ tZRA t[RB t\RhRC lt]]%RD 4       t^]%RE 4       t_RF t` ! RG RH]4      ta ! RI RJ]4      tb](! RKR]c! 4       ]d! 4       .4      RL 4       teRM tfRN tgRO thRP tiRQ tjRR tkRS tlRT tmRU tnRiRV lto]P`                  PQ                  RWRX^RY^/RRRY^RZR[R\//.4      R] 4       tpR^ tq ! R_ R`4      tr ! Ra Rb4      ts]&](! RcRd]Pè                  ! Rd4      ]Pè                  ! Rd4      Pë                  4       .4      Re 4       4       tvR# )jz
Test the memory module.
N)ÚFileSystemStoreBackendÚStoreBackendBase)Úhash)Ú_FUNCTION_HASHESÚ_STORE_BACKENDSÚJobLibCollisionWarningÚMemorizedFuncÚMemorizedResultÚMemoryÚNotMemorizedFuncÚNotMemorizedResultÚ_build_func_identifierÚ_store_backend_factoryÚexpires_afterÚregister_store_backend)ÚParallelÚdelayed)ÚnpÚwith_multiprocessingÚ
with_numpy)ÚparametrizeÚraisesÚwarnsc                ó"   € V ^,          V,           # )z-A module-level function for testing purposes.© )ÚxÚys   &&Ú9/usr/lib/python3/dist-packages/joblib/test/test_memory.pyÚfr   /   s   € àˆa�4�!�8€Oó    c                óÚ   € \        V^ R7      pVP                  V 4      p \        ^4       F=  p\        ^4       F+  pV ! V4      V8X  g   Q h\        V4      V^,           8X  d   K+  Q h	  K?  	  R# )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.
©ÚlocationÚverboseN)r
   ÚcacheÚrangeÚlen)ÚfuncÚaccumulatorr"   ÚmemoryÚiÚ_s   &&&   r   Úcheck_identity_lazyr,   6   sa   € ô ˜X¨qÔ1€FØ�<‰<˜Ó€DÜ�1ŽXˆÜ�q–ˆAÙ˜“7˜a”<Ð�<Ü�{Ó# q¨1¥uÖ,Ð,Ð,ó ó r   c                 ó  € V P                   P                  4       w  p\        P                  P	                  VP                  R 4      p\        VR4      ;_uu_ 4       pVP                  R4       RRR4       R#   + '       g   i     R# ; i)ú
output.pklÚwÚgarbageN)Ú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‘g—l‘lÐ#4×#9Ñ#9¸<ÓH€OÜ	ˆo˜s×	#Ô	# qØ	�‰�	Ô÷ 
$×	#×	#Ò	#ús   ÁA7Á7B	c                 ó>   a€ . oV3R  lpVP                  V RV4       S# )c                 ó*   <€ SP                  V 4       R # ©N©Úappend)ÚitemÚrecordeds   &€r   Úappend_to_recordÚ6monkeypatch_cached_func_warn.<locals>.append_to_recordS   s   ø€ Ø�‰˜Ör   Úwarn)Úsetattr)r'   Úmonkeypatch_fixturerB   rA   s   && @r   Úmonkeypatch_cached_func_warnrG   L   s)   ø€ ð
 €Hõð ×Ñ  fÐ.>Ô?Ø€Or   c           	     ól  a€ \        4       oV3R lp\        VSV P                  4       R
 FÐ  pR F|  p\        V P                  ^
VVR7      p\        P
                  ! V P                  RR7       VP                  V4      pV! ^4       VP                  RR7       \        S4      pV! ^4      pK~  	  \        S4      X^,           8X  g   Q hXP                  V^4      X8X  g   Q h\        S4      V^,           8X  d   KÐ  Q h	  RVn
        \        V P                  ^ R	7      pVP                  V4      ! ^4       R# )z&Simple test of memory lazy evaluation.c                 ó*   <€ SP                  ^4       V # ©é   r>   ©Úargr(   s   &€r   r   Ú"test_memory_integration.<locals>.fc   ó   ø€ Ø×Ñ˜1ÔØˆ
r   FTN)r"   r#   Ú	mmap_modeÚcompress©Úignore_errors)rD   Ú__main__r!   )FT)ÚrN)Úlistr,   Ústrpathr
   ÚshutilÚrmtreer$   Úclearr&   ÚevalÚ
__module__)	Útmpdirr   rQ   rP   r)   ÚgÚcurrent_accumulatorÚoutr(   s	   &       @r   Útest_memory_integrationra   \   s  ø€ ä“&€Kõ
ô ˜˜;¨¯©Ô7ó "ˆÛ$ˆIÜØŸ™ØØ#Ø!ô	ˆFô �MŠM˜&Ÿ.™.¸Õ=Ø—‘˜Q“ˆAÙˆaŒDØ�G‰G˜ˆGÔÜ"% kÓ"2ÐÙ�A“$ŠCñ# %ô& �;ÓÐ#6¸Õ#:Ô:Ð:Ð:à�{‰{˜1˜aÓ  CÔ'Ð'Ð'Ü�;ÓÐ#6¸Õ#:Ö:Ð:Ð:ñ/ "ð6 €A„LÜ˜VŸ^™^°QÔ7€FØ
‡L�L�„O�AÖr   Úcall_before_reducingTFc           	      óö  a€ R EFð  pRpRP                  V4      p/ p\        \        \        P                  ! V4      VRR7      RV4       VR,          pRVn        V! ^4      ^8X  g   Q hVP                  P                  V8X  g   Q h\        V P                  ^ R7      pVP                  V4      o\        \        P                  ! V R	,          4      4      ^8X  g   Q h\        P                  ! V R	,          4      ^ ,          pR
V9   g   Q hV R	,          V,          p	V^ 8X  Eds   \        P                  ! V	4      R.8X  g   Q h\        P                  ! V	R,          4      . 8X  g   Q hV'       dS   S! ^4       \        \        P                  ! V	R,          4      4      ^8X  g   Q h\        ^R7      ! V3R lR 4       4       M¦\        ^R7      ! V3R lR 4       4       \        ^4       FF  p
\        \        P                  ! V	R,          4      4      ^8X  d    M\         P"                  ! R4       KH  	  \        \        P                  ! V	R,          4      4      ^8X  g   Q hS! ^4       \        \        P                  ! V	R,          4      4      ^8X  g   Q hEKŽ  \        \        P                  ! V	R,          4      4      ^8X  g   Q hS! ^4       \        \        P                  ! V	R,          4      4      ^8X  d   EKñ  Q h	  R# )é    z0
        def f(x):
            return x
        z<ipython-input-{}-000000000000>Úexec)ÚfilenameÚmodeNr   rT   r!   Újoblibzipython-input©Ún_jobsc              3   óF   <"  € T F  p\        S4      ! V4      x € K  	  R # 5ir=   ©r   ©Ú.0r*   Úcached_fs   & €r   Ú	<genexpr>ÚHtest_parallel_call_cached_function_defined_in_jupyter.<locals>.<genexpr>Ô   ó   øé € Ð"HÁ¸A¤7¨8Ô#4°Q×#7Ð#7Ãùó   ƒ!c              3   óF   <"  € T F  p\        S4      ! V4      x € K  	  R # 5ir=   rl   rm   s   & €r   rp   rq   Ú   rr   rs   çš™™™™™É?)rd   rK   )rK   é   )Úformatre   ÚcompileÚtextwrapÚdedentr\   Ú__code__Úco_filenamer
   rW   r$   r&   r3   Úlistdirr   r%   ÚtimeÚsleep)r]   rb   Ú
session_noÚipython_cell_sourceÚipython_cell_idÚ	my_localsr   r)   Úf_cache_relative_directoryÚf_cache_directoryr+   ro   s   &&         @r   Ú5test_parallel_call_cached_function_defined_in_jupyterr†   ‰   s{  ø€ ô$ ˆ
ðÐð
 <×BÑBÀ:ÓNˆàˆ	ÜÜÜ—’Ð 3Ó4Ø(Øôð Øô	
ð �c�NˆØ!ˆŒñ �‹t�qŒyÐˆyØ�z‰z×%Ñ%¨Ô8Ð8Ð8ä §¡¸Ô;ˆØ—<‘< “?ˆä”2—:’:˜f xÕ/Ó0Ó1°QÔ6Ð6Ð6Ü%'§Z¢Z°¸Õ0AÓ%BÀ1Õ%EÐ"ØÐ"<Ô<Ð<Ð<à" XÕ-Ð0JÕJÐà˜�?ä—:’:Ð/Ó0°S°EÔ9Ð9Ð9Ü—:’:Ð/°#Õ5Ó6¸"Ô<Ð<Ð<ç#Ù˜”ô œ2Ÿ:š:Ð&7¸#Õ&=Ó>Ó?À1ÔDÐDÐDô  Õ"Ô"HÁÓ"HÕHô  Õ"Ô"HÁÓ"HÔHô ˜rž�AÜœ2Ÿ:š:Ð&7¸#Õ&=Ó>Ó?À1ÔDÙÜ—J’J˜s–Oñ #ô œ2Ÿ:š:Ð&7¸#Õ&=Ó>Ó?À1ÔDÐDÐDá˜”ô
 ”r—z’zÐ"3°cÕ"9Ó:Ó;¸qÔ@Ð@Ó@ô ”r—z’zÐ"3°cÕ"9Ó:Ó;¸qÔ@Ð@Ð@á�QŒKô ”r—z’zÐ"3°cÕ"9Ó:Ó;¸q×@Ð@Ð@óm r   c                 óà   a€ \        4       oV3R lp \        R^ R7      pVP                  V 4      p\        ^4       F/  p\	        S4      pV! ^4       \	        S4      V^,           8X  d   K/  Q h	  R# )z*Test memory with location=None: no memoizec                 ó*   <€ SP                  ^4       V # rJ   r>   rL   s   &€r   ÚffÚtest_no_memory.<locals>.ffø   rO   r   Nr!   )rV   r
   r$   r%   r&   )r‰   r)   Úggr+   r_   r(   s        @r   Útest_no_memoryrŒ   ô   sd   ø€ ä“&€Kõô ˜T¨1Ô-€FØ	�‰�bÓ	€BÜ�1ŽXˆÜ! +Ó.ÐÙ
ˆ1ŒÜ�;ÓÐ#6¸Õ#:Ö:Ð:Ð:ó r   c                óÌ   a€ \        4       oRV3R llp\        VSV P                  4       \        V P                  ^ R7      pVP	                  V4      pV! ^^R7      ^8X  g   Q hR# )z3Test memory with a function with keyword arguments.Nc                 ó*   <€ SP                  ^4       V # rJ   r>   )Úarg1Úarg2r(   s   &&€r   r^   Útest_memory_kwarg.<locals>.g  s   ø€ Ø×Ñ˜1ÔØˆr   r!   )r�   r�   )NrK   )rV   r,   rW   r
   r$   )r]   r^   r)   r(   s   &  @r   Útest_memory_kwargr’     sS   ø€ ä“&€K÷ô ˜˜;¨¯©Ô7ä˜VŸ^™^°QÔ7€FØ�‰�Q‹€Aá�"˜1Ô Ô#Ð#Ò#r   c                ó`   aa€ \        4       oV3R lo\        V3R lSV P                  4       R# )z*Test memory with a function with a lambda.c                ó*   <€ SP                  ^4       V # ©z*A helper function to define l as a lambda.r>   )r   r(   s   &€r   ÚhelperÚ"test_memory_lambda.<locals>.helper  ó   ø€ à×Ñ˜1ÔØˆr   c                 ó   <€ S! V 4      # r=   r   )r   r–   s   &€r   Ú<lambda>Ú$test_memory_lambda.<locals>.<lambda>  s	   ø€ ¡&¨¤)r   N)rV   r,   rW   )r]   r(   r–   s   &@@r   Útest_memory_lambdarœ     s"   ù€ ä“&€Kõô
 Ô+¨[¸&¿.¹.ÖIr   c                ót  € \        V P                  ^ R7      pVP                  R 4       pTpVP                  R 4       pTp\        \        4      ;_uu_ 4       pV! ^4       V! ^4       RRR4       \        X4      ^8X  g   Q hR\        V^ ,          P                  4      9   g   Q hR#   + '       g   i     LG; i)z=Check that name collisions with functions will raise warningsr!   c                ó   € V # )z&A first function called name_collisionr   ©r   s   &r   Úname_collisionÚ2test_memory_name_collision.<locals>.name_collision$  ó	   € ð ˆr   c                ó   € V # )z'A second function called name_collisionr   rŸ   s   &r   r    r¡   +  r¢   r   NÚ	collision)r
   rW   r$   r   r   r&   ÚstrÚmessage)r]   r)   r    ÚaÚbÚwarninfos   &     r   Útest_memory_name_collisionrª      s§   € ä˜VŸ^™^°QÔ7€Fà‡\�\ñó ðð 	€Aà‡\�\ñó ðð 	€Aä	Ô%×	&Ô	&¨(Ù	ˆ!ŒÙ	ˆ!Œ÷ 
'ô ˆx‹=˜AÔÐÐØœ#˜h q�k×1Ñ1Ó2Ô2Ð2Ò2÷ 
'×	&ús   ÁB'Â'B7	c                 ób  € \        V P                  ^ R7      pVP                  R 4      pVP                  R 4      p\        \        4      ;_uu_ 4       pV! ^ 4      ^ 8X  g   Q hV! ^4      ^8X  g   Q hV! ^4      ^8X  g   Q h RRR4       \        X4      ^8X  g   Q hR#   + '       g   i     L$; i)rd   r!   c                 ó   € V # r=   r   rŸ   s   &r   rš   Ú7test_memory_warning_lambda_collisions.<locals>.<lambda>=  s   € ™qr   c                 ó   € V ^,           # rJ   r   rŸ   s   &r   rš   r­   >  s   € ˜q 1žur   N)r
   rW   r$   r   r   r&   )r]   r)   r§   r¨   r©   s   &    r   Ú%test_memory_warning_lambda_collisionsr¯   :  sŽ   € ä˜VŸ^™^°QÔ7€FØ�‰‘[Ó!€AØ�‰‘_Ó%€Aä	Ô%×	&Ô	&¨(Ù�‹t�qŒyÐˆyÙ�‹t�qŒyÐˆyÙ�‹t�qŒyÐ‰y÷ 
'ô ˆx‹=˜AÔÐÒ÷ 
'×	&ús   Á.BÂB.	c                 óÀ  € \        V P                  ^ R7      p\        R4      pVP                  V4      p\        R4      pVP                  V4      p\	        \
        4      ;_uu_ 4       pV! ^4       V! ^4       V! ^ 4       RRR4       \        X4      ^8X  g   Q hR\        V^ ,          P                  4      P                  4       9   g   Q hR#   + '       g   i     LU; i)rd   r!   úlambda x: xzlambda x: x+1Nzcannot detect)
r
   rW   r[   r$   r   r   r&   r¥   r¦   Úlower)r]   r)   Úa1Úb1r©   s   &    r   Ú'test_memory_warning_collision_detectionrµ   J  s¯   € ô ˜VŸ^™^°QÔ7€FÜ	ˆmÓ	€BØ	�‰�bÓ	€BÜ	ˆoÓ	€BØ	�‰�bÓ	€Bä	Ô%×	&Ô	&¨(Ù
ˆ1ŒÙ
ˆ1ŒÙ
ˆ1Œ÷ 
'ô
 ˆx‹=˜AÔÐÐØœc (¨1¥+×"5Ñ"5Ó6×<Ñ<Ó>Ô>Ð>Ò>÷ 
'×	&ús   Á'CÃC	c                ó„   a€ \        4       oV3R lp^ RIpVP                  ! V^4      p\        VSV P                  4       R# )z#Test memory with functools.partial.c                ó*   <€ SP                  ^4       V# r•   r>   ©r   r   r(   s   &&€r   r'   Ú!test_memory_partial.<locals>.func`  r˜   r   N)rV   Ú	functoolsÚpartialr,   rW   )r]   r'   rº   Úfunctionr(   s   &   @r   Útest_memory_partialr½   \  s6   ø€ ä“&€Kõó
 à× Ò   qÓ)€Hä˜ +¨v¯~©~Ö>r   c                óŠ   € \        V P                  ^ R7      p\        R4      pVP                  V4      pV! ^4      ^8X  g   Q hR# )zESmoke test memory with a function with a function defined in an eval.r!   r±   N)r
   rW   r[   r$   )r]   r)   ÚmÚmms   &   r   Útest_memory_evalrÁ   l  s9   € ä˜VŸ^™^°QÔ7€Fäˆ]Ó€AØ	�‰�a‹€Báˆa‹5�AŒ:ÐŠ:r   c                ó>   € \        V 4      pV P                  R4       V# )zkA function with a side effect in its arguments.

Return the length of its argument and append one element.
N)r&   r?   )r   Úlen_xs   & r   Úcount_and_appendrÄ   v  s   € ô
 �‹F€EØ‡H�HˆT„NØ€Lr   c                ó–   € \        V P                  ^ R7      pVP                  \        4      pV! 4       ^ 8X  g   Q hV! 4       ^8X  g   Q hR# )zkCheck that if a function has a side effect in its arguments, it
should use the hash of changing arguments.
r!   N)r
   rW   r$   rÄ   )r]   r)   r'   s   &  r   Útest_argument_changerÆ   €  sC   € ô ˜VŸ^™^°QÔ7€FØ�<‰<Ô(Ó)€Dñ ‹6�QŒ;Ðˆ;ñ ‹6�QŒ;ÐŠ;r   rP   rU   c                ó¦  a	€ \        4       o	RV	3R llp\        V P                  V^ R7      pVP                  V4      p\        P
                  P                  ^ 4      p\        ^4       Ff  pVP                  R4      p\        ^4       FC  p\        P                  ! V! V4      V8H  4      '       g   Q h\        S	4      V^,           8X  d   KC  Q h	  Kh  	  R# )z.Test memory with a function with numpy arrays.Nc                 ó*   <€ SP                  ^4       V # rJ   r>   rL   s   &€r   ÚnÚtest_memory_numpy.<locals>.n”  rO   r   ©r"   rP   r#   r=   )é
   rÌ   )rV   r
   rW   r$   r   ÚrandomÚRandomStater%   Úrandom_sampleÚallr&   )
r]   rP   rÉ   r)   Úcached_nÚrndr*   r§   r+   r(   s
   &&       @r   Útest_memory_numpyrÓ   Ž  s§   ø€ ô “&€K÷ô ˜VŸ^™^°yÈ!ÔL€FØ�|‰|˜A‹€Hä
�)‰)×
Ñ
 Ó
"€CÜ�1ŽXˆØ×Ñ˜hÓ'ˆÜ�q–ˆAÜ—6’6™( 1›+¨Ñ*×+Ò+Ð+Ð+Ü�{Ó# q¨1¥uÖ,Ð,Ð,ó ó r   c                óœ  € \        V P                  R^ R7      pVP                  4       R 4       p\        P                  ! ^4      pV! V4      pV! V4      p\        V\        P                  4      '       g   Q hVP                  R8X  g   Q h\        V\        P                  4      '       g   Q hVP                  R8X  g   Q h??\        P                  ! 4        \        V4       \        W14      pV! V4      p\        V4      ^8X  g   Q hRp	W—^ ,          9   g   Q h\        V\        P                  4      '       g   Q hVP                  R8X  g   Q hR# )z8Check that mmap_mode is respected even at the first callrU   rË   c                 ó   € V ^,          # ©rv   r   ©r§   s   &r   ÚtwiceÚ0test_memory_numpy_check_mmap_mode.<locals>.twice©  ó   € à�1�uˆr   úException while loading resultsN)r
   rW   r$   r   ÚonesÚ
isinstanceÚmemmaprg   ÚgcÚcollectr:   rG   r&   )
r]   Úmonkeypatchr)   rØ   r§   r¨   ÚcÚrecorded_warningsÚdÚexception_msgs
   &&        r   Ú!test_memory_numpy_check_mmap_moderæ   £  s  € ô ˜VŸ^™^°sÀAÔF€Fà‡\�\ƒ^ñó ðô 	�Š�‹
€Aáˆa‹€AÙˆa‹€Aä�aœŸ™×#Ò#Ð#Ð#Ø�6‰6�SŒ=Ðˆ=ä�aœŸ™×#Ò#Ð#Ð#Ø�6‰6�SŒ=Ðˆ=ð 	
Ø	Ü‡J‚J„LÜ˜fÔ%ô 5°UÓHÐÙˆa‹€AÜÐ Ó! QÔ&Ð&Ð&Ø5€MØ¨aÕ0Ô0Ð0Ð0ä�aœŸ™×#Ò#Ð#Ð#Ø�6‰6�SŒ=ÐŠ=r   c                ó$  a€ \        V P                  ^ R7      p ! R R\        4      oVP                  RV3R ll4       pV! 4        \	        ^4       F'  p\        S4      ;_uu_ 4        V! ^4       RRR4       K)  	  R#   + '       g   i     K>  ; i)z+Smoketest the exception handling of Memory.r!   c                   ó   € ] tR tRtRtR# )Ú*test_memory_exception.<locals>.MyExceptioniÏ  r   N©Ú__name__r\   Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   r   r   ÚMyExceptionré   Ï  ó   † Ûr   rï   c                 ó   <€ V '       d   ShR # r=   r   )Úexcrï   s   &€r   ÚhÚ test_memory_exception.<locals>.hÒ  s   ø€ çØÐñ r   N©rd   )r
   rW   Ú	Exceptionr$   r%   r   )r]   r)   ró   r+   rï   s   &   @r   Útest_memory_exceptionr÷   Ë  sp   ø€ ä˜VŸ^™^°QÔ7€Fô”iô ð ‡\�\öó ðñ
 „Cä�1ŽXˆä�K× Õ ÙˆaŒD÷ !Ñ ó ç × Ð ús   Á'	A>Á>Bc                óV  a€ \        V P                  ^ R7      p\        4       oVP                  R.R7      RV3R ll4       pVP                  R.8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hR# )z!Test the ignore feature of memoryr!   r   ©Úignorec                 ó*   <€ SP                  ^4       R# ©rK   Nr>   r¸   s   &&€r   ÚzÚtest_memory_ignore.<locals>.zå  s   ø€ à×Ñ˜1Ör   ©r   NrJ   ©r
   rW   rV   r$   rú   r&   )r]   r)   rý   r(   s   &  @r   Útest_memory_ignorer  à  s£   ø€ ä˜VŸ^™^°QÔ7€FÜ“&€Kà‡\�\˜#˜€\Óöó  ðð �8‰8˜�uÔÐÐá€aˆ1…IÜˆ{Ó˜qÔ Ð Ð Ù€aˆ1…IÜˆ{Ó˜qÔ Ð Ð Ù€aˆ1…IÜˆ{Ó˜qÔ Ð Ò r   c                óf  a€ \        V P                  ^ R7      p\        4       oR pVP                  R.R7      VRV3R ll4       4       pVP                  R.8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hV! ^ ^R7       \        S4      ^8X  g   Q hR# )	z9Test the ignore feature of memory on a decorated functionr!   c                 óF   a € \         P                  ! S 4      V 3R  l4       pV# )c                  ó   <€ S! V / VB # r=   r   )ÚargsÚkwargsr   s   *,€r   ÚwrappedÚ?test_memory_ignore_decorated.<locals>.decorate.<locals>.wrappedù  s   ø€ á�dÐ%˜fÑ%Ð%r   )rº   Úwraps)r   r  s   f r   ÚdecorateÚ.test_memory_ignore_decorated.<locals>.decorateø  s%   ø€ Ü	�Š˜Ó	ô	&ó 
ð	&ð ˆr   r   rù   c                 ó*   <€ SP                  ^4       R# rü   r>   r¸   s   &&€r   rý   Ú'test_memory_ignore_decorated.<locals>.zÿ  s   ø€ ð 	×Ñ˜1Ör   rÿ   NrJ   r   )r]   r)   r
  rý   r(   s   &   @r   Útest_memory_ignore_decoratedr  ó  s²   ø€ ä˜VŸ^™^°QÔ7€FÜ“&€Kòð ‡\�\˜#˜€\ÓØöó ó  ðð �8‰8˜�uÔÐÐá€aˆ1…IÜˆ{Ó˜qÔ Ð Ð Ù€aˆ1…IÜˆ{Ó˜qÔ Ð Ð Ù€aˆ1…IÜˆ{Ó˜qÔ Ð Ò r   c                ó¶   € \        V P                  ^ R7      pVP                  R 4       pV! ^4      ^8X  g   Q hV! ^R7      ^8X  g   Q hV! ^R7      ^8X  g   Q hR# )zWNon-regression test against 0.12.0 changes.

https://github.com/joblib/joblib/pull/751
r!   c                 ó   € V ^,           # rJ   r   r×   s   &r   Úplus_oneÚ,test_memory_args_as_kwargs.<locals>.plus_one  rÚ   r   r×   N)r
   rW   r$   )r]   r)   r  s   &  r   Útest_memory_args_as_kwargsr    sd   € ô
 ˜VŸ^™^°QÔ7€Fà‡\�\ñó ðñ �A‹;˜!ÔÐÐÙ�aŒ=˜AÔÐÐñ �aŒ=˜AÔÐÒr   zignore, verbose, mmap_moder   c                óØ   € \        V P                  ^ R7      pVP                  WVR7      R 4       pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  V8X  g   Q hR# )z7Check cache may be called with kwargs before decoratingr!   )rú   r#   rP   c                 ó   € R # r=   r   rŸ   s   &r   rý   Ú"test_partial_decoration.<locals>.z'  s   € ár   N)r
   rW   r$   rú   Ú_verboserP   )r]   rú   r#   rP   r)   rý   s   &&&&  r   Útest_partial_decorationr  "  sl   € ô ˜VŸ^™^°QÔ7€Fà‡\�\˜¸I€\ÓFñó Gðð �8‰8�vÔÐÐØ�:‰:˜Ô Ð Ð Ø�;‰;˜)Ô#Ð#Ò#r   c                 óè  € \        V P                  ^ R7      p\        P                  R4      pVP	                  R4       V P
                  ! R.VO5!  P                  pVP                  \        4      p\        \        4      p\        P                  P                  VP                  P                  V4      pWR8X  g   Q h\        P                  P                  V4      '       g   Q hVP                  \        P                  P                  VP                  P                  4      8X  g   Q h\        P                   ! 4        VP#                  4       '       d   Q h\        P                  P                  \        P                  P                  VR4      4      '       g   Q hVP#                  4       '       g   Q hVP%                  ^4      p\        P                  P                  VP                  P                  VP&                  V4      pV! ^4      p\        P                  P                  V4      '       g   Q h\        P(                  ! \        P                  P                  VR4      4       Wƒ! ^4      8X  g   Q hR# )rd   r!   Ú.r   rh   zfunc_code.pyr.   N)r
   rW   rë   Úsplitr?   r5   r$   r   r   r3   r4   r1   r"   ÚexistsÚdirnamer   rZ   Ú_check_previous_func_codeÚ_get_args_idÚfunc_idÚremove)	r]   r)   r4   r^   r   r"   Úargs_idÚ
output_dirr§   s	   &        r   Útest_func_dirr$  0  s©  € ä˜VŸ^™^°QÔ7€FÜ�>‰>˜#Ó€DØ‡K�K�ÔØ�;Š;�xÐ' $Ó'×/Ñ/€Dà�‰”Q‹€Aä$¤QÓ'€GÜ�w‰w�|‰|˜AŸO™O×4Ñ4°gÓ>€HØÔÐÐÜ�7‰7�>‰>˜$×ÒÐÐØ�?‰?œbŸg™gŸo™o¨a¯o©o×.FÑ.FÓGÔGÐGÐGô
 ×ÒÔØ×*Ñ*×,Ò,Ð,Ð,Ü�7‰7�>‰>œ"Ÿ'™'Ÿ,™, t¨^Ó<×=Ò=Ð=Ð=Ø×&Ñ&×(Ò(Ð(Ð(ð �n‰n˜QÓ€GÜ—‘—‘˜aŸo™o×6Ñ6¸¿	¹	À7ÓK€JÙ	ˆ!‹€AÜ�7‰7�>‰>˜*×%Ò%Ð%Ð%Ü‡I‚IŒb�g‰g�l‰l˜: |Ó4Ô5Ø��!“Œ9ÐŠ9r   c                 ó¼  € \        V P                  ^ R7      pVP                  \        4      pV! ^4      p\        P
                  ! \        P                  ! V4      4      pVP                  ^4      p\        P                  P                  VP                  P                  VP                  V4      p\        P                  P                  V4      '       g   Q hW4P                  P                  VP                  V.4      8X  g   Q h\        P
                  ! \        P                  ! V4      4      pVP                  P                  VP                  P                  8X  g   Q h\        R^ R7      p\        P
                  ! \        P                  ! V4      4       VP                  \        4      p\        P
                  ! \        P                  ! V4      4      pV! ^4       R# ©rd   r!   N)r
   rW   r$   r   ÚpickleÚloadsÚdumpsr  r3   r4   r5   r1   r"   r   r  Ú	load_item)	r]   r)   r^   Úoutputró   r"  r#  Úmemory2Úgps	   &        r   Útest_persistencer.  P  s7  € ä˜VŸ^™^°QÔ7€FØ�‰”Q‹€AÙˆq‹T€Fä�Š”V—\’\ !“_Ó%€Aà�n‰n˜QÓ€GÜ—‘—‘˜aŸo™o×6Ñ6¸¿	¹	À7ÓK€JÜ�7‰7�>‰>˜*×%Ò%Ð%Ð%Ø—_‘_×.Ñ.°·	±	¸7Ð/CÓDÔDÐDÐDÜ�lŠlœ6Ÿ<š<¨Ó/Ó0€GØ×Ñ×(Ñ(¨G×,AÑ,A×,JÑ,JÔJÐJÐJô ˜T¨1Ô-€FÜ
‡L‚L”—’˜fÓ%Ô&Ø�‰”Q‹€AÜ	�Š”f—l’l 1“oÓ	&€BÙ€q†Er   Úconsider_cache_validc                 ó  a€ \        \        V P                  V3R  lR7      \        V P                  ^ R7      P	                  \        V3R lR7      3 F‡  pVP                  ^4      p\        V\        4      '       g   Q hV'       d   Q hV! ^4      ^8X  g   Q hVP                  ^4      p\        V\        4      '       g   Q hVS8X  g   Q hVP                  4        K‰  	  \        \        4      pVP                  ^4      '       d   Q hR# )c                 ó   <€ S# r=   r   ©r+   r/  s   &€r   rš   Ú*test_check_call_in_cache.<locals>.<lambda>k  s   ø€ ÑCWr   ©Úcache_validation_callbackr!   c                 ó   <€ S# r=   r   r2  s   &€r   rš   r3  n  s   ø€ Ñ3Gr   N)
r   r   rW   r
   r$   Úcheck_call_in_cacherÝ   ÚboolrZ   r   )r]   r/  r'   Úresults   &f  r   Útest_check_call_in_cacher:  g  sé   ø€ ô 	Üˆv�~‰~Ô9Wô	
ô 	˜Ÿ™°Ô2×8Ñ8ÜÔ)Gð 	9ó 	
ó	ˆð ×)Ñ)¨!Ó,ˆÜ˜&¤$×'Ò'Ð'Ð'ßÐˆzÙ�A‹w˜!Œ|Ðˆ|Ø×)Ñ)¨!Ó,ˆÜ˜&¤$×'Ò'Ð'Ð'ØÐ-Ô-Ð-Ð-Ø�
‰
Žñô" œAÓ€DØ×'Ñ'¨×*Ò*Ð*Ð*Ñ*r   c           	      óŽ  € \        \        \        V P                  4      \	        \        4      \        V P                  ^ R7      P                  \        4      \        RR7      P                  \        4      3\        \        \        \        34       FŸ  w  rV! ^4      ^8X  g   Q hVP                  ^4      p\        W24      '       g   Q hVP                  4       ^8X  g   Q hVP                  4        \        \        4      ;_uu_ 4        VP                  4        RRR4       VP                  4        K¡  	  R#   + '       g   i     L&; i)rd   r!   N©r"   )Úzipr   r   rW   r   r
   r$   r	   r   Úcall_and_shelverÝ   ÚgetrZ   r   ÚKeyError)r]   r'   ÚResultr9  s   &   r   Útest_call_and_shelverB  ~  sç   € ô äœ!˜VŸ^™^Ó,ÜœQÓÜ˜FŸN™N°AÔ6×<Ñ<¼QÓ?Ü˜DÔ!×'Ñ'¬Ó*ð		
ô 
Ô,¬oÔ?QÐRö‰ˆñ �A‹w˜!Œ|Ðˆ|Ø×%Ñ% aÓ(ˆÜ˜&×)Ò)Ð)Ð)Ø�z‰z‹|˜qÔ Ð Ð à�‰ŒÜ”H×ÕØ�J‰JŒL÷ à�‰Žó#÷ ×ús   ÄD4Ä4Ec                óN  € V P                  R4      pVP                  R4       \        P                  ! VP                  4      P
                  p\        P                  ! R4       VP                  4       R8X  g   Q hV\        P                  ! VP                  4      P
                  8X  d   \        P                  ! R4       \        V P                  ^ R7      pVP                  \        4      pVP                  ^4      p\        P                  P                  VP                   P"                  VP$                  VR4      pV! ^4      ^8X  g   Q h\        P                  ! V4      P
                  p\        P                  ! ^4       VP'                  ^4      p\)        V\*        4      '       g   Q h\        P                  ! V4      P
                  V8X  g   Q h\        P                  ! ^4       VP-                  4       ^8X  g   Q h\        P                  ! V4      P
                  V8”  g   Q hR# )z6Check call_and_shelve only load stored data if needed.Útest_accessç      à?z>filesystem does not support fine-grained access time attributer!   r.   N)r5   r7   r3   ÚstatrW   Úst_atimer~   r   ÚreadÚpytestÚskipr
   r$   r   r  r4   r1   r"   r   r>  rÝ   r	   r?  )	r]   Útest_access_time_fileÚtest_access_timer)   r'   r"  Úresult_pathÚfirst_access_timer9  s	   &        r   Ú.test_call_and_shelve_lazily_load_stored_resultrO  •  s˜  € à"ŸK™K¨Ó6ÐØ×Ñ Ô.Ü—w’wÐ4×<Ñ<Ó=×FÑFÐô 	‡J‚Jˆs„OØ ×%Ñ%Ó'¨=Ô8Ð8Ð8àœ2Ÿ7š7Ð#8×#@Ñ#@ÓA×JÑJÔJô 	�ŠÐTÔUä˜VŸ^™^°QÔ7€FØ�<‰<œ‹?€DØ×Ñ Ó"€GÜ—'‘'—,‘,Ø×Ñ×%Ñ% t§|¡|°W¸ló€Kñ �‹7�aŒ<Ðˆ<ÜŸš Ó,×5Ñ5ÐÜ‡J‚Jˆq„Mð ×!Ñ! !Ó$€FÜ�fœo×.Ò.Ð.Ð.Ü�7Š7�;Ó×(Ñ(Ð,=Ô=Ð=Ð=Ü‡J‚Jˆq„Mð �:‰:‹<˜1ÔÐÐÜ�7Š7�;Ó×(Ñ(Ð+<Ô<Ð<Ò<r   c                 óL  € \        \        V P                  4      \        \        4      3 FÐ  pV P	                  R 4      P                  pVP                  ^4      p\        VR4      ;_uu_ 4       p\        P                  ! W44       RRR4       \        VR4      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  4       VP                  4       8X  g   Q h\        P                  ! V4       KÒ  	  R#   + '       g   i     L„; i  + '       g   i     Ld; i)zpickling_test.datÚwbNÚrb)r   r   rW   r   r5   r>  r6   r'  ÚdumpÚloadr?  r3   r!  )r]   r'   rf   r9  ÚfpÚresult2s   &     r   Útest_memorized_picklingrW  ¹  s¿   € Üœq &§.¡.Ó1Ô3CÄAÓ3FÓGˆØ—;‘;Ð2Ó3×;Ñ;ˆØ×%Ñ% aÓ(ˆÜ�(˜D×!Ô! RÜ�KŠK˜Ô#÷ "ä�(˜D×!Ô! RÜ—k’k "“oˆG÷ "à�{‰{‹} §
¡
£Ô,Ð,Ð,Ü
�	Š	�(Öó H÷ "×!úç!×!ús   Á-D Â DÄ DÄD#c                 óÒ  € \        \        V P                  4      pVP                  ^4      p\        \        V P                  4      pVP                  ^4      pVP	                  4       VP	                  4       8X  g   Q h\        V4      \        V4      8X  g   Q h\        \        4      p\        V4       \        VP                  ^4      4       \        \        V P                  ^\        P                  ! 4       R7      pVP                  ^4      pVP	                  4        \        \        V P                  ^R7      pVP                  ^4      pVP	                  4        \        \        V P                  ^\        P                  ! 4       R7      pVP                  ^4      pVP	                  4        \        \        V P                  ^R7      pVP                  ^4      pVP	                  4        R# )rv   )r#   Ú	timestamp)r#   N)r   r   rW   r>  r?  Úreprr   r~   )r]   r'   r9  Úfunc2rV  s   &    r   Útest_memorized_reprr\  Å  sV  € Üœ˜FŸN™NÓ+€DØ×!Ñ! !Ó$€Fäœ!˜VŸ^™^Ó,€EØ×#Ñ# AÓ&€GØ�:‰:‹<˜7Ÿ;™;›=Ô(Ð(Ð(Ü�‹:œ˜e›Ô$Ð$Ð$ô œAÓ€DÜˆ„JÜˆ×	Ñ	˜aÓ	 Ô!ô œ˜FŸN™N°BÄ$Ç)Â)Ã+ÔN€DØ×!Ñ! "Ó%€FØ
‡J�J„Läœ˜FŸN™N°BÔ7€DØ×!Ñ! "Ó%€FØ
‡J�J„Läœ˜FŸN™N°AÄÇÂÃÔM€DØ×!Ñ! "Ó%€FØ
‡J�J„Läœ˜FŸN™N°AÔ6€DØ×!Ñ! "Ó%€FØ
‡J�J†Lr   c                 ó‚  € VP                  R 4      P                  p\        P                  P	                  VR4      pRp\        VR4      ;_uu_ 4       pVP                  V4       RRR4       VP                  V4       ^ RIp\        VP                  ^ R7      pVP                  VP                  4      p	V	! ^4       V	! ^4       V	! ^4       \        VR4      ;_uu_ 4       pVP                  RV,           4       RRR4       V	! ^4       V	! ^4       \        P                  ! V4       \        P                   ! V4       Rp\        VR4      ;_uu_ 4       pVP                  V4       RRR4       V	! ^4       V	! ^4       \        P                  P                  R4       \        P                   P#                  R	4       ^ RIpVP                  VP                  4      p	V	! ^4       V	! ^4       V P%                  4       w  r«V
R
8X  g   Q hR#   + '       g   i     EL«; i  + '       g   i     EL+; i  + '       g   i     LÒ; i)Ú
tmp_importztmp_joblib_.pyz$def f(x):
    print(x)
    return x
r/   Nr!   z

z-def f(x):
    print("x=%s" % x)
    return x
z
Reloading
Útmp_joblib_z1
2
Reloading
x=1
)ÚmkdirrW   r3   r4   r5   r6   r7   Úsyspath_prependr_  r
   r$   r   rX   rY   ÚsysÚstdoutÚmodulesÚpopÚ
readouterr)Úcapsysr]   rá   Údir_namerf   ÚcontentÚmodule_fileÚtmpr)   r   r`   Úerrs   &&&         r   Útest_memory_file_modificationrm  å  s²  € ð �|‰|˜LÓ)×1Ñ1€HÜ�w‰w�|‰|˜HÐ&6Ó7€HØ7€GÜ	ˆh˜×	Ô	 Ø×Ñ˜'Ô"÷ 
ð ×Ñ Ô)Ûä˜VŸ^™^°QÔ7€FØ�‰�S—U‘UÓ€Aá€a„DÙ€a„DÙ€a„Dô 
ˆh˜×	Ô	 Ø×Ñ˜& 7Õ*Ô+÷ 
ñ €a„DÙ€a„Dô ‡M‚M�(ÔÜ‡H‚HˆXÔà@€GÜ	ˆh˜×	Ô	 Ø×Ñ˜'Ô"÷ 
ñ €a„DÙ€a„Dô ‡J�J×Ñ�]Ô#Ü‡K�K‡O�O�MÔ"Ûà�‰�S—U‘UÓ€Añ €a„DÙ€a„Dà× Ñ Ó"�H€CØÐ*Ô*Ð*Ò*÷a 
×	Ð	ú÷ 
×	Ð	ú÷ 
×	ús$   ÁHÃHÅH.ÈH	ÈH+	È.H>	c                 ó   € R # r=   r   ©r§   r¨   s   &&r   Ú_function_to_cacherp    s   € ár   c                 ó   € W,           # r=   r   ro  s   &&r   Ú_sumrr  #  ó	   € Ø�5€Lr   c                 ó   € W,          # r=   r   ro  s   &&r   Ú_productru  '  rs  r   c                 ó¬  € \         P                  \        n        \        V P                  ^ R7      pVP                  \        4      pV! ^^4      ^8X  g   Q hV! ^^4      ^8X  g   Q h\        \        4      ;_uu_ 4        \        P                  \        n        V! ^^4      ^8X  g   Q hV! ^^4      ^8X  g   Q h RRR4       R#   + '       g   i     R# ; ir&  )	rr  r{   rp  r
   rW   r$   r   r   ru  )r]   r)   r   s   &  r   Ú*test_memory_in_memory_function_code_changerw  +  s    € Ü"&§-¡-ÔÔä˜VŸ^™^°QÔ7€FØ�‰Ô'Ó(€AáˆQ�‹7�aŒ<Ðˆ<ÙˆQ�‹7�aŒ<Ðˆ<ä	Ô%×	&Õ	&ä&.×&7Ñ&7ÔÔ#Ù��A‹w˜!Œ|Ðˆ|Ù��A‹w˜!Œ|Ð‰|÷	 
'×	&×	&Ò	&ús   Á=:CÃC	c                  ó>   € \        R R7      p V P                  4        R # )Nr<  )r
   rZ   )r)   s    r   Ú$test_clear_memory_with_none_locationry  ;  s   € Ü˜TÔ"€FØ
‡L�L†Nr   Úkw1Úkw2c                ó
   € WW#3# r=   r   )r§   r¨   rz  r{  s   &&$$r   Úfunc_with_kwonly_argsr}  @  s   € Ø�ˆ>Ðr   c                ó<   € V ^8„  d   QhR\         R\        R\        /# )rv   r§   r¨   Úreturn)ÚintÚfloat)rw   s   "r   Ú__annotate__r‚  D  s!   € ÷ ñ œ3ð ¤5ð ¬Uñ r   c                 ó   € W,           # r=   r   ro  s   &&r   Úfunc_with_signaturer„  D  rs  r   c           	      óV  € \        V P                  ^ R7      pVP                  \        4      pV! ^^^R7      R
8X  g   Q h\	        \
        4      ;_uu_ 4       pV! ^^^^R7       RRR4       XP                  R4       V! ^^^^R7       \	        \
        4      ;_uu_ 4       pV! ^^^^R7       RRR4       VP                  R4       VP                  \        R.R7      pV! ^^^^R7      R8X  g   Q hV! ^^^R	R7      R8X  g   Q hR#   + '       g   i     Lª; i  + '       g   i     Lt; i)rd   r!   )rz  r{  )r{  Nz?Keyword-only parameter 'kw1' was passed as positional parameter)rz  r{  rù   Úignored)rK   rv   é   r{  )rK   rv   r‡  é   )r
   rW   r$   r}  r   Ú
ValueErrorÚmatch)r]   r)   Úfunc_cachedÚexcinfos   &   r   Ú!test_memory_func_with_kwonly_argsr�  H  s   € Ü˜VŸ^™^°QÔ7€FØ—,‘,Ô4Ó5€Ká�q˜! Ô#Ð'7Ô7Ð7Ð7ô 
”
×	Ô	˜wÙ�A�q˜! Õ#÷ 
à‡M�MÐSÔTñ ��1˜! Õ#ä	”
×	Ô	˜wÙ�A�q˜! Õ#÷ 
à‡M�MÐSÔTð —,‘,Ô4¸e¸W�,ÓE€KÙ�q˜! ¨Ô*¨lÔ:Ð:Ð:Ù�q˜! ¨	Ô2°lÔBÐBÒB÷ 
×	ú÷ 
×	ús   ÁDÂDÄD	ÄD(	c                 ó~   € \        V P                  ^ R7      pVP                  \        4      pV! ^R4      R8X  g   Q hR# )rd   r!   g       @g      @N)r
   rW   r$   r„  )r]   r)   r‹  s   &  r   Útest_memory_func_with_signaturer�  b  s6   € Ü˜VŸ^™^°QÔ7€FØ—,‘,Ô2Ó3€Ká�q˜#Ó #Ô%Ð%Ò%r   c                 óœ  € \        V P                  ^ R7      pVP                  4       R 4       p\        \	        V4      4      pV F  pV! V4       K  	  \        V4      pV Uu. uF  qSP                  V4      NK  	  ppV Uu. uF7  p\        P                  P                  VP                  P                  Wh4      NK9  	  p	pW)V3# u upi u upi )rd   r!   c                 ó   € R# )r§   Áè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   ©rM   s   &r   Úget_1000_bytesÚ(_setup_toy_cache.<locals>.get_1000_bytesl  s   € àÐr   )r
   rW   r$   rV   r%   r   r  r3   r4   r5   r1   r"   )
r]   Ú
num_inputsr)   r”  ÚinputsrM   r   Úhash_dirnamesr  Úfull_hashdirss
   &&        r   Ú_setup_toy_cacherš  i  sË   € Ü˜VŸ^™^°QÔ7€Fà‡\�\ƒ^ñó ðô ”%˜
Ó#Ó$€FÛˆÙ�sÖñ ô % ^Ó4€GÙAGÓHÁ¸#×0Ñ0°Ö5Á€MÐHñ %óá$ˆGô 	�‰�‰�^×1Ñ1×:Ñ:¸GÖMÙ$ð ð ð  .Ð0Ð0ùò Iùòs   Á"CÂ=C	c                 óª  € \        V 4      w  rpVP                  P                  4       pV Uu. uF  qUP                  NK  	  pp\	        V4      \	        V4      8X  g   Q hR  pV Uu. uF
  q‡! V4      NK  	  p	pV Uu. uF  qUP
                  NK  	  p
pW©8X  g   Q hV Uu. uF#  p\        P                  P                  VR4      NK%  	  ppV Uu. uF?  p\        P                  P                  \        P                  P                  V4      4      NKA  	  ppV Uu. uF  qUP                  NK  	  ppWí8X  g   Q hR# u upi u upi u upi u upi u upi u upi )c                 ó´   € \         P                  ! V 4       Uu. uF"  p\         P                  P                  W4      NK$  	  pp\	        R  V 4       4      # u upi )c              3   ó`   "  € T F$  p\         P                  P                  V4      x € K&  	  R # 5ir=   )r3   r4   Úgetsize)rn   rU  s   & r   rp   Ú:test__get_items.<locals>.get_files_size.<locals>.<genexpr>†  s    é € Ð<±¨2”2—7‘7—?‘? 2×&Ð&³ùs   ‚,.)r3   r}   r4   r5   Úsum)Ú	directoryÚfnÚ
full_pathss   &  r   Úget_files_sizeÚ'test__get_items.<locals>.get_files_size„  sE   € Ü<>¿JºJÀyÔ<QÓRÑ<Q°b”b—g‘g—l‘l 9Ö1Ñ<Qˆ
ÐRÜÑ<±Ó<Ó<Ð<ùò Ss   ™(Ar.   N)rš  r1   r2   r4   ÚsetÚsizer3   r5   ÚdatetimeÚfromtimestampÚgetatimeÚlast_access)r]   r)   Úexpected_hash_dirsr+   ÚitemsÚciÚ	hash_dirsr¤  Úhash_dirÚexpected_hash_cache_sizesÚhash_cache_sizesÚoutput_filenamesr¢  Úexpected_last_accessesÚlast_accessess   &              r   Útest__get_itemsr¶  ~  s@  € Ü$4°VÓ$<Ñ!€F Ø× Ñ ×*Ñ*Ó,€EÙ#(Ó)¡5˜R—”¡5€IÐ)Üˆy‹>œSÐ!3Ó4Ô4Ð4Ð4ò=ñ KTÓ TÉ)¸h °Ö!9É)ÐÐ TÙ*/Ó0©% BŸœ©%ÐÐ0ØÔ8Ð8Ð8áMVÓWÉYÀœŸ™Ÿ™ X¨|Ö<ÉYÐÐWñ IYóÙHXÀ"Œ×Ñ×'Ñ'¬¯©×(8Ñ(8¸Ó(<Ö=ÑHXð ð ñ /4Ó4©e¨—^”^©e€MÐ4ØÔ2Ð2Ò2ùò# *ùò !UùÚ0ùò Xùòùò 5s$   ­D7Á%D<Á;EÂ)EÃAEÄEc                 óŠ  € \        V ^ R7      w  p pVP                  P                  R4      pV. 8X  g   Q h\        V 4      w  rpVP                  P                  4       pVP                  P                  R4      p\	        V4      p\
        P                  \        V4      \        V4      4      '       g   Q h\	        V4      V^,
          8X  g   Q hVP                  P                  R4      p\        V4      \        V4      8X  g   Q hVP                  P                  R4      pV. 8X  g   Q hRp	VP                  P                  V	4      p
\        V
4      '       g   Q \        V4      4       hVP                  P                  R4      p\        V4      P                  V4      p\        R V 4       4      \        R	 V 4       4      8:  g   Q hR
# )rd   )r–  Ú1KÚ2Ki   Ú1Méô  ip  c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir=   ©r«  ©rn   r®  s   & r   rp   Ú,test__get_items_to_delete.<locals>.<genexpr>¸  s   é € Ð>Ñ(= "�~Ž~Ó(=ùó   ‚c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir=   r½  r¾  s   & r   rp   r¿  ¸  s   é € ð FÙ!0˜2�Ž£ùrÀ  N)rš  r1   Ú_get_items_to_deleter2   r&   r¦  ÚissubsetÚsortedÚ
differenceÚmaxÚmin)r]   r)   r+   Úitems_to_deleteÚexpected_hash_cachedirsr­  Ú	nb_hashesÚitems_to_delete_2048bÚitems_to_delete_emptyÚbytes_limit_too_smallÚitems_to_delete_500bÚitems_to_delete_6000bÚsurviving_itemss   &            r   Útest__get_items_to_deleterÑ  •  s°  € ä# F°qÔ9�L€FˆAˆqØ×*Ñ*×?Ñ?ÀÓE€OØ˜bÔ Ð Ð ä)9¸&Ó)AÑ&€F QØ× Ñ ×*Ñ*Ó,€Eð ×*Ñ*×?Ñ?ÀÓE€OÜÐ+Ó,€IÜ�<‰<œ˜OÓ,¬c°%«j×9Ò9Ð9Ð9ÜˆÓ 9¨q¥=Ô0Ð0Ð0ð #×0Ñ0×EÑEÀdÓKÐÜ�/Ó"¤fÐ-BÓ&CÔCÐCÐCð #×0Ñ0×EÑEÀdÓKÐØ  BÔ&Ð&Ð&ð  ÐØ!×/Ñ/×DÑDØóÐô Ð#×$Ò$Ð0¤c¨%£jÓ0Ð$ð #×0Ñ0×EÑEÀdÓKÐÜ˜%“j×+Ñ+Ð,AÓB€OäÑ>Ñ(=Ó>Ó>Ä#ñ FÙ!0óFó Cô ð ò r   c                 óº  € \        V 4      w  p pVP                  P                  4       pVP                  4        VP                  P                  4       p\	        V4      \	        V4      8X  g   Q hVP                  R R7       VP                  P                  4       p\	        V4      \	        V4      8X  g   Q hVP                  RR7       VP                  P                  4       p\
        P                  \        V4      \        V4      4      '       g   Q h\        V4      ^8X  g   Q hRpVP                  VR7       VP                  P                  4       pV. 8X  g   Q hR# )rº  )Úbytes_limitÚ3Kr»  N©rš  r1   r2   Úreduce_sizerÄ  r¦  rÃ  r&   )r]   r)   r+   Úref_cache_itemsÚcache_itemsrÍ  s   &     r   Ú#test_memory_reduce_size_bytes_limitrÙ  ½  s6  € Ü# FÓ+�L€FˆAˆqØ×*Ñ*×4Ñ4Ó6€Oð ×ÑÔØ×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð ×Ñ 4ÐÔ(Ø×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð ×Ñ 4ÐÔ(Ø×&Ñ&×0Ñ0Ó2€KÜ�<‰<œ˜KÓ(¬#¨oÓ*>×?Ò?Ð?Ð?Üˆ{Ó˜qÔ Ð Ð ð  ÐØ
×ÑÐ#8ÐÔ9Ø×&Ñ&×0Ñ0Ó2€KØ˜"ÔÐÒr   c                 ó¶  € \        V 4      w  p pVP                  P                  4       pVP                  4        VP                  P                  4       p\	        V4      \	        V4      8X  g   Q hVP                  ^
R7       VP                  P                  4       p\	        V4      \	        V4      8X  g   Q hVP                  ^R7       VP                  P                  4       p\
        P                  \        V4      \        V4      4      '       g   Q h\        V4      ^8X  g   Q hVP                  ^ R7       VP                  P                  4       pV. 8X  g   Q hR# )rÌ   )Úitems_limitNrÕ  )r]   r)   r+   r×  rØ  s   &    r   Ú#test_memory_reduce_size_items_limitrÜ  Ù  s/  € Ü# FÓ+�L€FˆAˆqØ×*Ñ*×4Ñ4Ó6€Oð ×ÑÔØ×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð ×Ñ 2ÐÔ&Ø×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð ×Ñ 1ÐÔ%Ø×&Ñ&×0Ñ0Ó2€KÜ�<‰<œ˜KÓ(¬#¨oÓ*>×?Ò?Ð?Ð?Üˆ{Ó˜qÔ Ð Ð ð ×Ñ 1ÐÔ%Ø×&Ñ&×0Ñ0Ó2€KØ˜"ÔÐÒr   c                 óX  € ^ RI p^ RIp\        V 4      w  r4pVP                  P	                  4       pVP                  4        VP                  P	                  4       p\        V4      \        V4      8X  g   Q hVP                  VP                  ! ^R7      R7       VP                  P	                  4       p\        V4      \        V4      8X  g   Q hVP                  ! ^4       V! R4       V! R	4       VP                  VP                  ! ^R7      R7       VP                  P	                  4       p\        P                  \        V4      \        V4      4      '       d   Q h\        V4      ^8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  VP                  ! RR7      R7       RRR4       VP                  ! R4       VP                  VP                  ! ^ R7      R7       VP                  P	                  4       pV. 8X  g   Q hR#   + '       g   i     Lj; i)
rd   N)Údays)Ú	age_limit©Úsecondszhas to be a positive©rŠ  gü©ñÒMbP?éÿÿÿÿéþÿÿÿ)r¨  r~   rš  r1   r2   rÖ  rÄ  Ú	timedeltar   r¦  rÃ  r&   rI  r   r‰  )r]   r¨  r~   r)   r+   Ú	put_cacher×  rØ  s   &       r   Ú!test_memory_reduce_size_age_limitrç  ô  sº  € ÛÛä+¨FÓ3Ñ€FˆyØ×*Ñ*×4Ñ4Ó6€Oð ×ÑÔØ×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð ×Ñ ×!3Ò!3¸Ô!;ÐÔ<Ø×&Ñ&×0Ñ0Ó2€KÜ�/Ó"¤f¨[Ó&9Ô9Ð9Ð9ð 	‡J‚Jˆq„MÙˆb„MÙˆb„MØ
×Ñ ×!3Ò!3¸AÔ!>ÐÔ?Ø×&Ñ&×0Ñ0Ó2€KÜ�|‰|œC Ó,¬c°/Ó.B×CÒCÐCÐCÜˆ{Ó˜qÔ Ð Ð ô 
�Š”zÐ)?×	@Ö	@Ø×Ñ X×%7Ò%7ÀÔ%CÐÔD÷ 
Að 	‡J‚JˆuÔØ
×Ñ ×!3Ò!3¸AÔ!>ÐÔ?Ø×&Ñ&×0Ñ0Ó2€KØ˜"ÔÐÒ÷ 
A×	@ús   Æ$HÈH)	c                 óØ   € \        V 4      w  rpVP                  4        \        P                  ! VP                  P
                  4      . 8X  g   Q hVP                  ^R7      '       d   Q hR# )rˆ  )Ú
stacklevelN)rš  rZ   r3   r}   r1   r"   r  )r]   r)   r+   r^   s   &   r   Útest_memory_clearrê    s[   € Ü# FÓ+�L€FˆqØ
‡L�L„Nä�:Š:�f×*Ñ*×3Ñ3Ó4¸Ô:Ð:Ð:ð ×*Ñ*°aÐ*×8Ò8Ð8Ð8Ñ8r   c                  ó   € R.R,          p V # )r§   iè  r’  r   )Úcomplex_objs    r   Úfast_func_with_complex_outputrí  #  s   € Ø�, Õ%€KØÐr   c                 ó~   € \        \        R 4      4       Uu/ uF  p\        V4      VbK  	  ppV '       d   V# R# u upi )g     jø@zsimple output)r%   r€  r¥   )Úcomplex_outputr*   rì  s   &  r   Ú)fast_func_with_conditional_complex_outputrð  (  s8   € Ü&+¬C°«H¤oÓ6¡o ”3�q“6˜1’9¡o€KÐ6ß(ˆ;Ð=¨oÐ=ùò 7s   —:c                 óð   a€ \        V P                  R 7      pVP                  \        4      o\	        ^R7      ! V3R l\        ^4       4       4       VP                  4       w  r4RpWS9  g   Q hWT9  g   Q hR# )r<  ri   c              3   óD   <"  € T F  p\        S4      ! 4       x € K  	  R # 5ir=   rl   ©rn   r*   r‹  s   & €r   rp   ÚMtest_cached_function_race_condition_when_persisting_output.<locals>.<genexpr>5  s   øé € Ð@±x°!”w˜{Ô+×-Ð-³xùs   ƒ rÛ   N)r
   rW   r$   rí  r   r%   rf  ©r]   Úcapfdr)   rc  Ústderrrå   r‹  s   &&    @r   Ú:test_cached_function_race_condition_when_persisting_outputrø  -  sh   ø€ ô
 ˜VŸ^™^Ô,€FØ—,‘,Ô<Ó=€Kä�AÕÔ@´u¸Q´xÓ@Ô@à×%Ñ%Ó'�N€Fð
 6€MØÔ&Ð&Ð&ØÔ&Ð&Ò&r   c                 óð   a€ \        V P                  R 7      pVP                  \        4      o\	        ^R7      ! V3R l\        ^4       4       4       VP                  4       w  r4RpWS9  g   Q hWT9  g   Q hR# )r<  ri   c              3   óf   <"  € T F&  p\        S4      ! V^,          ^ 8X  d   RMR4      x € K(  	  R# 5i)rv   TFNrl   ró  s   & €r   rp   ÚOtest_cached_function_race_condition_when_persisting_output_2.<locals>.<genexpr>K  s-   øé € ð ÙEMÀŒ�Ô Q¨¥U¨a¤Z™T°U×;Ð;ÃXùs   ƒ.1rÛ   N)r
   rW   r$   rð  r   r%   rf  rõ  s   &&    @r   Ú<test_cached_function_race_condition_when_persisting_output_2rü  A  sq   ø€ ô ˜VŸ^™^Ô,€FØ—,‘,ÔHÓI€Kä�AÕô ÜEJÈ1ÄXóô ð ×%Ñ%Ó'�N€Fð
 6€MØÔ&Ð&Ð&ØÔ&Ð&Ò&r   c                 ó  € \        V P                  R 7      pR pVP                  V4      pRpV! V4      w  rgWe8X  g   Q h\        V4       \	        WA4      pV! V4      w  rš\        V4      ^8X  g   Q hRpW¸^ ,          9   g   Q hW–8X  g   Q hW§8”  g   Q h\        V4       VP                  V4      p VP                  4        \        R4      h  \         d*   pRpT\        TP                  4      9   g   Q h Rp?R# Rp?ii ; i)r<  c                 ó\   € \         P                  ! R 4       V \         P                   ! 4       3# )g{®Gáz„?©r~   r   r“  s   &r   r'   ÚItest_memory_recomputes_after_an_error_while_loading_results.<locals>.func\  s!   € ô 	�
Š
�4ÔØ”D—I’I“KÐÐr   rM   rÛ   z<It normally not possible to load a corrupted MemorizedResultzis corruptedN)r
   rW   r$   r:   rG   r&   r>  r?  ÚAssertionErrorr@  r¥   r  )r]   rá   r)   r'   Úcached_funcÚ	input_argrM   rY  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ÐÙ+6°sÓ+;Ñ(€NÜÐ Ó! QÔ&Ð&Ð&Ø5€MØ¨aÕ0Ô0Ð0Ð0ØÔ Ð Ð ØÔ+Ð+Ð+ô ˜fÔ%Ø×+Ñ+¨CÓ0€Ið&Ø�‰ŒÜØJó
ð 	
øô ô &Ø ˆØœ#˜aŸf™f›+Ô%Ð%Ö%ûð&ús   Â/C
 Ã
C>ÃC9Ã9C>c                   ó   € ] tR tRtRtRtR# )ÚIncompleteStoreBackendi†  zAThis backend cannot be instantiated and should raise a TypeError.r   N)rë   r\   rì   rí   Ú__doc__rî   r   r   r   r
  r
  †  s   † ÙKãr   r
  c                   óT   a € ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tRtV tR# )ÚDummyStoreBackendiŒ  z(A dummy store backend that does nothing.c                ó   € R# )zOpen an item on store.Nr   )Úselfr  r  s   &*,r   Ú
_open_itemÚDummyStoreBackend._open_item�  ó   € ár   c                ó   € R# )z!Check if an item location exists.Nr   ©r  r"   s   &&r   Ú_item_existsÚDummyStoreBackend._item_exists“  r  r   c                ó   € R# )z&Move an item from src to dst in store.Nr   )r  ÚsrcÚdsts   &&&r   Ú
_move_itemÚDummyStoreBackend._move_item—  r  r   c                ó   € R# )zCreate location on store.Nr   r  s   &&r   Úcreate_locationÚ!DummyStoreBackend.create_location›  r  r   c                ó   € R# )z&Check if an object exists in the storeFr   ©r  Úobjs   &&r   r  ÚDummyStoreBackend.existsŸ  s   € ár   c                ó   € R# )zClear object on storeNr   r   s   &&r   Úclear_locationÚ DummyStoreBackend.clear_location£  r  r   c                ó   € . # )z3Returns the whole list of items available in cache.r   )r  s   &r   r2   ÚDummyStoreBackend.get_items§  s   € àˆ	r   c                ó   € R# )zConfigure the storeNr   )r  r"   r  r  s   &&*,r   Ú	configureÚDummyStoreBackend.configure«  r  r   r   N)rë   r\   rì   rí   r  r  r  r  r  r  r$  r2   r)  rî   Ú__classdictcell__©Ú__classdict__s   @r   r  r  Œ  s5   ø‡ € Ù2òòòòòòò÷ð r   r  Úinvalid_prefixc                 ó¦   € \        \        4      ;_uu_ 4       p\        V R 4       R R R 4       XP                  R4       R #   + '       g   i     L#; i)Nz&Store backend name should be a string*©r   r‰  r   rŠ  )r.  rŒ  s   & r   Ú(test_register_invalid_store_backends_keyr1  °  s6   € ô 
”
×	Ô	˜wÜ˜~¨tÔ4÷ 
à‡M�MÐ;Ö<÷ 
×	úó   ˜A Á A	c                  ó¦   € \        \        4      ;_uu_ 4       p \        R R4       RRR4       X P                  R4       R#   + '       g   i     L#; i)ÚfsNz.Store backend should inherit StoreBackendBase*r0  ©rŒ  s    r   Ú+test_register_invalid_store_backends_objectr6  ¸  s6   € ô 
”
×	Ô	˜wÜ˜t TÔ*÷ 
à‡M�MÐCÖD÷ 
×	úr2  c                  ó¨   € \        \        4      ;_uu_ 4       p \        R RR7       RRR4       X P                  R4       R#   + '       g   i     L#; i)z/tmp/joblibÚunknown)r"   ÚbackendNzUnknown location*)r   Ú	TypeErrorr
   rŠ  r5  s    r   Ú!test_memory_default_store_backendr;  À  s4   € ä	”	×	Ô	˜gÜ˜¨yÕ9÷ 
à‡M�MÐ&Ö'÷ 
×	ús   ˜AÁA	c                  óò   €  ! R  R4      p V ! 4       p\        \        4      ;_uu_ 4       p\        RVR7       RRR4       RpV\        X^ ,          P                  4      9   g   Q hR#   + '       g   i     L7; i)c                   ó   € ] tR tRtRtR# )ÚHtest_warning_on_unknown_location_type.<locals>.NonSupportedLocationClassiÈ  r   Nrê   r   r   r   ÚNonSupportedLocationClassr>  È  rð   r   r?  Úlocalr<  NzbInstantiating a backend using a NonSupportedLocationClass as a location is not supported by joblib)r   ÚUserWarningr   r¥   r¦   )r?  Úunsupported_locationr©   Úexpected_mesages       r   Ú%test_warning_on_unknown_location_typerD  Ç  sf   € ÷ñ ñ 5Ó6Ðä	Œ{×	Ô	˜xÜ˜wÐ1EÕF÷ 
ð	ð ð
 œc (¨1¥+×"5Ñ"5Ó6Ô6Ð6Ò6÷ 
×	ús   ©A&Á&A6	c                  ó  € R p \        V \        4       V \        3\        P                  ! 4       9   g   Q h\	        \
        4      ;_uu_ 4       p\        V R4       RRR4       XP                  R4       R#   + '       g   i     L#; i)ÚisbÚfake_locationNznCan't instantiate abstract class IncompleteStoreBackend (without an implementation for|with) abstract methods*)r   r
  r   r­  r   r:  r   rŠ  )Úbackend_namerŒ  s     r   Ú)test_instanciate_incomplete_store_backendrI  Ø  sh   € ð €LÜ˜<Ô)?Ô@ØÔ0Ð1´_×5JÒ5JÓ5LÔLÐLÐLÜ	”	×	Ô	˜gÜ˜|¨_Ô=÷ 
à‡M�Mð	Aö÷ 
×	ús   ÁA4Á4B	c                  ó¶   € R p \        V \        4       V \        3\        P                  ! 4       9   g   Q h\	        V R4      p\        V\        4      '       g   Q hR# )ÚdsbÚdummy_locationN)r   r  r   r­  r   rÝ   )rH  Úbackend_objs     r   Útest_dummy_store_backendrN  æ  sR   € ð €LÜ˜<Ô):Ô;ØÔ+Ð,´×0EÒ0EÓ0GÔGÐGÐGä(¨Ð7GÓH€KÜ�kÔ#4×5Ò5Ð5Ò5r   c                  óÞ   € \         P                  ! R 4      p \        RV 4      p VP                  R 8X  g   Q h \        P
                  ! R RR7       R#   \        P
                  ! R RR7       i ; i)Úsome_folderr@  TrR   N)ÚpathlibÚPathr   r"   rX   rY   )r4   rM  s     r   Ú0test_instanciate_store_backend_with_pathlib_pathrS  ñ  sR   € ä�<Š<˜Ó&€DÜ(¨°$Ó7€Kð9Ø×#Ñ# }Ô4Ð4Ñ4ä�Š�m°4×8øŒ�Š�m°4Ö8ús   ¤A ÁA,c                 ó<  € R p\        4       pVP                  e   Q h\        V4       \        V4      VP	                  RR7      8X  g   Q hVP                  V P                  4       \        V4      VP	                  V P                  R7      8X  g   Q h\        V4       R# )z-FileSystemStoreBackend(location="{location}")Nr<  )r   r"   rZ  r¥   rw   r)  rW   )r]   Úrepr_patternr9  s   &  r   Ú"test_filesystem_store_backend_reprrV  û  sŠ   € ð C€LÜ$Ó&€GØ×ÑÒ#Ð#Ð#äˆ„Mäˆw‹<˜<×.Ñ.¸Ð.Ó=Ô=Ð=Ð=ð ×Ñ�f—n‘nÔ%äˆw‹<˜<×.Ñ.¸¿¹Ð.ÓGÔGÐGÐGäˆ†Mr   c                 óø  € R  p\        V P                  ^ R7      pVP                  V4      pRp\        V4      VP	                  WP
                  P                  R7      8X  g   Q hVP                  ^*^*4      pRp\        V4      VP	                  VP
                  P                  VP                  VP                  R7      8X  g   Q h\        V4      RP	                  VP
                  P                  R7      8X  g   Q hR# )	c                 ó   € W,           # r=   r   ro  s   &&r   Úmy_funcÚ)test_memory_objects_repr.<locals>.my_func  s	   € Ø�uˆ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<  N)
r
   rW   r$   r¥   rw   r1   r"   r>  r   r"  )r]   rY  r)   Úmemorized_funcÚmemorized_func_reprÚmemorized_resultÚmemorized_result_reprs   &      r   Útest_memory_objects_reprr_    s  € òô ˜VŸ^™^°QÔ7€FØ—\‘\ 'Ó*€NàKÐäˆ~ÓÐ"5×"<Ñ"<Ø×3Ñ3×<Ñ<ð #=ó #ô ð ð ð &×5Ñ5°b¸"Ó=Ðð 	Uð ô ÐÓ Ð$9×$@Ñ$@Ø×%Ñ%×.Ñ.Ø×%Ñ%Ø ×(Ñ(ð %Aó %ô ð ð ô ˆv‹;Ð7×>Ñ>Ø×%Ñ%×.Ñ.ð ?ó ô ð ò r   c                 óÜ  € \        V P                  R 7      pVP                  R 4       pVP                  ^4      p\        P
                  ! V4      p\        P                  ! V4      pVP                  P                  VP                  P                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q h\        V4      \        V4      8X  g   Q hR# )r<  c                 ó   € V ^,          # rÖ   r   rŸ   s   &r   r^   Ú'test_memorized_result_pickle.<locals>.g6  ó   € à�!�tˆr   N)r
   rW   r$   r>  r'  r)  r(  r1   r"   r'   r"  r¥   )r]   r)   r^   r]  Úmemorized_result_pickleÚmemorized_result_loadss   &     r   Útest_memorized_result_picklerf  /  sÜ   € ô
 ˜VŸ^™^Ô,€Fà‡\�\ñó ðð ×(Ñ(¨Ó+ÐÜ$ŸlšlÐ+;Ó<ÐÜ#Ÿ\š\Ð*AÓBÐð 	×&Ñ&×/Ñ/Ø!×/Ñ/×8Ñ8ô	9ðð	9ð × Ñ Ð$:×$?Ñ$?Ô?Ð?Ð?Ø×#Ñ#Ð'=×'EÑ'EÔEÐEÐEÜÐÓ ¤CÐ(>Ó$?Ô?Ð?Ò?r   c                 ó  € Vf   . p\        V 4      p\        V4      p\        VP                  4       4      \        VP                  4       4      8X  g   Q hVP                  4        F   pWR9   d   K  W5,          WE,          8X  d   K   Q h	  R # r=   )Úvarsr¦  Úkeys)ÚleftÚrightÚignored_attrsÚ	left_varsÚ
right_varsÚattrs   &&&   r   Úcomparerp  G  sr   € ØÒØˆä�T“
€IÜ�e“€JÜˆy�~‰~ÓÓ ¤C¨
¯©Ó(9Ó$:Ô:Ð:Ð:Ø—‘Ö ˆØÔ ÙØ� *Õ"2Ö2Ð2Ð2ó !r   Úmemory_kwargsrQ   r#   Úbackend_optionsÚ	parameterÚunusedc                 ót  € \        RR V P                  /VB p\        P                  ! \        P                  ! V4      4      p\        VP                  VP                  4       \        VV\        . RO4      R7       \        V4      \        V4      8X  g   Q hVP                  \        4      p\        P                  ! \        P                  ! V4      4      p\        VP                  VP                  4       \        VV\        . RO4      R7       \        V4      \        V4      8X  g   Q hVP                  ^4      p\        P                  ! \        P                  ! V4      4      p\        VP                  VP                  4       \        VV\        . RO4      R7       \        V4      \        V4      8X  g   Q hR# )r"   )rl  Nr   )r1   rY  Ú_func_code_id)r
   rW   r'  r(  r)  rp  r1   r¦  r   r$   r   r>  )r]   rq  r)   Úmemory_reloadedr‹  Úfunc_cached_reloadedr]  Úmemorized_result_reloadeds   &&      r   Útest_memory_pickle_dump_loadrz  T  s`  € ô Ñ=˜VŸ^™^Ð=¨}Ñ=€Fä—l’l¤6§<¢<°Ó#7Ó8€Oô ˆF× Ñ  /×"?Ñ"?Ô@ÜØØÜÒIÓJõô
 �‹<œ4 Ó0Ô0Ð0Ð0à—,‘,œq“/€Kä!Ÿ<š<¬¯ª°[Ó(AÓBÐô ˆK×%Ñ%Ð';×'IÑ'IÔJÜØØÜÒIÓJõô
 �Ó¤Ð%9Ó :Ô:Ð:Ð:ð #×2Ñ2°1Ó5ÐÜ &§¢¬V¯\ª\Ð:JÓ-KÓ LÐäÐ×*Ñ*Ð,E×,SÑ,SÔTÜØØ!ÜÒIÓJõô
 Ð Ó!¤TÐ*CÓ%DÔDÐDÒDr   c                 ó˜  € VP                  \        P                  4       ^p\        V P                  ^R7      pVP
                  R 4       pV! V4      pRVP                  9   g   Q hVP                  4        \        V P                  ^ R7      pVP
                  R 4       pV! V4      pRVP                  9  g   Q hVP                  4        R# )r‡  r!   c                 ó   € V ^,          # rÖ   r   rŸ   s   &r   r   Útest_info_log.<locals>.f‰  rc  r   ÚQueryingc                 ó   € V ^,          # rÖ   r   rŸ   s   &r   r   r}  “  rc  r   N)Ú	set_levelÚloggingÚINFOr
   rW   r$   ÚtextrZ   )r]   Úcaplogr   r)   r   r+   s   &&    r   Útest_info_logr…  ƒ  s±   € Ø
×Ñ”W—\‘\Ô"Ø	€Aä˜VŸ^™^°RÔ8€Fà‡\�\ñó ðñ 	
ˆ!‹€AØ˜Ÿ™Ô$Ð$Ð$Ø
‡L�L„Nä˜VŸ^™^°QÔ7€Fà‡\�\ñó ðñ 	
ˆ!‹€AØ˜VŸ[™[Ô(Ð(Ð(Ø
‡L�L†Nr   c                   óˆ   a € ] tR tRt o RtRR ltR t]P                  P                  RRR.4      R	 4       t
R
 tR tRtV tR# )ÚTestCacheValidationCallbackiœ  z.Tests on parameter `cache_validation_callback`Nc                óR   € R VR&   Ve   \         P                  ! V4       V^,          # )TÚrunrÿ  )r  r   rä   Údelays   &&&&r   ÚfooÚTestCacheValidationCallback.fooŸ  s&   € Øˆˆ%‰ØÒÜ�JŠJ�uÔØ�1�uˆr   c                ó°   € Rp\         P                  ! \        VR7      ;_uu_ 4        VP                  RR7       RRR4       R#   + '       g   i     R# ; i)z2Test invalid values for `cache_validation_callbackz9cache_validation_callback needs to be callable. Got True.râ  Tr4  N)rI  r   r‰  r$   )r  r)   rŠ  s   && r   Ú&test_invalid_cache_validation_callbackÚBTestCacheValidationCallback.test_invalid_cache_validation_callback¥  s5   € àKˆÜ�]Š]œ:¨U×3Ö3Ø�L‰L°4ˆLÔ8÷ 4×3×3Ò3ús   §AÁA	r/  TFc                óÞ   a€ VP                  V P                  V3R lR.R7      pRR/RR/rTV! ^V4      ^8X  g   Q hV! ^V4      ^8X  g   Q hVR,          '       g   Q hVR,          S8w  g   Q hR# )zTest expiry of old resultsc                 ó   <€ S# r=   r   r2  s   &€r   rš   ÚUTestCacheValidationCallback.test_constant_cache_validation_callback.<locals>.<lambda>°  s   ø€ Ñ0Dr   rä   ©r5  rú   r‰  FN©r$   r‹  )r  r)   r/  r   Úd1Úd2s   &&f   r   Ú'test_constant_cache_validation_callbackÚCTestCacheValidationCallback.test_constant_cache_validation_callback«  s}   ø€ ð �L‰LØ�H‰HÜ&DØ�5ð ó 
ˆð ˜� %¨ ˆBÙ��B‹x˜1Œ}Ðˆ}Ù��B‹x˜1Œ}Ðˆ}à�%�yŒyÐˆyØ�%�yÐ0Ô0Ð0Ò0r   c                ó~  € R pVP                  V P                  VR.R7      pRR/RR/rTV! ^V^ R7      ^8X  g   Q hV! ^V^ R7      ^8X  g   Q hVR,          '       g   Q hVR,          '       g   Q hRR/RR/rTV! ^VRR7      ^8X  g   Q hV! ^VRR7      ^8X  g   Q hVR,          '       g   Q hVR,          '       d   Q hR# )	z*Test cache validity based on run duration.c                 ó*   € V R ,          pVR8”  d   R# R# )Údurationgš™™™™™¹?TNr   )Úmetadatar›  s   & r   r5  Ú^TestCacheValidationCallback.test_memory_only_cache_long_run.<locals>.cache_validation_callback¾  s   € Ø 
Õ+ˆHØ˜#Œ~Ùñ r   rä   r“  r‰  F)rŠ  ru   Nr”  )r  r)   r5  r   r•  r–  s   &&    r   Útest_memory_only_cache_long_runÚ;TestCacheValidationCallback.test_memory_only_cache_long_run»  sä   € ò	ð
 �L‰LØ�H‰HÐ0IÐSVÐRWð ó 
ˆð
 ˜� %¨ ˆBÙ��B˜aÔ  AÔ%Ð%Ð%Ù��B˜aÔ  AÔ%Ð%Ð%Ø�%�yŒyÐˆyØ�%�yŒyÐˆyð ˜� %¨ ˆBÙ��B˜cÔ" aÔ'Ð'Ð'Ù��B˜cÔ" aÔ'Ð'Ð'Ø�%�yŒyÐˆyØ�e—9”9Ðˆ}‘9r   c                ó`  € VP                  V P                  \        RR7      R.R7      pRR/RR/RR/rTpV! ^V4      ^8X  g   Q hV! ^V4      ^8X  g   Q h\        P                  ! R4       V! ^V4      ^8X  g   Q hVR,          '       g   Q hVR,          '       d   Q hVR,          '       g   Q hR# )	z!Test expiry of old cached resultsg333333Ó?rà  rä   r“  r‰  FrE  N)r$   r‹  r   r~   r   )r  r)   r   r•  r–  Úd3s   &&    r   Útest_memory_expires_afterÚ5TestCacheValidationCallback.test_memory_expires_afterÕ  s¯   € ð �L‰LØ�H‰H´ÀcÔ0JÐTWÐSXð ó 
ˆð ˜U�^ e¨U ^°e¸U°^�ˆÙ��B‹x˜1Œ}Ðˆ}Ù��B‹x˜1Œ}Ðˆ}Ü�
Š
�3ŒÙ��B‹x˜1Œ}Ðˆ}à�%�yŒyÐˆyØ�e—9”9Ðˆ}Ø�%�yŒyÐŠyr   r   r=   )rë   r\   rì   rí   r  r‹  rŽ  rI  Úmarkr   r—  rž  r¢  rî   r+  r,  s   @r   r‡  r‡  œ  sL   ø‡ € Ù4ôò9ð ‡[�[×ÑÐ3°d¸E°]ÓCñ1ó Dð1ò÷4ð r   r‡  c                   ó@   a € ] tR tRt o Rt]R 4       tR tR tRt	V t
R# )ÚTestMemorizedFunciç  z8Tests for the MemorizedFunc and NotMemorizedFunc classesc                óH   € VP                  V ^ 4      ^,           W&   W,          # rõ   )r?  )r   Úcounters   &&r   r   ÚTestMemorizedFunc.fê  s!   € à—[‘[  AÓ&¨Õ*ˆ‰
Ø�zÐr   c                ó  € VP                  V P                  R.R7      p/ pV! ^V4      ^8X  g   Q hV! ^V4      ^8X  g   Q hVP                  ^V4      w  rEV^8X  g   Q R4       h\        V\        4      '       g   Q R4       hR# )úTest calling the functionr¨  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_memorizedÚ,TestMemorizedFunc.test_call_method_memorizedï  sŠ   € ð �L‰L˜Ÿ™¨¨ˆLÓ4ˆàˆÙ��G‹} Ô!Ð!Ð!Ù��G‹} Ô!Ð!Ð!à—&‘&˜˜GÓ$‰ˆØ�AŒvÐ7Ð7Ó7ˆvÜ˜$¤×%Ò%ð 	
Ø>ó	
Ò%r   c                óò   € \        V P                  4      p/ pV! ^V4      ^8X  g   Q hV! ^V4      ^8X  g   Q hVP                  ^V4      w  rEV^8X  g   Q R4       h\        V\        4      '       g   Q R4       hR# )r«  r¬  r­  N)r   r   r®  rÝ   r¯  r°  s   &&    r   Útest_call_method_not_memorizedÚ0TestMemorizedFunc.test_call_method_not_memorizedþ  s€   € ô ˜TŸV™VÓ$ˆàˆÙ��G‹} Ô!Ð!Ð!Ù��G‹} Ô!Ð!Ð!à—&‘&˜˜GÓ$‰ˆØ�AŒvÐ7Ð7Ó7ˆvÜ˜$¤×%Ò%ð 	
Ø>ó	
Ò%r   r   N)rë   r\   rì   rí   r  Ústaticmethodr   r²  rµ  rî   r+  r,  s   @r   r¦  r¦  ç  s)   ø‡ € Ù>àñó ðò
÷
ð 
r   r¦  r"   Útest_cache_dirc                ó
  € \        V 4      p\        P                  ! . RO. RO.4      pVP                  \        P                  4      pV! V4       \
        P                  ! V 4      p  \        P                  P                  V R4      pRp\        V4      ;_uu_ 4       pWVP                  4       8X  g   Q h RRR4       \        P                  ! V RR7       R#   + '       g   i     L*; i  \        P                  ! T RR7       i ; i)zkTest that using the memory object automatically creates a `.gitignore` file
within the new cache directory.z
.gitignorez%# Created by joblib automatically.
*
NTrR   )rK   rv   r‡  )rˆ  é   é   )r
   r   Úasarrayr$   ÚsquarerQ  rR  r3   r4   r5   r6   rH  rX   rY   )r"   ÚmemÚarrÚcostly_operationÚpath_to_gitignore_fileÚgitignore_file_contentr   s   &      r   Útest_memory_creates_gitignorerÃ    s¹   € ô �Ó
€CÜ
�*Š*’i¢Ð+Ó
,€CØ—y‘y¤§¡Ó+ÐÙ�SÔä�|Š|˜HÓ%€Hð4Ü!#§¡§¡¨h¸Ó!EÐØ!JÐÜÐ(×)Ô)¨QØ)¯V©V«XÔ5Ð5Ñ5÷ *ô 	�Š�h¨d×3÷	 *×)ûô 	�Š�h¨dÖ3ús$   Á&5C( ÂCÂ3C( ÃC%	Ã C( Ã(DrJ   )rÌ   )Tr=   )wr  r¨  rº   rß   r�  r3   Úos.pathrQ  r'  rX   rb  ry   r~   rI  Ú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   r,   r:   rG   ra   r¤  Úxfailr†   rŒ   r’   rœ   rª   r¯   rµ   r½   rÁ   rÄ   rÆ   rÓ   ræ   r÷   r  r  r  r  r$  r.  r:  rB  rO  rW  r\  rm  rp  rr  ru  rw  ry  r}  r„  r�  r�  rš  r¶  rÑ  rÙ  rÜ  rç  rê  rí  rð  rø  rü  r  r
  r  r¯  rV   r1  r6  r;  rD  rI  rN  rS  rV  r_  rf  rp  rz  r…  r‡  r¦  rR  ÚresolverÃ  r   r   r   Ú<module>rÍ     s†  ðñó Û Û 	Û Û 	Û Û Û Û Û 
Û Û ã ç KÝ ÷÷ ÷ ó ÷ .ß CÑ Cß 5Ñ 5ô
ò-òòò +ðZ ‡�×ÑÙÐ# d¨E ]Ó3ñfAó 4ó ðfAòR;ò $ò 	Jò3ò4ò ?ò$?ò ð ô òð Ùˆ[˜4 ˜+Ó&ñ-ó 'ó ð-ð& ñ$ó ð$òNò*!ò&!ò6ñ( Ð)¨c¨U°C¸Ð,=ÀÀBÈ¸~Ð+NÓOñ
$ó Pð
$òò@
ð. ‡�×ÑÐ/°$¸°Ó?ñ+ó @ð+ò,ò.!=òH	òò@6+òr	ò
òòò ð
 uð °%ô õòCò4&ô1ò*3ò.%òPò8ò6"òJ9òô
>ð
 ñ'ó ð'ð& ñ'ó ð'ò.*&ôZ	Ð-ô 	ô!Ð(ô !ñH Ð ¡d£f©d«fÐ5Ó6ñ=ó 7ð=òEò(ò7ò"ò6ò9òò(ò@@ô0
3ð ‡�×ÑØà	�Q˜	 1Ð%Ø	�c˜9 aÐ):¸[È(Ð<SÐTðóñ%Eóð%EòP÷2Hñ H÷V$
ñ $
ðN ÙØàØ�ŠÐ%Ó&Ø�ŠÐ%Ó&×.Ñ.Ó0ðóñ4óó ò4r   