a
    !f1                     @   s   zd dl ZW n ey&   d dlZY n0 d dlZd dlmZ 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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)parametrizetimeout)with_multiprocessing)concurrency_safe_rename)Paralleldelayed)concurrency_safe_writeFileSystemStoreBackendCacheWarningc                 C   s:   t |d}t| | W d    n1 s,0    Y  d S )Nwb)opencpickledump)outputfilenamef r   `/var/www/html/python-backend/venv/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)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>;       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   r3   r   test_concurrency_safe_write4   s    r;   c                 C   sj   G dd dt }t }| dj|_d |_tjtdd |	d|  W d    n1 s\0    Y  d S )Nc                   @   s   e Zd Zdd ZdS )z7test_warning_on_dump_failure.<locals>.UnpicklableObjectc                 S   s   t dd S )Nsome exception)RuntimeErrorselfr   r   r   
__reduce__G   s    zBtest_warning_on_dump_failure.<locals>.UnpicklableObject.__reduce__N__name__
__module____qualname__r@   r   r   r   r   UnpicklableObjectF   s   rE   test_warning_on_pickling_errorr<   matchtestpath)
objectr   r6   r7   locationcompresspytestwarnsr   	dump_itemr9   rE   r$   r   r   r   test_warning_on_dump_failureC   s    rQ   c                 C   sj   G dd dt }t }| dj|_d |_tjtdd |	d|  W d    n1 s\0    Y  d S )Nc                   @   s   e Zd Zdd ZdS )z9test_warning_on_pickling_error.<locals>.UnpicklableObjectc                 S   s   t dd S )Nnot picklabler   r>   r   r   r   r@   V   s    zDtest_warning_on_pickling_error.<locals>.UnpicklableObject.__reduce__NrA   r   r   r   r   rE   U   s   rE   rF   rR   rG   rI   )
rJ   r   r6   r7   rK   rL   rM   rN   FutureWarningrO   rP   r   r   r   rF   R   s    rF   )cPickler   ImportErrorpickler.   r   r   rM   Zjoblib.testingr   r   Zjoblib.test.commonr   Zjoblib.backportsr   Zjoblibr   r	   Zjoblib._store_backendsr
   r   r   r   r!   r#   r;   rQ   rF   r   r   r   r   <module>   s*   