
    3[g                        d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZmZ d dlmZ ddlmZmZ d Zej&                  j                   d        Zej&                  j                   d	        Zeej&                  j                   d
               Zej&                  j                   d        Zej&                  j                   d        Zy)    N)AsyncMemorizedFuncAsyncNotMemorizedFuncMemorizedResultMemoryNotMemorizedResult)np
with_numpy)raises   )corrupt_single_cache_itemmonkeypatch_cached_func_warnc                    K   t        |d      }|j                  |       } t        d      D ]<  }t        d      D ],  } | |       d{   }||k(  sJ t        |      |dz   k(  r,J  > y7 #w)z= Similar to check_identity_lazy_async for coroutine functionsr   locationverbose      Nr   )r   cacherangelen)funcaccumulatorr   memoryi_values          X/var/www/html/bid-api/venv/lib/python3.12/site-packages/joblib/test/test_memory_async.pycheck_identity_lazy_asyncr      sm     Xq1F<<D1XqAq'MEA::{#q1u,,,  !s   AA.A,	A.&A.c                   	K   t               		fd}t        |	| j                         d {    dD ]  }dD ]  }t        | j                  d||      }t	        j
                  | j                  d       |j                  |      } |d       d {    |j                  d	
       t        	      } |d       d {   } t        	      dz   k(  sJ j                  |d       d {   }|k(  sJ t        	      |dz   k(  rJ  d|_
        t        | j                  d      } |j                  |      d       d {    y 7  7 7 7 e7 w)Nc                 p   K   t        j                  d       d {    j                  d       | S 7 wN皙?r   asynciosleepappend)nr   s    r   fz(test_memory_integration_async.<locals>.f   1     mmC   1 	!   646)FT)rN
   )r   r   	mmap_modecompressT)ignore_errorsr   F)warn__main__r   r   )listr   strpathr   shutilrmtreer   clearr   eval
__module__)
tmpdirr(   r.   r-   r   gcurrent_accumulatoroutevaledr   s
            @r   test_memory_integration_asyncr>      sK    &K
 $A{FNN
CCC "$IV^^R&/(DF MM&..=QAA$JJGGG"%k"2!*C % ;#6#::::{{1a((}};#6#::::) "0 ALV^^Q7F
&,,q/!
; D   ) s^   *EEA$EE,E?E .E.E/E;EEEEEEEc                     K   t               fd} t        d d      }|j                  |       }t        d      D ]0  }t	              } |d       d {    t	              |dz   k(  r0J  y 7 w)Nc                 p   K   t        j                  d       d {    j                  d       | S 7 wr!   r#   )xr   s    r   ffz test_no_memory_async.<locals>.ffH   r)   r*   r   r      r   )r2   r   r   r   r   )rB   r   ggr   r;   r   s        @r   test_no_memory_asyncrE   D   so     &K
 T1-F	b	B1X!+.e;#6#:::: s   AA2A0A2,A2c                   K   t        | j                  dd      }|j                         d        }t        j                  d      } ||       d{   } ||       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        ||      } ||       d{   }t        |      dk(  sJ d}	|	|d   v sJ t        |t        j                        sJ |j                  dk(  sJ y7 7 7 Qw)	z8Check that mmap_mode is respected even at the first callr+   r   )r   r-   r   c                    K   | dz  S w)Nr    )as    r   twicez6test_memory_numpy_check_mmap_mode_async.<locals>.twice\   s     1us   r   Nr   zException while loading results)r   r3   r   r   ones
isinstancememmapmodegccollectr   r   r   )
r9   monkeypatchr   rJ   rI   bcrecorded_warningsdexception_msgs
             r   'test_memory_numpy_check_mmap_mode_asyncrW   U   s2    
 V^^sAFF\\^  	
AAhAAhAa###66S==a###66S== 	
	JJLf% 5UKHAhA !Q&&&5M-a0000a###66S==3 	$ 	s8   AEEE!E"BE8E
9AEE
Ec                 d  K   dd}t        t        || j                        t        |      t	        | j                  d      j                  |      t	        d       j                  |      ft        t        t        t        f      D ]  \  }}t        d      D ]>  }|j                  d       d {   }t        ||      sJ |j                         dk(  r>J  j                          t        t              5  |j                          d d d        |j                           y 7 t# 1 sw Y   xY ww)Nc                 X   K   t        j                  d       d {    | dz  |z   S 7 w)Nr"   r   )r$   r%   )rA   ys     r   r(   z%test_call_and_shelve_async.<locals>.f   s+     mmC   Avz 	!s   *(*r   r   )r   r      )r   )zipr   r3   r   r   r   r   r   r   call_and_shelverL   getr6   r
   KeyError)r9   r(   r   Resultr   results         r   test_call_and_shelve_asyncrb   }   s     
 /6>>B215#V^^,-//4uQx#T288;	 -.@,.@ f qA//22Fff---::<1$$$ 
 	HJJL #  3
 s0   B+D0-D".%D0"D06D$D0$D-	)D0c                 "  K   d }| j                  |dg      }i } |d|       d {   dk(  sJ  |d|       d {   dk(  sJ |j                  d|       d {   \  }}|dk(  sJ d       t        |t              sJ d       y 7 `7 L7 /w)Nc                    K   t        j                  d       d {    |j                  | d      dz   || <   ||    S 7 !w)Nr"   r   r   )r$   r%   r^   )rA   counters     r   rB   z*test_memorized_func_call_async.<locals>.ff   s@     mmC   [[A&*
qz 	!s   ?="?re   )ignorer   r   zf has not been called properlyz0Metadata are not returned by MemorizedFunc.call.)r   callrL   dict)r   rB   rD   re   rA   metas         r   test_memorized_func_call_asyncrj      s     
 
b)	-BGAw1$$$Aw1$$$GGAw''GAt63336dD! :!  's1   &BB	BBBB,BBB)r$   rO   r4   pytestjoblib.memoryr   r   r   r   r   joblib.test.commonr   r	   joblib.testingr
   test_memoryr   r   r   markr>   rE   rW   rb   rj   rH       r   <module>rr      s     	  H H - !8- % %P ; ;  #  #L  4  rq   