U
    P»{j¤  ã                   @   s†  d dl 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lmZ d dlmZ d dl	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 d dlmZ d dl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)Úparallel_config)Úparallel_backend)ÚParallelÚdelayed)ÚBACKENDS)ÚDEFAULT_BACKEND)ÚEXTERNAL_BACKENDS)ÚLokyBackend)ÚThreadingBackend)ÚMultiprocessingBackend)ÚparametrizeÚraises)ÚnpÚ
with_numpy)Úwith_multiprocessing)Úcheck_memmapÚcontextc                 C   sN   t ƒ j}| dƒ}ztt ƒ jtƒs$t‚W 5 | ¡  X tt ƒ jƒt|ƒksJt‚d S )NÚ	threading)r   Ú_backendÚ
unregisterÚ
isinstancer
   ÚAssertionErrorÚtype)r   ÚdefaultZpb© r   úV/var/www/html/bwave/python/venv/lib/python3.8/site-packages/joblib/test/test_config.pyÚtest_global_parallel_backend   s    
r   c              	   C   sH   dd„ }|t d< z*| dƒ� ttƒ jtƒs.t‚W 5 Q R X W 5 t d= X 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   r   Útest_external_backends!   s    
 r   c              
   C   sˆ   t dd| d��p tdd��Z}t|jtƒs,t‚|jdks:t‚|dd„ tj d¡gd D ƒƒ t	t
 | ¡ƒd	kspt‚W 5 Q R X W 5 Q R X 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>9   s     z2test_parallel_config_no_backend.<locals>.<genexpr>é
   r   )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��v tdddd��\}t|jtƒs0t‚|jdks>t‚ttdd	��& |d
d„ t	j
 
d¡gd D ƒƒ W 5 Q R X W 5 Q R X W 5 Q R X 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,   G   s     z;test_parallel_config_params_explicit_set.<locals>.<genexpr>r-   )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   sB   t t| › d�d��& tf | diŽ� tƒ  W 5 Q R X W 5 Q R X d S )Nz=wrong is not a validr6   Zwrong)r   Ú
ValueErrorr   r   )r:   r   r   r   Útest_parallel_config_bad_paramsJ   s    r=   c                
   C   s`   t tdd�� tdd�� W 5 Q R X W 5 Q R X t tdd�� tdd�� W 5 Q R X W 5 Q R X d S )Nz'only supported when backend is not Noner6   r!   ©Zinner_max_num_threads)Zbackend_param)r   r<   r   r   r   r   r   Ú'test_parallel_config_constructor_paramsS   s    r?   c               
   C   sà   t dd��. tƒ } t| jtt ƒs&t‚| jdks4t‚W 5 Q R X t dd��@ t dd��* tƒ } t| jtƒslt‚| jdkszt‚W 5 Q R X W 5 Q R X t dd��> t dd��( tƒ } | j	dksºt‚| jdksÈt‚W 5 Q R X W 5 Q R X d S )Nr    ©r#   r   ©Úbackendéd   )Úverbose)
r   r   r   r   r   r   r   r#   r
   rD   )r3   r   r   r   Útest_parallel_config_nested_   s    "rE   rB   Úmultiprocessingr   c              	   C   s(   t tdd�� | |dd� W 5 Q R X d S )Nz#does not acc.*inner_max_num_threadsr6   r!   r>   )r   r   )r   rB   r   r   r   Ú1test_threadpool_limitation_in_child_context_erroru   s    rG   c              
   C   s‚   | ddd��* t d d��}|jdks(t‚W 5 Q R X W 5 Q R X | dd��2 t ƒ j}t d d��}|j|ksjt‚W 5 Q R X W 5 Q R X d S )Nr   r    ©rB   r#   r@   rA   ©r   r#   r   )r   r3   Zdefault_n_jobsr   r   r   Útest_parallel_n_jobs_none€   s    "rJ   c                 C   sT   | ddd��> | dd d��& t ƒ �}|jdks2t‚W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr   r    rH   r!   rI   )r   r3   r   r   r   Ú test_parallel_config_n_jobs_noneŽ   s    rK   ) r0   Zjoblib.parallelr   r   r   r   r   r   r   Zjoblib._parallel_backendsr	   r
   r   Zjoblib.testingr   r   Zjoblib.test.commonr   r   r   Zjoblib.test.test_parallelr   r   r   r4   r9   r=   r?   rE   rG   rJ   rK   r   r   r   r   Ú<module>   sN   


 ÿ
