o
    l¨Êh–  ã                   @   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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   ƒ d S 1 sw   Y  d S )NÚwb)ÚopenÚcpickleÚdump)ÚoutputÚfilenameÚf© r   úQ/var/www/html/env/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   Úreloadedr   r   r   Ú	load_func   s   ÿür   c                 C   s   t | ||ƒ}t||ƒ d S ©N)r   r   )Úto_writer   r   Útemporary_filenamer   r   r   Úconcurrency_safe_write_rename&   s   ÿr"   Úbackend)ÚmultiprocessingÚ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   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>4   s    þÿþz/test_concurrency_safe_write.<locals>.<listcomp>é   r,   )Ú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>)ÚjoinÚstrpathr   Úintr   )Útmpdirr#   Úfuncsr   r3   r   Útest_concurrency_safe_write,   s   þÿr;   )ÚcPickler   ÚImportErrorÚpickler-   r   Újoblib.testingr   r   Újoblib.test.commonr   Újoblib.backportsr   Újoblibr   r   Újoblib._store_backendsr   r   r   r"   r;   r   r   r   r   Ú<module>   s&    ÿ