a
    h                     @   sF  d dl Z d dlmZmZmZ d dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZ d dlmZmZ edeegdd	 Zedeegd
d Zeedd Zeedd Zedddgdd Zdd Zdd Zeeeddde e gedeegdd Zedeegdd Zedeegd d! ZdS )"    N)LokyBackendMultiprocessingBackendThreadingBackend)BACKENDSDEFAULT_BACKENDEXTERNAL_BACKENDSParalleldelayedparallel_backendparallel_config)npwith_multiprocessing
with_numpy)check_memmap)parametrizeraisescontextc                 C   sV   t  j}| d}ztt  jts$J W |  n
|  0 tt  jt|u sRJ d S )N	threading)r   _backend
isinstancer   
unregistertype)r   defaultZpb r   S/var/www/html/assistant/venv/lib/python3.9/site-packages/joblib/test/test_config.pytest_global_parallel_backend   s    r   c                 C   sb   dd }|t d< zD| d" tt jts.J W d    n1 sB0    Y  W t d= nt d= 0 d S )Nc                   S   s   t td< d S )Nfoo)r   r   r   r   r   r   register_foo$   s    z,test_external_backends.<locals>.register_foor   )r   r   r   r   r   )r   r   r   r   r   test_external_backends"   s    
2r   c              	   C   s   t dd| d tddd}t|jts,J |jdks:J |dd tjdgd D  tt	
| d	kspJ W d    n1 s0    Y  W d    n1 s0    Y  d S )
N      n_jobs
max_nbytesZtemp_folder	processes)preferc                 s   s   | ]}t t|V  qd S Nr	   r   .0ar   r   r   	<genexpr>:       z2test_parallel_config_no_backend.<locals>.<genexpr>
   r   )r   r   r   r   r   r"   r   randomlenoslistdirZtmpdirpr   r   r   test_parallel_config_no_backend/   s     r4   c              
   C   s   t dd| d tddddz}t|jts0J |jdks>J ttdd	0 |d
d tj		dgd D  W d    n1 s0    Y  W d    n1 s0    Y  W d    n1 s0    Y  d S )N   r    r!   r   r$   Z1M)r"   r%   r#   zExpected np.memmap instancematchc                 s   s   | ]}t t|V  qd S r&   r'   r(   r   r   r   r+   H   r,   z;test_parallel_config_params_explicit_set.<locals>.<genexpr>r-   )
r   r   r   r   r   r"   r   	TypeErrorr   r.   r2   r   r   r   (test_parallel_config_params_explicit_set>   s    r9   paramr%   requirec              	   C   sn   t t|  ddH tf i | di t  W d    n1 sB0    Y  W d    n1 s`0    Y  d S )Nz=wrong is not a validr6   Zwrong)r   
ValueErrorr   r   )r:   r   r   r   test_parallel_config_bad_paramsK   s    r=   c                	   C   s  t tdd: tdd W d    n1 s.0    Y  W d    n1 sL0    Y  t tdd: tdd W d    n1 s0    Y  W d    n1 s0    Y  t tdd@ ttt dd W d    n1 s0    Y  W d    n1 s0    Y  d S )Nz'only supported when backend is not Noner6   r    Zinner_max_num_threads)backend_paramz'only supported when backend is a string)backendr?   )r   r<   r   r   r   r   r   r   r   'test_parallel_config_constructor_paramsT   s    <<rA   c               	   C   sJ  t dd8 t } t| jtt s&J | jdks4J W d    n1 sH0    Y  t dd^ t dd4 t } t| jtsJ | jdksJ W d    n1 s0    Y  W d    n1 s0    Y  t dd` t dd4 t } | jdksJ | jdksJ W d    n1 s0    Y  W d    n1 s<0    Y  d S )Nr   r"   r   r@   d   )verbose)	r   r   r   r   r   r   r"   r   rE   )r3   r   r   r   test_parallel_config_nestedd   s    ,JrF   r@   multiprocessingr   c                 C   s<   t tdd | |dd W d    n1 s.0    Y  d S )Nz#does not acc.*inner_max_num_threadsr6   r    r>   )r   AssertionError)r   r@   r   r   r   1test_threadpool_limitation_in_child_context_errorz   s    rI   c              	   C   s   | dddH t d d}|jdks(J W d    n1 s<0    Y  W d    n1 sZ0    Y  | ddP t  j}t d d}|j|ksJ W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr   r   r@   r"   rB   rC   r   r"   )r   r3   Zdefault_n_jobsr   r   r   test_parallel_n_jobs_none   s    JrL   c              
   C   s   | dddp | dd dD t  }|jdks2J W d    n1 sF0    Y  W d    n1 sd0    Y  W d    n1 s0    Y  d S )Nr   r   rJ   r    rK   )r   r3   r   r   r    test_parallel_config_n_jobs_none   s    rM   ) r0   Zjoblib._parallel_backendsr   r   r   Zjoblib.parallelr   r   r   r   r	   r
   r   Zjoblib.test.commonr   r   r   Zjoblib.test.test_parallelr   Zjoblib.testingr   r   r   r   r4   r9   r=   rA   rF   rI   rL   rM   r   r   r   r   <module>   s>   $	



