U
    f»{j>  ã                	   @   sV   d dl mZ d dlZd dlZd dlZd dlmZ ej ddddddd	g¡d
d„ ƒZ	dS )é    )ÚnullcontextN)Úparallel_funcÚn_jobsé   éÿÿÿÿzloky 2zthreading 3zmultiprocessing 4c           	   	   C   sÀ   t  d¡}t dd¡ ¡ dkr(t  d¡ dd„ }t| tƒrd|  ¡ \}} t	| ƒ } }| 
|| ¡}d} n,tƒ }| dk	rŒ| d	k rŒt ¡ d
 |  }nd
}|� t|| ƒ\}}}W 5 Q R X ||ks¼t‚dS )zTest Parallel wrapping.ÚjoblibZMNE_FORCE_SERIALÚ )ÚtrueÚ1zMNE_FORCE_SERIAL cannot be setc                 S   s   | d S )Né   © )Úxr   r   úV/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/tests/test_parallel.pyÚfun   s    ztest_parallel_func.<locals>.funNr   r   )ÚpytestZimportorskipÚosÚgetenvÚlowerÚskipÚ
isinstanceÚstrÚsplitÚintZparallel_backendr   ÚmultiprocessingÚ	cpu_countr   ÚAssertionError)	r   r   r   ÚbackendZ	want_jobsÚctxÚparallelZp_funZgot_jobsr   r   r   Útest_parallel_func   s     


r   )
Ú
contextlibr   r   r   r   Zmne.parallelr   ÚmarkZparametrizer   r   r   r   r   Ú<module>   s        ÿ