
    bi6*              
      2   d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
Z
d dlmZ d dlmZ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Z	 d dlZ e       ZddeddfeddfeddfdZddeddfdZd Zd Z d Z!e
jD                  jG                  d      d        Z$e
jD                  jG                  d      d        Z%d Z&e
jD                  jO                  de e
jP                  d e
jD                  jG                  d            eg      d        Z)e
jD                  jG                  d      d        Z*e
jD                  jG                  d      d         Z+e
jD                  jG                  d      e
jD                  jG                  d      d!               Z,e
jD                  jG                  d      d"        Z-e
jD                  jG                  d      d#        Z.e
jD                  jG                  d      e
jD                  jG                  d      d$               Z/e
jD                  jG                  d      d%        Z0e
jD                  jG                  d      d&        Z1e
jD                  jG                  d      d'        Z2y# e$ r dZY 5w xY w# e$ r dZY >w xY w)(    )annotationsN)addmul)default_timer)Task)CacheProfilerProfilerResourceProfiler)BOKEH_VERSION)get)tmpfile)slowadd      abcd)r   r   r   r   er   r   r   c                 0   t         5  t               } t        t        d      }d d d        dk(  sJ t         j                   cxk  rt         j
                  k  sJ  J t        t         j                  d       }|D cg c]  }|j                   }}|g dk(  sJ |D cg c]  }|j                   }}t        |      dk(  sJ t        d |D              sJ t         j                          t         j                  g k(  sJ y # 1 sw Y   xY wc c}w c c}w )Nr      c                    | j                   S Nkey)r   s    _/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/diagnostics/tests/test_profiler.py<lambda>ztest_profiler.<locals>.<lambda>(   s
    155     r   )r   r   r      c              3  <   K   | ]  }t        |t                y wr   )
isinstancer   ).0ts     r   	<genexpr>z test_profiler.<locals>.<genexpr>-   s     2qz!T"2s   )profr   r   dsk
start_timeend_timesortedresultsr   tasklenallclear)in_context_timeout	prof_dataikeystaskss         r   test_profilerr6   "   s    	 '/#sm !8O8??_<t}}<<<<<t||9I$%aAEE%D%?"""&'QVV'E'u:??2E2222JJL<<2  &'s   D=DDDc                 R   d } | ddf| ddf| ddfd}t        j                  t              5  t        5  t	        |d       d d d        d d d        t        d	 t        j                  D              sJ t        t        j                        dk(  sJ y # 1 sw Y   RxY w# 1 sw Y   VxY w)
Nc                    | |z  S r    xys     r   r   z1test_profiler_works_under_error.<locals>.<lambda>3   s
    q1u r   r   r;   r   r<   r   )r;   r<   zr=   c              3  8   K   | ]  }t        |      d k(    yw   N)r-   )r#   vs     r   r%   z2test_profiler_works_under_error.<locals>.<genexpr>:   s     1qs1v{1s   )
contextlibsuppressZeroDivisionErrorr&   r   r.   r+   r-   )divr'   s     r   test_profiler_works_under_errorrF   2   s    
Ca3Q-sCm
DC			.	/  	SM	 1DLL1111t||!!!		 	 s"   BB BB	BB&c                    t         5  t        t        d       d d d        t        t         j                        } t
        ddft
        ddfd}t         5  t        |d       d d d        t        t         j                        }t         5  t        t        d       t        |d       t        t        d       d d d        t        t         j                        | |z   | z   k(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   FxY w)Nr   r   r   r;   r:   r<   )r&   r   r'   r-   r+   r   )ndsk2ms      r   test_two_getsrK   >   s    	 CDLLAq!Cc?3D	 D#DLLA	 CD#C
 t||A	)))   s#   C C,-C8 C),C58Dz
