o
    ?Hh 	                     @   s0  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
y-   dZ	Y nw eedZz
ddlZdd ZW n e
yL   dd ZdZY nw zdd	lmZ d
d Zdd ZW n e
yn   dd Zd ZZY nw dd Zeedu ddZeejd ddZee	du ddZee	duddZdS )z
Small utilities for testing.
    N)mp)SkipTestskipifpypy_version_infoc                 C      | S )*A decorator to skip tests requiring numpy. funcr   r   R/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/joblib/test/common.py
with_numpy      r   c                 C      dd }|S )r   c                   S      t d)NzTest requires numpyr   r   r   r   r   my_func      zwith_numpy.<locals>.my_funcr   )r
   r   r   r   r   r         )memory_usagec                 C   r   )4A decorator to skip tests requiring memory_profiler.r   r	   r   r   r   with_memory_profiler)   r   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kwargsmem_user   r   r   memory_used-   s   r   c                 C   r   )r   c                   S   r   )NzTest requires memory_profiler.r   r   r   r   r   
dummy_func6   r   z(with_memory_profiler.<locals>.dummy_funcr   )r
   r    r   r   r   r   4   r   c                  C   s$   t rdd l} |   |   d S 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   sysjoblib._multiprocessing_helpersr   joblib.testingr   r   lz4ImportErrorhasattrr!   numpynpr   memory_profilerr   r   r   r"   with_multiprocessingpathexistswith_dev_shmwith_lz4without_lz4r   r   r   r   <module>   sN    


