a
    feza                     @   s   zd dl ZW n ey&   d dlZY n0 d dlZd dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ dd Zd	d
 Zdd Zed e
edg ddd ZdS )    N)parametrizetimeout)with_multiprocessing)concurrency_safe_rename)Paralleldelayed)concurrency_safe_writec                 C   s:   t |d}t| | W d    n1 s,0    Y  d S )Nwb)opencpickledump)outputfilenamef r   >lib/python3.9/site-packages/joblib/test/test_store_backends.py
write_func   s    r   c              
   C   s   t dD ]d}z>t|d}t|}W d    n1 s80    Y  W  qpW q ttfyj   td Y q0 q | |ks|J d S )N
   rbg?)ranger
   r   loadOSErrorIOErrortimesleep)Z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)Z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>3       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>4   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>7   s   z.test_concurrency_safe_write.<locals>.<genexpr>)joinZstrpathr   intr   )Ztmpdirr   Zfuncsr   r-   r   test_concurrency_safe_write,   s    r2   )ZcPickler   ImportErrorpickler(   r   Zjoblib.testingr   r   Zjoblib.test.commonr   Zjoblib.backportsr   Zjoblibr   r   Zjoblib._store_backendsr   r   r   r   r2   r   r   r   r   <module>   s"   