U
    Nvf 	                     @   s6  d Z ddlZddlZddlZddlmZ ddlmZmZ zddl	Z	W n e
k
r\   dZ	Y nX eedZzddlZdd ZW n  e
k
r   dd ZdZY nX z dd	lmZ d
d Zdd ZW n$ e
k
r   dd Zd ZZY nX dd ZeedkddZeejd ddZee	dkddZee	dk	ddZdS )z
Small utilities for testing.
    N)mp)SkipTestskipifpypy_version_infoc                 C   s   | S )*A decorator to skip tests requiring numpy. funcr   r   6/tmp/pip-unpacked-wheel-dylwa62s/joblib/test/common.py
with_numpy   s    r   c                 C   s   dd }|S )r   c                   S   s   t dd S )NzTest requires numpyr   r   r   r   r
   my_func   s    zwith_numpy.<locals>.my_funcr   )r	   r   r   r   r
   r      s    )memory_usagec                 C   s   | S )4A decorator to skip tests requiring memory_profiler.r   r   r   r   r
   with_memory_profiler)   s    r   c                 O   s*   t   t| ||fdd}t|t| S )z)Compute memory usage when executing func.gMbP?)interval)gccollectr   maxmin)r	   argskwargsZmem_user   r   r
   memory_used-   s    r   c                 C   s   dd }|S )r   c                   S   s   t dd S )NzTest requires memory_profiler.r   r   r   r   r
   
dummy_func6   s    z(with_memory_profiler.<locals>.dummy_funcr   )r	   r   r   r   r
   r   4   s    c                  C   s    t rdd l} |   |   d S )Nr   )IS_PYPYr   r   )r   r   r   r
   force_gc_pypy=   s    r   zNeeds multiprocessing to run.)reasonz/dev/shmz5This test requires a large /dev/shm shared memory fs.zNeeds lz4 compression to runz$Needs lz4 not being installed to run)__doc__osr   sysZjoblib._multiprocessing_helpersr   Zjoblib.testingr   r   Zlz4ImportErrorhasattrr   Znumpynpr   Zmemory_profilerr   r   r   r   Zwith_multiprocessingpathexistsZwith_dev_shmZwith_lz4Zwithout_lz4r   r   r   r
   <module>   sJ   


  