not psutilc                 N   t        d      5 } t               }t        t        d       d d d         j                  }t        |      dkD  sJ t        d |D              sJ | j                  cxk  r| j                  k  sJ  J | j                         rJ | j                          | j                  g k(  sJ | j                          | j                         rJ | 5  t        t        d       d d d        t        | j                        dkD  sJ y # 1 sw Y   xY w# 1 sw Y   0xY w)N{Gz?dtr   r   c              3  \   K   | ]$  }t        |t              xr t        |      d k(   & ywr    Nr"   tupler-   r#   r3   s     r   r%   z)test_resource_profiler.<locals>.<genexpr>X   '     Ez!U#3A!3E   *,)r
   r   r   rI   r+   r-   r.   r(   r)   _is_runningr/   close)rprofr0   r+   s      r   test_resource_profilerrZ   Q   s   	T	" e'/D# mmGw<!EWEEEEo>>>>>>   """	KKM==B 
KKM  """ 
 D#u}}!!!+ & s   DDDD$c                 R   t        d      5 } t        t        d       t        | j                        dk(  sJ t        t        d       d d d         j                  }t        d |D              sJ | j                          | j                          t        t        d       t        | j                        dkD  sJ t        t        d       | j                          | j                  }t        d |D              sJ | j                          | j                         rJ y # 1 sw Y   xY w)NrM   rN   r   r   c              3  \   K   | ]$  }t        |t              xr t        |      d k(   & ywrQ   rR   rT   s     r   r%   z7test_resource_profiler_multiple_gets.<locals>.<genexpr>r   rU   rV   c              3  \   K   | ]$  }t        |t              xr t        |      d k(   & ywrQ   rR   rT   s     r   r%   z7test_resource_profiler_multiple_gets.<locals>.<genexpr>|   rU   rV   )r
   r   rI   r-   r+   r.   r/   register
unregisterrX   rW   )rY   r+   s     r   $test_resource_profiler_multiple_getsr`   k   s    	T	" eD#5==!Q&&&D# mmGEWEEEE	KKM	NNcNu}}!!!cN	mmGEWEEEE	KKM  """"% s   ;DD&c                 x   t               5 } t               }t        t        d       d d d         j                  }t        d |D              sJ | j                  cxk  r| j                  k  sJ  J | j                          | j                  g k(  sJ dgfd}t        |      5 } t        t        d       d d d        | j                  }d   t        |      k(  sJ d   |d   j                  k(  sJ | j                  dk(  sJ t        |d      j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   yxY w)	Nr   c              3  \   K   | ]$  }t        |t              xr t        |      d k(   & ywr?   rR   rT   s     r   r%   z&test_cache_profiler.<locals>.<genexpr>   rU   rV   r   c                (    dxx   dz  cc<   d   S )Nr   r   r9   )resticss    r   nbytesz#test_cache_profiler.<locals>.nbytes   s    Q1Awr   rf   foo)metricmetric_name)r   r   r   rI   r+   r.   r(   r)   r/   r-   ri   _metric_name)cprofr0   r+   rf   re   s       @r   test_cache_profilerrm      s.   	 E'/D# mmGEWEEEEo>>>>>>	KKM==B3D 
v	 %D# mmG8s7|###8wr{))))))))E:GG5PPP/   s   D$'D0$D-0D9profilerc                     t        d      S )NrM   rN   )r
   r9   r   r   r   r      s    $- r   )marksc                ,    |        }	 |j                          t        t        d       t        |j                        }|dkD  sJ t        t        d       t        |j                        |kD  sJ 	 |j                          y # |j                          w xY w)Nr   r   )r^   r   rI   r-   r+   r_   )rn   r&   rH   s      r   test_registerrr      sp     :DD#1uuD#4<< 1$$$s   A&B Bz	not bokehc                     ddl m}  dddd}t        ddgddgd	dggf} | |      |k(  sJ g d
