a
    Žù»j‡  ã                   @   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   ú=E:\soccer\ml_env\Lib\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 s„0    Y  W d   ƒ n1 s¢0    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 s€0    Y  W d   ƒ n1 sž0    Y  W d   ƒ n1 s¼0    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 s„0    Y  W d   ƒ n1 s¢0    Y  t tdd��@ ttt dd�� W d   ƒ n1 sà0    Y  W d   ƒ n1 sþ0    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ƒs€J ‚| jdksŽJ ‚W d   ƒ n1 s¢0    Y  W d   ƒ n1 sÀ0    Y  t dd��` t dd��4 tƒ } | jdksöJ ‚| 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s’J ‚W d   ƒ n1 s¦0    Y  W d   ƒ n1 sÄ0    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 s‚0    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>   $	


þ
