o
    bi	                     @   s   d dl Z d dlZd dlmZ d dlmZmZmZ d dlZ	d dl
Z
e jddZe jddZ	dd	eeeeeef   fd
dZ	dd	eeeeeef   fddZedd ZdS )    N)contextmanager)ListOptionalTupleTESTS_TO_RUN TESTS_TO_SKIP   
   returnc                 C   s(  t r	t | vr	d gS trt| v rd gS t| t }d}t | dk r4|  |d7 }t | dk s%|d d }g }tdD ]5}t }d}t | dk rft|D ]}|  qT||7 }t | dk sPt }	||| |	|   q@t|}
t	|}t
| dt|
ddt|d | |
|fgS Nr   r	   r
         z
per secondz+-filter_patternskip_patterntimesleepperf_counterrangeappendnpmeanstdprintround)namefn
multiplierwarmup_time_secstartcountstepstats_endr   sd r'   [/home/ubuntu/.local/lib/python3.10/site-packages/ray/_private/ray_microbenchmark_helpers.pytimeit   s6   


r)   c                    s6  t r
t | vr
d gS trt| v rd gS t| t }d}t | dk r8| I d H  |d7 }t | dk s&|d d }g }tdD ]8}t }d}t | dk rmt|D ]}| I d H  qX||7 }t | dk sTt }	||| |	|   qDt|}
t	|}t
| dt|
ddt|d | |
|fgS r   r   )r   async_fnr   r   r    r!   r"   r#   r$   r%   r   r&   r'   r'   r(   asyncio_timeit3   s8   


r+   c                  k   s2    t jdi |  z
d V  W t   d S t   w )Nr'   )rayinitshutdown)	init_argsr'   r'   r(   ray_setup_and_teardownV   s
   r0   )r	   r
   )osr   
contextlibr   typingr   r   r   numpyr   r,   environgetr   r   strfloatr)   r+   r0   r'   r'   r'   r(   <module>   s$    
$
#