
    >ie/              
         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mZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ 	 d dlZn# e$ r dZY nw xY w	 d dlZn# e$ r dZY nw xY w 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
j!        "                    d          d             Z#e
j!        "                    d          d             Z$d Z%e
j!        &                    de e
j'        d e
j!        "                    d                    eg          d             Z(e
j!        "                    d          d             Z)e
j!        "                    d          d             Z*e
j!        "                    d          d              Z+e
j!        "                    d          e
j!        "                    d          d!                         Z,e
j!        "                    d          d"             Z-e
j!        "                    d          d#             Z.e
j!        "                    d          e
j!        "                    d          d$                         Z/e
j!        "                    d          d%             Z0e
j!        "                    d          d&             Z1e
j!        "                    d          d'             Z2dS )(    )annotationsN)addmul)default_timer)CacheProfilerProfilerResourceProfiler)BOKEH_VERSION)get)applytmpfile)slowadd      abcd)r   r   r   r   er   r   r   c                    t           5  t                      } t          t          d          }d d d            n# 1 swxY w Y   |dk    sJ t           j        | cxk     rt           j        k     sn J t          t           j        d           }d |D             }|g dk    sJ d |D             }|t          dd	ft          dd	ft          d
dfgk    sJ t           
                                 t           j        g k    sJ d S )Nr      c                    | j         S Nkey)r   s    Dlib/python3.11/site-packages/dask/diagnostics/tests/test_profiler.py<lambda>ztest_profiler.<locals>.<lambda>'   s    15     r   c                    g | ]	}|j         
S  r   .0is     r   
<listcomp>z!test_profiler.<locals>.<listcomp>(   s    %%%aAE%%%r   )r   r   r   c                    g | ]	}|j         
S r!   )taskr"   s     r   r%   z!test_profiler.<locals>.<listcomp>*   s    '''QV'''r   r   r   r   r   )profr   r   dsk
start_timeend_timesortedresultsr   r   clear)in_context_timeout	prof_datakeystaskss        r   test_profilerr4   !   sL   	  '//#smm               !8888?_<<<<t}<<<<<<t|999I%%9%%%D???""""''Y'''Ec3_sCoS#GGGGGJJLLL<2s   $8<<c                 r   d } | ddf| ddf| ddfd}t          j        t                    5  t          5  t	          |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          d	 t          j        D                       sJ t          t          j                  dk    sJ d S )
Nc                    | |z  S r   r!   xys     r   r   z1test_profiler_works_under_error.<locals>.<lambda>1   s
    q1u r   r   r8   r   r9   r   )r8   r9   zr:   c              3  <   K   | ]}t          |          d k    V  dS    N)len)r#   vs     r   	<genexpr>z2test_profiler_works_under_error.<locals>.<genexpr>8   s,      11qs1vv{111111r   )
contextlibsuppressZeroDivisionErrorr(   r   allr-   r>   )divr)   s     r   test_profiler_works_under_errorrF   0   sB   

Ca3Q-sCm
D
DC		.	/	/   	 	SMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               11DL11111111t|!!!!!!s4   A(AA(A	A(A	A((A,/A,c                 V   t           5  t          t          d           d d d            n# 1 swxY w Y   t          t           j                  } t
          ddft
          ddfd}t           5  t          |d           d d d            n# 1 swxY w Y   t          t           j                  }t           5  t          t          d           t          |d           t          t          d           d d d            n# 1 swxY w Y   t          t           j                  | |z   | z   k    sJ d S )Nr   r   r   r8   r7   r9   )r(   r   r)   r>   r-   r   )ndsk2ms      r   test_two_getsrK   <   s   	  C              DLAq!Cc?33D	  D#              DLA	  CD#C              
 t|A	))))))s0   *..*BBB2;C99C= C=z
not psutilc                    t          d          5 } t                      }t          t          d           d d d            n# 1 swxY w Y   | j        }t          |          dk    sJ t          d |D                       sJ | j        |cxk     r| j        k     sn J | 	                                rJ | 
                                 | j        g k    sJ |                                  | 	                                rJ | 5  t          t          d           d d d            n# 1 swxY w Y   t          | j                  dk    sJ d S )N{Gz?dtr   r   c              3  f   K   | ],}t          |t                    ot          |          d k    V  -dS    N
