o
    \i                     @   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|  w tt  jt|u s)J d S )N	threading)r   _backend
isinstancer   
unregistertype)r   defaultpb r   x/var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/joblib/test/test_config.pytest_global_parallel_backend   s   r   c                 C   sl   dd }|t d< z)| d tt jtsJ W d    n1 s!w   Y  W t d= d S W t d= d S t d= w )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   

r   c              	   C   s   t dd| dP tdd2}t|jtsJ |jdksJ |dd tjdgd D  tt	
| d	ks8J W d    n1 sBw   Y  W d    d S W d    d S 1 sZw   Y  d S )
N      n_jobs
max_nbytestemp_folder	processes)preferc                 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tmpdirpr   r   r   test_parallel_config_no_backend/   s    "r8   c              
   C   s   t dd| d] tdddd=}t|jtsJ |jdksJ ttdd	 |d
d tj		dgd D  W d    n1 s@w   Y  W d    n1 sOw   Y  W d    d S W d    d S 1 sgw   Y  d S )N   r!   r"   r    r&   1M)r#   r'   r$   zExpected np.memmap instancematchc                 s   r(   r)   r*   r+   r   r   r   r.   H   r/   z;test_parallel_config_params_explicit_set.<locals>.<genexpr>r0   )
r   r   r   r   r   r#   r   	TypeErrorr   r1   r5   r   r   r   (test_parallel_config_params_explicit_set>   s   ""r>   paramr'   requirec              	   C   s   t t|  dd- tdi | di t  W d    n1 s!w   Y  W d    d S W d    d S 1 s9w   Y  d S )Nz=wrong is not a validr;   wrongr   )r   
ValueErrorr   r   )r?   r   r   r   test_parallel_config_bad_paramsK   s   "rC   c                	   C   s  t tdd tdd W d    n1 sw   Y  W d    n1 s&w   Y  t tdd tdd W d    n1 sBw   Y  W d    n1 sQw   Y  t tdd) ttt dd W d    n1 spw   Y  W d    d S W d    d S 1 sw   Y  d S )Nz'only supported when backend is not Noner;   r!   inner_max_num_threads)backend_paramz'only supported when backend is a string)backendrF   )r   rB   r   r   r   r   r   r   r   'test_parallel_config_constructor_paramsT   s&   "rH   c               	   C   sV  t dd t } t| jtt sJ | jdksJ W d    n1 s$w   Y  t dd/ t dd t } t| jts@J | jdksGJ W d    n1 sQw   Y  W d    n1 s`w   Y  t dd7 t dd t } | jdks{J | jdksJ W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr    r#   r   rG   d   )verbose)	r   r   r   r   r   r   r#   r   rL   )r7   r   r   r   test_parallel_config_nestedd   s,   "rM   rG   multiprocessingr   c                 C   s>   t tdd | |dd W d    d S 1 sw   Y  d S )Nz#does not acc.*inner_max_num_threadsr;   r!   rD   )r   AssertionError)r   rG   r   r   r   1test_threadpool_limitation_in_child_context_errorz   s   "rP   c              	   C   s   | ddd$ t d d}|jdksJ W d    n1 sw   Y  W d    n1 s-w   Y  | dd1 t  j}t d d}|j|ksIJ W d    n1 sSw   Y  W d    d S W d    d S 1 skw   Y  d S )Nr   r    rG   r#   rI   rJ   r   r#   )r   r7   default_n_jobsr   r   r   test_parallel_n_jobs_none   s   "rT   c              
   C   s   | dddA | dd d" t  }|jdksJ W d    n1 s#w   Y  W d    n1 s2w   Y  W d    d S W d    d S 1 sJw   Y  d S )Nr   r    rQ   r!   rR   )r   r7   r   r   r    test_parallel_config_n_jobs_none   s   "rU   ) r3   joblib._parallel_backendsr   r   r   joblib.parallelr   r   r   r   r	   r
   r   joblib.test.commonr   r   r   joblib.test.test_parallelr   joblib.testingr   r   r   r   r8   r>   rC   rH   rM   rP   rT   rU   r   r   r   r   <module>   s@    $	