ddd}t        dg d
gddgd	dggf} | |      |k(  sJ g d
}g d
} | |      |k(  sJ y )Nr   )unquoter   r   r    r   r   r   r   )r   r   r    )"dask.diagnostics.profile_visualizert   dict)rt   r$   	task_dasks      r   test_unquoterx      s    :aa Aa3(S!H56I9"""aa(Ai(3(S!H=>I9"""AI9"""r   c                    t         5  t        t        d       d d d        t         j                  dddddd      } t	               j
                  dk  r"| j                  dk(  sJ | j                  dk(  s$J | j                  dk(  sJ | j                  dk(  sJ t        | j                        d	k(  sJ t        | j                  d
   t        j                  j                        sJ | j                   j"                  dk(  sJ t         j%                          t'        j(                  d      5 }t         j                  dd       d d d        rJ y # 1 sw Y   7xY w# 1 sw Y   xY w)Nr     ,  hoverNot the defaultFwidthheighttoolstitleshowsaver    r   r   Trecordr   r   )r&   r   r'   	visualizer   major
plot_widthplot_heightr   r   r-   r   r"   bokehmodels	HoverToolr   textr/   warningscatch_warnings)pr   s     r   test_profiler_plotr      s5   	 C 	 	A q ||s"""}}###ww#~~xx3qww<1aggaj%,,"8"899977<<,,,,JJL		 	 	- /E./:v/ */ /s   E(EEE#c                 N   t        d      5 } t        t        d       d d d         j                  dddddd	      }t	               j
                  d