isinstancetupler>   r"   s     r   r@   z)test_resource_profiler.<locals>.<genexpr>V   ;      EEz!U##3A!EEEEEEr   )r	   r   r   rI   r-   r>   rD   r*   r+   _is_runningr.   close)rprofr/   r-   s      r   test_resource_profilerrZ   O   s   	T	"	"	" e'//D#               mGw<<!EEWEEEEEEEEo>>>>>>>>>>   """""	KKMMM=B 
KKMMM  """"" 
  D#              u}!!!!!!s#   $AAAD##D'*D'c                    t          d          5 } t          t          d           t          | j                  dk    sJ t          t          d           d d d            n# 1 swxY w Y   | j        }t          d |D                       sJ |                                  |                                  t          t          d           t          | j                  dk    sJ t          t          d           |                                  | j        }t          d |D                       sJ | 	                                 | 
                                rJ d S )NrM   rN   r   r   c              3  f   K   | ],}t          |t                    ot          |          d k    V  -dS rQ   rS   r"   s     r   r@   z7test_resource_profiler_multiple_gets.<locals>.<genexpr>p   rV   r   c              3  f   K   | ],}t          |t                    ot          |          d k    V  -dS rQ   rS   r"   s     r   r@   z7test_resource_profiler_multiple_gets.<locals>.<genexpr>z   rV   r   )r	   r   rI   r>   r-   rD   r.   register
unregisterrX   rW   )rY   r-   s     r   $test_resource_profiler_multiple_getsr`   i   s   	T	"	"	" eD#5=!!Q&&&&D#               mGEEWEEEEEEEE	KKMMM	NNcNNNu}!!!!cNNN	mGEEWEEEEEEEE	KKMMM  """""""s   AA""A&)A&c                    t                      5 } t                      }t          t          d           d d d            n# 1 swxY w Y   | j        }t          d |D                       sJ | j        |cxk     r| j        k     sn J |                                  | j        g k    sJ dgfd}t          |          5 } t          t          d           d d d            n# 1 swxY w Y   | j        }d         t          |          k    sJ d         |d         j
        k    sJ | j        dk    sJ t          |d          j        dk    sJ d S )	Nr   c              3  f   K   | ],}t          |t                    ot          |          d k    V  -dS r<   rS   r"   s     r   r@   z&test_cache_profiler.<locals>.<genexpr>   rV   r   r   c                4    dxx         dz  cc<   d         S )Nr   r   r!   )resticss    r   nbytesz#test_cache_profiler.<locals>.nbytes   s!    Q1Awr   rf   foo)metricmetric_name)r   r   r   rI   r-   rD   r*   r+   r.   r>   ri   _metric_name)cprofr/   r-   rf   re   s       @r   test_cache_profilerrm      s   	 E'//D#               mGEEWEEEEEEEEo>>>>>>>>>>	KKMMM=B3D     
v		 %D#               mG8s7||####8wr{)))))))))E:::G5PPPPPPs#   $A  AA C""C&)C&profilerc                 "    t          d          S )NrM   rN   )r	   r!   r   r   r   r      s    $--- r   )marksc                `    |             }	 |                                  t          t          d           t          |j                  }|dk    sJ t          t          d           t          |j                  |k    sJ 	 |                                 d S # |                                 w xY w)Nr   r   )r^   r   rI   r>   r-   r_   )rn   r(   rH   s      r   test_registerrr      s     8::DD#1uuuuD#4<  1$$$$$s   A4B 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 d S )Nr   )unquoter   r   rR   r   r   r   r   r   r   rR   )"dask.diagnostics.profile_visualizert   dict)rt   t	task_dasks      r   test_unquoterz      s    ::::::aa  Aa3(S!H56I79""""iiaa((Aiii(3(S!H=>I79""""		A		I79""""""r   c            
     \   ddl m}  h d} | t          ddf|          dk    sJ  | t          t          ddff|          dk    sJ d} | t          dd	t          ddfgf|          |k    sJ  | t          d
f|          dk    sJ t	           | t          t          |          dz  f|                    dk     sJ  | t          t          |          dz  f|          dk    sJ  | t          ddt          ddgfddgdz  f|          dk    sJ  | t          ddt          dt          g dfgfddgf|          dk    sJ dd}t          |t          dd	gft          ddd	ggddggff} | ||          dk    sJ t          |t          dd	gft          dddggddggff} | ||          dk    sJ d S )Nr   )pprint_task>   r   r   r   r   r   r   r   z	add(_, *)zadd(add(_, *))zsum([*, _, add(_, *)])r   )r   r   rR      r=   r      zsum(*)d   zsum([_, _, _, ...])r   r}   r=   r   zsum([*, *, sum([_, *]), ...])ru   z$sum([*, *, sum([_, sum(...)]), ...])r!   rR   c                2    | |z   t          |          z   |z   S r   )sum)wr8   r9   r:   s       r   rh   ztest_pprint_task.<locals>.foo   s    1us1vv~!!r   r9   r:   r   zfoo(_, _, y=[_, _], z=_)zfoo(_, _, y=[_, *], z=*))r!   rR   )	rv   r|   r   r   r>   listr   rU   rw   )r|   r2   rd   rh   r'   s        r   test_pprint_taskr      sf   >>>>>>$$$D;S!}d++{::::;c3]+T226FFFFF
"C;asCm45t<<CCCC;23T::hFFFF{{Cdc!12D99::S@@@@;T$ZZ#-.559NNNNNS1a#Qx!Q7#=>EE*	+ 	+ 	+ 	+ 	S1a#c999-='>!?AFGNN1	2 	2 	2 	2
" " " " 3c
+dcC:5Fc
4S-TUD;tT""&@@@@@3c
+dcC8_sAh4O-PQD;tT""&@@@@@@@r   c                    t           5  t          t          d           d d d            n# 1 swxY w Y   t                               dddddd          } t	                      j        dk     r| j        dk    sJ | j        dk    sJ n| 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                                            t'          j        d          5 }t                               dd           d d d            n# 1 swxY w Y   |rJ d S )Nr     ,  hoverNot the defaultFwidthheighttoolstitleshowsaverR   r   r   Trecordr   r   )r(   r   r)   	visualizer
   major
plot_widthplot_heightr   r   r>   r   rT   bokehmodels	HoverToolr   textr.   warningscatch_warnings)pr   s     r   test_profiler_plotr      s   	  C               	 	 	A q  |s""""}#####w#~~~~x3qw<<1agaj%,"8999997<,,,,,JJLLL		 	-	-	- /E.../ / / / / / / / / / / / / / /s   *..'EEEc                    t          d          5 } t          t          d           d d d            n# 1 swxY w Y   |                     dddddd	          }t	                      j        d
k     r|j        dk    sJ |j        dk    sJ n|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 |                                  g dgfD ]}|| _        d| _        d| _        t-          j        d          5 }|                     dd          }d d d            n# 1 swxY w Y   |rJ |j        j        dk    sJ |j        j        dk    sJ |j        j        dk    sJ |j        j        dk    sJ |j        d         j        dk    sJ |j        d         j        dk    sJ d S )NrM   rN   r   r   r   r   r   Fr   rR   r   r   )      ?r   r   g        r   Tr   r   r   memory)r	   r   rI   r   r
   r   r   r   r   r   r>   r   rT   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""""}#####w#~~~~x3qw<<1agaj%,"8999997<,,,,, 
KKMMM& 5 5$D111 	8VU77A	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8y!####y}!!!!y!####y}####)/14444)-444445 5s   377E&&E*	-E*	c                    t          d          5 } t          t          d           d d d            n# 1 swxY w Y   |                     dddddd	          }t	                      j        d
k     r|j        dk    sJ |j        dk    sJ n|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 |                                  t+          j        d          5 }|                     dd           d d d            n# 1 swxY w Y   |rJ d S )Nnon-standardrj   r   r   r   r   r   Fr   rR   r   r   zCache Size (non-standard)Tr   r   )r   r   r)   r   r
   r   r   r   r   r   r>   r   rT   r   r   r   r   r   axis
axis_labelr.   r   r   )rl   r   r   s      r   test_cache_profiler_plotr   (  s   	>	2	2	2 eC               	 	 	A q  |s""""}#####w#~~~~x3qw<<1agaj%,"8999997<,,,,,6!9#>>>>>	KKMMM		 	-	-	- 0U///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   377>E""E&)E&c                    t          d          5 } t          t          d           d d d            n# 1 swxY w Y   t          j        t
          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )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   E  s    	>	2	2	2 eC              	~Y	7	7	7 ( ('''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   377A==BBc                    ddl m}  t          d          5 }t          5  t	          t
          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y    | t          |gdddd	          }t                      j        d
k     rd |j        d         j        D             }nd |j        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                                           |                                  | t          |gdd           d S )Nr   )r   rM   rN   r   2   r   F)
label_sizer   r   r   rR   c                    g | ]
}|d          S r   r!   r#   rs     r   r%   z&test_plot_multiple.<locals>.<listcomp>[  s    888A1Q4888r   r   c                    g | ]
}|d          S r   r!   r   s     r   r%   z&test_plot_multiple.<locals>.<listcomp>]  s    ,,,A1Q4,,,r   r   zTime (s)r   )rv   r   r	   r(   r   rI   r
   r   childrenr>   r   r   xaxisr   r.   )r   rY   r   figuress       r   test_plot_multipler   M  s    =<<<<<	T	"	"	" e 	 	cNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               			u",=EPU	 	 	A
 q  88A!7888,,,,,w<<11: $555551:A)1111:###1:A)Z7777JJLLL	KKMMMItUm%e444444s3   AAAA	AA		AAAc                    t          d          5 } t          5  t          t          d           d d d            n# 1 swxY w Y   t                              d|            t
          j                            |           sJ t          |           5 }d|	                                
                                v sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nhtmlr   F)r   filename)r   r(   r   r)   r   ospathexistsopenreadlower)fnfs     r   test_saves_filer   i  s   	 .B 	 	SMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	EB///w~~b!!!!!"XX 	.QVVXX^^-------	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. . . . . . . . . . . . . . . . . .sS   C!:C!>	C!>	AC!+C	=C!	C	C!C	C!!C%(C%c                 2   t          d          5 } t          5  t          t          d           d d d            n# 1 swxY w Y   t	          j        t                    5 }t                              d|            d d d            n# 1 swxY w Y   dt          |          cxk    rdk    sn J dt          |d         j
                  v sJ t          |          dk    rd	t          |d
         j
                  v sJ d d d            d S # 1 swxY w Y   d S )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   v  s   	 B 	 	SMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \-(( 	5FNNN444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 CKK$$$$1$$$$$$9SAS=T=TTTTT v;;!Dq	!I I                     sS   D:D>	D>	DB;DB	DB	A0DDD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          ||                     |fd|D             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 d S )Nr   )Blues5Blues256Viridis)
get_colors   Bluesr=   c                     g | ]
}|         S r!   r!   )r#   r$   lks     r   r%   z#test_get_colors.<locals>.<listcomp>  s    )))aBqE)))r   )r   r   r   r   r   r   BrBGr   r   r   r      )bokeh.palettesr   r   r   rv   r   r   rangesetr>   rw   zip)r   r   r   r   funcscmapr   s         @r   test_get_colorsr     s   8888888888======rOOE:gu%%Dt99s8}}$$$$s4yy>>RqNNE:gu%%D	c%  	!	!B))))5)))))))E:fe$$Ds4yy>>QsE:i''Ds4yy>>S    sE:i''Ds4yy>>SWS\!2!233333333r   )3
__future__r   rA   r   r   operatorr   r   timeitr   r   dask.diagnosticsr   r   r	   rv   r
   dask.threadedr   
dask.utilsr   r   dask.utils_testr   r   ImportErrorpsutilr(   r)   rI   r4   rF   rK   markskipifrZ   r`   rm   parametrizeparamrr   rz   r   r   r   r   r   r   r   r   r   r!   r   r   <module>r      s   " " " " " "     				                       F F F F F F F F F F < < < < < <       % % % % % % % % # # # # # #LLLL   EEEMMMM   FFF xzzAS#sO3S/cSVXXQgsC011  	" 	" 	"* * *& L!!" " "!"2 L!!# # "!#,Q Q Q6 --V[5G5G5U5U	
 	
 	
 		 	
 
	 	
 K  # # ! #  K  A A ! A> K    ! 6 K  L!!$5 $5 "! ! $5N K    ! 8 K  ( ( ! ( K  L!!5 5 "! ! 54 K  	. 	. ! 	. K    ! $ K  4 4 ! 4 4 4s$   
A AAA" "A,+A,