
    .Ph}                     V   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dS )    N)AsyncMemorizedFuncAsyncNotMemorizedFuncMemorizedResultMemoryNotMemorizedResult)np
with_numpy)raises   )corrupt_single_cache_itemmonkeypatch_cached_func_warnc                    K   t          |d          }|                    |           } t          d          D ]E}t          d          D ]3} | |           d{V }||k    sJ t          |          |dz   k    sJ 4FdS )z<Similar to check_identity_lazy_async for coroutine functionsr   locationverbose      Nr   )r   cacherangelen)funcaccumulatorr   memoryi_values          ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/joblib/test/test_memory_async.pycheck_identity_lazy_asyncr      s      Xq111F<<D1XX - -q 	- 	-A$q''MMMMMMEA::::{##q1u,,,,,	-- -    c                   	K   t                      		fd}t          |	| j                   d {V  dD ]}dD ]}t          | j        d||          }t	          j        | j        d           |                    |          } |d           d {V  |                    d	
           t          	          } |d           d {V }t          	          |dz   k    sJ |	                    |d           d {V }||k    sJ t          	          |dz   k    sJ d|_
        t          | j        d          } |                    |          d           d {V  d S )Nc                 j   K   t          j        d           d {V                      d           | S N皙?r   asynciosleepappend)nr   s    r   fz(test_memory_integration_async.<locals>.f#   B      mC         1r   )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>      s     &&K    
 $A{FN
C
CCCCCCCC " ; ;$ 	 	I#!	  F M&.====QA!A$$JJJJJJJGGG"%k"2"2!******CC;#6#:::::{{1a((((((((}}}};#6#:::::: ALV^Q777F
&,,q//!

r   c                    K   t                      fd} t          d d          }|                    |           }t          d          D ]:}t	                    } |d           d {V  t	                    |dz   k    sJ ;d S )Nc                 j   K   t          j        d           d {V                      d           | S r"   r$   )xr   s    r   ffz test_no_memory_async.<locals>.ffP   r*   r   r   r      r   )r2   r   r   r   r   )rB   r   ggr   r;   r   s        @r   test_no_memory_asyncrE   L   s      &&K    
 T1---F	b		B1XX ; ;!+..bee;#6#::::::; ;r   c                   K   t          | j        dd          }|                                d             }t          j        d          } ||           d{V } ||           d{V }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{V }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 callr+   r   )r   r-   r   c                    K   | dz  S )Nr    )as    r   twicez6test_memory_numpy_check_mmap_mode_async.<locals>.twiced   s      1ur   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   ]   s{     
 V^sAFFFF\\^^  ^ 	

AeAhhAeAhhAa#####6S====a#####6S==== 	
	JLLLf%%% 5UKHHeAhhA !!Q&&&&5M-a00000a#####6S======r   c                   K   dd}t          t          || j                  t          |          t	          | j        d                              |          t	          d                               |          ft          t          t          t          f          D ]\  }}t          d          D ]I}|	                    d           d {V }t          ||          sJ |                                dk    sJ J|                                 t          t                    5  |                                 d d d            n# 1 swxY w Y   |                                 d S )	Nr   c                 J   K   t          j        d           d {V  | dz  |z   S )Nr#   r   )r%   r&   )rA   ys     r   r)   z%test_call_and_shelve_async.<locals>.f   s5      mC         !taxr   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        
 q&.11!!$$FNA666<<Q??D!!!''**		
 		
   f q 	% 	%A//22222222Fff-----::<<1$$$$$H 	 	JJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	- s   !EE		E	c                 @  K   d }|                      |dg          }i } |d|           d {V dk    sJ  |d|           d {V dk    sJ |                    d|           d {V \  }}|dk    s
J d            t          |t                    s
J d            d S )Nc                    K   t          j        d           d {V  |                    | d          dz   || <   ||          S )Nr#   r   r   )r%   r&   r^   )rA   counters     r   rB   z*test_memorized_func_call_async.<locals>.ff   sN      mC         [[A&&*
qzr   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6663666dD!!UU#UUUUUUr   )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   r   <module>rq      s    				                . - - - - - - - ! ! ! ! ! ! P P P P P P P P- - - ) ) )X ; ; ;  # #  #L   > V V V V Vr   