k  r"|j                  dk(  sJ |j                  dk(  s$J |j                  dk(  sJ |j                  dk(  sJ t        |j                        dk(  sJ t        |j                  d   t        j                  j                        sJ |j                   j"                  dk(  sJ | j%                          g dgfD ]  }|| _        d| _        d| _        t-        j.                  d      5 }| j                  dd      }d d d        rJ |j0                  j2                  dk(  sJ |j0                  j4                  dk(  sJ |j6                  j2                  dk(  sJ |j6                  j4                  dk(  sJ |j8                  d   j2                  dk(  sJ |j8                  d   j4                  dk(  rJ  y # 1 sw Y   xY w# 1 sw Y   xY w)NrM   rN   r   rz   r{   r|   r}   Fr~   r    r   r   )      ?r   r   g        r   Tr   r   d   memory)r
   r   rI   r   r   r   r   r   r   r   r-   r   r"   r   r   r   r   r   r/   r+   r(   r)   r   r   x_rangestartendy_rangeextra_y_ranges)rY   r   r+   r   s       r   test_resource_profiler_plotr      s    
T	" eD# 	 	A q ||s"""}}###ww#~~xx3qww<1aggaj%,,"8"899977<<,,,, 
KKM& 5$$D1 	8VU7A	8zyy!###yy}}!!!yy!###yy}}###)//1444)--4445- 4	8 	8s   HHHH$	c                    t        d      5 } t        t        d       d d d         j                  dddddd	      }t	               j
                  d
k  r"|j                  dk(  sJ |j                  dk(  s$J |j                  dk(  sJ |j                  dk(  sJ t        |j                        dk(  sJ t        |j                  d   t        j                  j                        sJ |j                   j"                  dk(  sJ |j$                  d   j&                  dk(  sJ | j)                          t+        j,                  d      5 }| j                  dd       d d d        rJ y # 1 sw Y   IxY w# 1 sw Y   xY w)Nnon-standardrj   r   rz   r{   r|   r}   Fr~   r    r   r   zCache Size (non-standard)Tr   r   )r   r   r'   r   r   r   r   r   r   r   r-   r   r"   r   r   r   r   r   axis
axis_labelr/   r   r   )rl   r   r   s      r   test_cache_profiler_plotr   
  sY   	>	2 eC 	 	A q ||s"""}}###ww#~~xx3qww<1aggaj%,,"8"899977<<,,,,66!9#>>>>	KKM		 	 	- 0U/0:v1 ,0 0s   E%E2%E/2E;c                     t        d      5 } t        t        d       d d d        t        j                  t
        d      5   j                  d       d d d        y # 1 sw Y   @xY w# 1 sw Y   y xY w)Nr   r   r   foo_bar)matchfake)r   )r   r   r'   pytestraisesAttributeErrorr   )rl   s    r   >test_cache_profiler_plot_with_invalid_bokeh_kwarg_raises_errorr   '  s`    	>	2 eC	~Y	7 ('( ( ( (s   AA)A&)A2c                    ddl m}  t        d      5 }t        5  t	        t
        d       d d d        d d d         | t        gdddd	      }t               j                  d
k  r*|j                  d   j                  D cg c]  }|d   	 }}n|j                  D cg c]  }|d   	 }}t        |      dk(  sJ |d   j                  j                  dk(  sJ |d   j                  d   j                  J |d   j                  J |d   j                  d   j                  dk(  sJ t        j                          |j                           | t        |gdd       y # 1 sw Y   6xY w# 1 sw Y   ;xY wc c}w c c}w )Nr   )r   rM   rN   r   2   r}   F)
label_sizer   r   r   r    r   r   zTime (s)r   )ru   r   r
   r&   r   rI   r   r   childrenr-   r   r   xaxisr   r/   )r   rY   r   rfiguress        r   test_plot_multipler   /  sj    =	T	" e 	cN	 		u",=EPU	A
 q !"A!7!78A1Q488!",A1Q4,,w<11:  $55551:A))1111:###1:A))Z777JJL	KKMtUm%e4'	 	  9,s-   E,EE, E9E>E)	$E,,E6c                    t        d      5 } t        5  t        t        d       d d d        t        j	                  d|        t
        j                  j                  |       sJ t        |       5 }d|j                         j                         v sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nhtmlr   F)r   filename)r   r&   r   r'   r   ospathexistsopenreadlower)fnfs     r   test_saves_filer   K  s    	 .B 	SM	 	EB/ww~~b!!!"X 	.QVVX^^----	.. .	 		. 	.. .s:   B<B$AB</#B0B<$B-	)B<0B9	5B<<Cc                    t        d      5 } t        5  t        t        d       d d d        t	        j
                  t              5 }t        j                  d|        d d d        dt              cxk  rdk  sJ  J dt        |d   j                        v sJ t        |      dk(  rd	t        |d
   j                        v sJ d d d        y # 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   y xY w)Nr   r   F)r   	file_pathr   r   z(file_path keyword argument is deprecatedrg   z/`np.bool8` is a deprecated alias for `np.bool_`r   )r   r&   r   r'   r   warnsFutureWarningr   r-   strmessage)r   r   s     r   test_saves_file_path_deprecatedr   X  s    	 B 	SM	 \\-( 	5FNNN4	5 CK$1$$$$$9SASAS=TTTT v;!Dq	!!I    	 		5 	5	 s:   C%C!C%CA'C%C	C%C"	C%%C.c                    ddl m} m}m} ddlm} t        t        d            } |d|      }t        |      t        |      k  sJ t        t        |            dk(  sJ t        t        d            } |d|      }t        t        ||             }||D cg c]  }||   	 c}k(  sJ g d} |d|      }t        t        |            d	k(  sJ t        t        d
            } |d|      }t        t        |            d
k(  sJ t        t        d            } |d|      }t        t        |            t        t        |d               k(  sJ y c c}w )Nr   )Blues5Blues256Viridis)
get_colors   Bluesr@   )r   r   r   r   r   r   BrBGr   r   r   r{      )bokeh.palettesr   r   r   ru   r   listrangesetr-   rv   zip)r   r   r   r   funcscmaplkr3   s           r   test_get_colorsr   k  s1   88=rOEgu%Dt9s8}$$$s4y>RqNEgu%D	c% 	!B5)aBqE))))Efe$Ds4y>QsEi'Ds4y>S   sEi'Ds4y>SWS\!23333 *s   E)3
__future__r   rB   r   r   operatorr   r   timeitr   r   dask._task_specr   dask.diagnosticsr   r	   r
   ru   r   dask.threadedr   
dask.utilsr   dask.utils_testr   r   ImportErrorpsutilr&   r'   rI   r6   rF   rK   markskipifrZ   r`   rm   parametrizeparamrr   rx   r   r   r   r   r   r   r   r   r9   r   r   <module>r      s   "  	        F F <   #
 zAS#sO3S/cSVXQgsC01 	"*& L!" ""2 L!# "#,Q6 -V[[5G5G5U	
 		
	
 K # !#  K  !6 K L!$5 " !$5N K  !8 K ( !( K L!5 " !54 K 	. !	. K  !$ K 4 !4q
  E  Fs$   I= J =JJJJ