o
    ^Zh                     @   s   zd dl ZW n ey   d dlZY nw 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mZmZ d dlmZ d dlmZ d dlmZmZ dd	 Zd
d Zdd Zed eedg ddd Zdd Zdd ZdS )    NPicklingError)Paralleldelayed)CacheWarningFileSystemStoreBackendconcurrency_safe_write)concurrency_safe_rename)with_multiprocessing)parametrizetimeoutc                 C   s<   t |d}t| | W d    d S 1 sw   Y  d S )Nwb)opencpickledump)outputfilenamef r   N/var/www/auris/lib/python3.10/site-packages/joblib/test/test_store_backends.py
write_func   s   "r   c              
   C   sz   t dD ]/}zt|d}t|}W d    n1 sw   Y  W  n ttfy3   td Y qw  | |ks;J d S )N
   rbg?)ranger   r   loadOSErrorIOErrortimesleep)expectedr   ir   Zreloadedr   r   r   	load_func   s   r!   c                 C   s   t | ||}t|| d S N)r   r	   )Zto_writer   r   Ztemporary_filenamer   r   r   concurrency_safe_write_rename-   s   r#   backend)multiprocessingZloky	threadingc                    sX   |  dj dd ttdD dd tdD }td|d	 fd
d|D  d S )Nztest.pklc                 S   s   i | ]}t ||qS r   )str.0r    r   r   r   
<dictcomp>9   s    z/test_concurrency_safe_write.<locals>.<dictcomp>g     j@c                 S   s*   g | ]}|d  dkrt jttdntqS )      )r   )	functoolspartialr#   r   r!   r(   r   r   r   
<listcomp>:   s    z/test_concurrency_safe_write.<locals>.<listcomp>   r,   )Zn_jobsr$   c                 3   s    | ]
}t | V  qd S r"   )r   )r)   funcr   objr   r   	<genexpr>@   s    z.test_concurrency_safe_write.<locals>.<genexpr>)joinstrpathr   intr   )tmpdirr$   funcsr   r2   r   test_concurrency_safe_write2   s   $r:   c                 C   l   G dd dt }t }| dj|_d |_tjtdd |	d|  W d    d S 1 s/w   Y  d S )Nc                   @      e Zd Zdd ZdS )z7test_warning_on_dump_failure.<locals>.UnpicklableObjectc                 S      t d)Nsome exception)RuntimeErrorselfr   r   r   
__reduce__G      zBtest_warning_on_dump_failure.<locals>.UnpicklableObject.__reduce__N__name__
__module____qualname__rB   r   r   r   r   UnpicklableObjectF       rH   test_warning_on_pickling_errorr>   matchtestpath)
objectr   r5   r6   locationcompresspytestwarnsr   	dump_itemr8   rH   r$   r   r   r   test_warning_on_dump_failureC      "rU   c                 C   r;   )Nc                   @   r<   )z9test_warning_on_pickling_error.<locals>.UnpicklableObjectc                 S   r=   )Nnot picklabler   r@   r   r   r   rB   V   rC   zDtest_warning_on_pickling_error.<locals>.UnpicklableObject.__reduce__NrD   r   r   r   r   rH   U   rI   rH   rJ   rW   rK   rM   )
rN   r   r5   r6   rO   rP   rQ   rR   FutureWarningrS   rT   r   r   r   rJ   R   rV   rJ   )cPickler   ImportErrorpickler-   r   r   rQ   Zjoblibr   r   Zjoblib._store_backendsr   r   r   Zjoblib.backportsr	   Zjoblib.test.commonr
   Zjoblib.testingr   r   r   r!   r#   r:   rU   rJ   r   r   r   r   <module>   s.    