
    >ieH                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZmZmZmZ d dlmZmZ d dlmZmZ d dlZd dlmZmZmZmZ d dlZd dl m!Z" d d	l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d d
l7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZDmEZEmFZF  eEd          ZG eEd          ZH eEd          ZI eEd          ZJ eEd          ZKdZLdZMddZNddZOd ZPd ZQd ZRejS        T                    d          d             ZUejS        T                    d          d              ZVejS        T                    d          d!             ZWejS        T                    d          d"             ZXejS        T                    d          d#             ZYejS        T                    d          d$             ZZejS        T                    d          d%             Z[ejS        T                    d          d&             Z\ejS        T                    d          d'             Z]ejS        T                    d          d(             Z^ejS        T                    d          d)             Z_d* Z`d+ Zad, Zbd- Zcd. ZdejS        T                    d/          d0             ZeejS        T                    d/          d1             ZfejS        T                    d/          d2             ZgejS        T                    d/          d3             ZhejS        T                    d4          d5             ZiejS        T                    d/          d6             Zjd7 Zkd8 Zld9 ZmejS        T                    d          d:             Znd; Zod< Zpd= Zqd> ZrejS        s                    d?eeeeg          d@             Zteju         G dA dB                      Zveju         G dC dD                      ZwdE ZxdF ZyejS        T                    d          dG             ZzejS        s                    dHddIdJdKdLdMdMg dNi de{e|g          dO             Z}dP Z~ejS        T                    d          ejS                            dQ          dR                         ZejS        T                    dS          ejS        s                    dTdU          dV                         ZejS        T                    ej        dWk    oej        dd         dXk    dYZ          d[             Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Z G dd dee$          Zdf Zdg ZejS        T                    dh          di             ZejS        T                    dh          dj             ZejS        T                    dh          dk             ZejS        T                    d4          dl             ZejS        T                    d4          dm             ZejS        T                    d4          dn             ZejS        T                    d4          do             ZejS        T                    d4          dp             ZejS        T                    d4          dq             ZejS        T                    d4          dr             ZejS        T                    ds          dt             ZejS        T                    d4          du             ZejS        T                    d4          dv             ZejS        T                    dh          dw             ZejS        T                    dh          dx             Zdy ZejS        T                    dh          ejS        T                     eej        j1                  dzZ          ejS                            ej        dWk    d{d|}          d~                                     ZejS        T                    dh          ejS        T                     eej        j1                  dzZ          d                         ZejS        T                    dh          ejS        T                     eej        j1                  dzZ          d                         Zd Zd Zd Zd Zd Zd Zd Zd Zd ZejS        s                    ddJdeLfg          d             ZejS        s                    ddJi dJfdJddidJfdJdJdidfdeLfddideLffg          d             Zd Zd ZejS        T                    dh          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z G d de          Zd Zd ZejS                            dd          ejS        j        ejS        s                    dddg          d                                     Zd Zd Zd Zd ZejS        s                    dd          d             ZdS )    )annotationsNOrderedDict)Executor)EnumFlagIntEnumIntFlag)addmul)
NamedTupleUnion)composecurrymergepartial)DaskMethodsMixin	clone_keycollections_to_dskcomputecompute_as_if_collectionfunction_cacheget_collection_namesget_name_from_keyget_scheduleris_dask_collectionnamed_schedulersnormalize_functionnormalize_tokenoptimizepersistreplace_name_in_keytokenizeunpack_collections	visualize)literal)Delayeddelayed)Profiler)HighLevelGraph)tmpdirtmpfile)decimport_or_noneinc
dask.arraydask.dataframenumpyzscipy.sparsepandas)g333333?foo)   h2   c                    d S N abcs      4lib/python3.11/site-packages/dask/tests/test_base.pyf1r@   =       D       c                    d S r9   r:   r;   s      r?   f2rE   A   rA   rB   c                    d S r9   r:   r<   s    r?   f3rH   E   rA   rB   c                    t          t                    sJ t          d           sJ t          t          t          d                    t          t          t          d                    k    sJ t          t          t          d                    t          t          t          d                    k    sJ t          t          t          d                    t          t          t          d                    k    sJ t          t	          t          t
                              t          t	          t          t
                              k    sJ t          t	          t          t
                              t          t	          t          t                              k    sJ t          t          t                              t          t          t                              k    sJ t          t          t                              t          t          t                              k    sJ t          t          t          d                    t          t          t          d                    k    sJ t          t          t          d                    t          t          t          d                    k    sJ d S )Nc                    | S r9   r:   rG   s    r?   <lambda>z)test_normalize_function.<locals>.<lambda>L   s     rB   rC   )r=   r5   r7   )r   rE   r   r@   r   rH   r   r:   rB   r?   test_normalize_functionrL   I   s   b!!!!!kk*****gbA...//3EgbTUFVFVFV3W3WWWWWgbA...//3EgbTUFVFVFV3W3WWWWWgbA...//3EgbTUFVFVFV3W3WWWWWgb"oo..2DWRQS__2U2UUUUUgb"oo..2DWRQS__2U2UUUUUeBii((,>uRyy,I,IIIIIeBii((,>uRyy,I,IIIIIeB!nnn--1CE"PQNNN1S1SSSSSeB!nnn--1CE"PQNNN1S1SSSSSSSrB   c                 `    d} t          t          |           t          t          f          sJ d S )Nr7   rC   r5   )
isinstancer#   strbytesrG   s    r?   test_tokenizerR   ^   s-    AhqkkC<0000000rB   znot npc                 
   t          t          j                            d                              d                    t          t          j                            d                              d                    k    sJ d S )N    )r#   nprandomRandomStaterandom_sampler:   rB   r?   .test_tokenize_numpy_array_consistent_on_valuesrZ   c   sx    BI))$//==dCCDD
	d##11$77I I      rB   c                     t          t          j                            d                              d                     d S )N   i2dtype)r#   rV   rW   astyper:   rB   r?   /test_tokenize_numpy_array_supports_uneven_sizesra   j   s7    RYa  ''d'3344444rB   c                 p    t          t          j                            d          d d d                    d S )N   rC   )r#   rV   rW   r:   rB   r?   'test_tokenize_discontiguous_numpy_arrayrd   o   s1    RYa  1%&&&&&rB   c                 Z    t          t                              dgd                     d S )Nz2000-01-01T12:00:00zM8[ns]r^   r#   rV   arrayr:   rB   r?   test_tokenize_numpy_datetimerh   t   s*    RXX,-XX>>?????rB   c                    t          t                              dd                    t          t                              dd                    k    sJ t          t                              dgddg          d                   t          t                              dgddg          d                   k    sJ d S )N      ?f8r^   r7   rC   )r<   i4)r=   i8r   rf   r:   rB   r?   test_tokenize_numpy_scalarro   y   s    BHHSH--..(288Ct8;T;T2U2UUUUU
&+{!;<<Q? 	"((F8K+E(FFqI	J	JK K K K K KrB   c                    t                               dd i          5  t          t                               d                    t          t                               d                    k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nallc                    dS )Nr4   r:   xs    r?   rK   z7test_tokenize_numpy_scalar_string_rep.<locals>.<lambda>   s    U rB   )	formatterr7   rC   )rV   printoptionsr#   rg   r:   rB   r?   %test_tokenize_numpy_scalar_string_reprw      s     
E??#;	<	< > >$$!(=(======> > > > > > > > > > > > > > > > > >s   AB  BBc                    t                               g dt                    } t          |           t          |           k    sJ t          t                               g dt                              t          t                               g dt                              k    sJ t          t                               g dt                              t          t                               g dt                              k    sJ  G d d          }t                               dd |gt                    }t          |          t          |          k    sJ t          j                            dd	i          5  t          j        t          d
          5  t          |           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)r<   aaaaar^   )r<   Nrz   ))r7   r<   )r7   N)r7   rz   c                      e Zd ZdS );test_tokenize_numpy_array_on_object_dtype.<locals>.NoPickleN__name__
__module____qualname__r:   rB   r?   NoPickler|              rB   r   r<   tokenize.ensure-deterministicT"cannot be deterministically hashedmatch)
rV   rg   objectr#   daskconfigsetpytestraisesRuntimeError)r<   r   rt   s      r?   )test_tokenize_numpy_array_on_object_dtyper      sS   
###622AA;;(1++%%%%BHH///vH>>??8
###622D D     
222&AA 	"((<<<F(KK	L	LM M M M
        	#tX&f55AA;;(1++%%%%	94@	A	A  ]</STTT 	 	QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   GF:.G:F>	>GF>	GGGc                b   t           | j        d                    }t          |d          5 }|                    d           d d d            n# 1 swxY w Y   t          |d          5 }t                              |t          j        ddd          }t                              |t          j        ddd          }t          |          t          |          k    sJ |d	d
         }|d	d
         }t          |          t          |          k    sJ 	 d d d            d S # 1 swxY w Y   d S )N	demo_datawbs
   ashekwichtrbrr      )r_   modeoffsetshaper7   )rP   joinopenwriterV   memmapuint8r#   )r+   fnfmmap1mmap2sub1sub2s          r?   !test_tokenize_numpy_memmap_offsetr      s    
[V[%%	&	&B	b$ 1	               
b$ 01		!28#aq	II		!28#aq	II(5//1111QrT{QrT{~~$/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s$   AAA+B+D$$D(+D(c                    t          d          5 } t                              d          }t                              | |           t	          t                              | d                    }d d d            n# 1 swxY w Y   t          d          5 } t                              d          }t                              | |           t	          t                              | d                    }d d d            n# 1 swxY w Y   ||k    sJ t          d          5 } t          j                            d          }t                              | |           t                              | d          }t                              | d          }t	          |dd d f                   }t	          |dd d f                   }t	          |dd	d d f                   }t	          |d d df                   }	t          ||||	h          d
k    sJ t	          |          t	          |          k    sJ t	          |dd d f                   t	          |dd d f                   k    sJ 	 d d d            d S # 1 swxY w Y   d S )N.npyr   r   	mmap_mode
   r   )sizer   r7   r5      )	r,   rV   arangesaver#   loadrW   normallen)
r   rt   yzmmmm2r<   r=   r>   ds
             r?   test_tokenize_numpy_memmapr      s   	 1BIIaLL
ARWWR3W//001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
 1BIIaLL
ARWWR3W//001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 6666	 9BI(++
AWWR3W''ggbCg((R111XR111XR!QQQZ  R1XAq!Q<  A%%%%||x}},,,,1aaa4!!Xc!QQQ$i%8%8888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s8   AA;;A?A?AD  DD"EI;;I?I?c                    t          d          5 } t          d          5 }t                              d          }t                              | |           t                              ||           t                              | d          }||z   }t          |          t          |          k    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 )Nr   r   r   r   )r,   rV   r   r   r   r#   )fn1fn2rt   r<   r=   s        r?   &test_tokenize_numpy_memmap_no_filenamer      s=    
 *C *CIIaLL
Q
QGGC3G''E{{hqkk)))))* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s5   CBC5CC	CC		CC Cc                     t          t          j                  dk    sJ t          t          j                  dk    sJ t                              d dd          } t          |           t          |           k    sJ d S )N 02106e2c67daf452fb480d264e0dac21 c99e52e912e4379882a9a4b387957a0bc                    | dz   S Nr7   r:   rs   s    r?   rK   z6test_tokenize_numpy_ufunc_consistent.<locals>.<lambda>   s
    !a% rB   r7   )r#   rV   sincos
frompyfunc)r/   s    r?   $test_tokenize_numpy_ufunc_consistentr      sv    BFAAAAABFAAAAA --A
.
.CC==HSMM))))))rB   c                 z    t          t          t          t                    } t	          |           }d}||k    sJ d S )N)r>   )s*          dask.tests.test_basef3.)s*          dask.tests.test_basef2.))r>   s*          dask.tests.test_basef1.)r   rH   rE   r@   r   )r   ressols      r?   1test_tokenize_partial_func_args_kwargs_consistentr      s=    B"A
!

CC #::::::rB   c            	         dddt          ddd          t          j        ddd          t          j        d	          fD ]} t          |           | u sJ d S )
Nr7   g?1rC   r5           z
/this/that)slicedatetimedatepathlibPurePathr   )is    r?   test_normalize_baser      sp    	aAdAr""&& ' ' q!!Q&&&&&' 'rB   c                 ^   t                      } t          |           t          |           k    sJ t          j                            ddi          5  t          j        t          d          5  t          |            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 )Nr   Tr   r   )r   r   r   r   r   r   r   r   )os    r?   test_tokenize_objectr     s#   A1!3!33333	94@	A	A  ]</STTT 	 	A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   B".B
>B"
B	B"B	B""B&)B&c                 (   d d }} t          |            t          j                            ddi          5  t	          j        t          d          5  t          |           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 )Nc                    | S r9   r:   rs   s    r?   rK   z4test_tokenize_function_cloudpickle.<locals>.<lambda>  s    a rB   c                    | S r9   r:   rs   s    r?   rK   z4test_tokenize_function_cloudpickle.<locals>.<lambda>  s    1 rB   r   Tz#may not be deterministically hashedr   )r#   r   r   r   r   r   r   r<   r=   s     r?   "test_tokenize_function_cloudpickler     s   KqAQKKK	94@	A	A  ]</TUUU 	 	QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s5   BA/#B/A3	3B6A3	7BBBc                 R    dd} t          |           t          |           k    sJ d S )Nr7   c                    | |z   |z   S r9   r:   r;   s      r?   my_funcz'test_tokenize_callable.<locals>.my_func  s    1uqyrB   r7   r#   )r   s    r?   test_tokenize_callabler     s?        G 1 1111111rB   znot pdc                    t                               g dg ddg d          } t                               g dg ddg d          }t          |           t          |          k    sJ d|j        _        t          |           t          |          k    sJ t                               g dg dd          } t                               g dg dd          }| j                            d          | d<   t          |           t          |          k    sJ | j                            d          |d<   t          |           t          |          k    sJ d S )	NrN   )4asdNrt   r   indexr4   )r<   r=   r<   categoryr   )pd	DataFramer#   r   namer   r`   r   s     r?   test_tokenize_pandasr     sM   
999+=+=+=>>iiiPPA
999+=+=+=>>iiiPPAA;;(1++%%%%AGLA;;(1++%%%%
999???;;<<A
999???;;<<ASZZ
##AcFA;;(1++%%%%SZZ
##AcFA;;(1++%%%%%%rB   c                 n    t                               g dg ddg d          } t          |            d S )NrN   )r   u   asdN)u   xu   yr   r   r   r#   dfs    r?   $test_tokenize_pandas_invalid_unicoder   0  sI     
II*B*B*BCC999 
 
 
B RLLLLLrB   c                     t                               d                                g dddd                                d gig d          } t          |            d S )N   örN   r   )r   r   encoder#   r   s    r?   (test_tokenize_pandas_mixed_unicode_bytesr   9  sY    					4$t)DEii 
 
 
B RLLLLLrB   c                      G d d          } t                               ddd  |             gi          }t          |           d S )Nc                      e Zd ZdS )0test_tokenize_pandas_no_pickle.<locals>.NoPickleNr}   r:   rB   r?   r   r   D  s        rB   r   rt   r4   r   )r   r   s     r?   test_tokenize_pandas_no_pickler   B  s^            
sUD((**56	7	7BRLLLLLrB   znot ddc                    t                               g dd          t                               dgd          t                               g dd          t                               t                               d          gd          t                               t                               dd	
          gd          t                               ddgt           j        j                            g dd                    g} |                     t                               g dd          t                               g dd          g           | D ]$}t          |          t          |          k    sJ %d S )N)r7   r   NInt64r^   2000z	Period[D])r7   r   r   zSparse[int]zdatetime64[ns]CET)tzzdatetime64[ns, CET]r<   r=   r;   F)ordered)r<   r=   Nstring)TFNboolean)r   rg   	TimestampapitypesCategoricalDtypeextendr#   )arraysarrs     r?   $test_tokenize_pandas_extension_arrayr
  L  s_    	W--
&--
-00
",,v&&'/?@@
",,v%,0019NOO
#J&,///OO 	 	
 	

F MMHH%%%XH66HH(((	H::	
    . .}}-----. .rB   c                    t                               ddg          } t          |           t          |           k    sJ t           j                            ddgddgg          } t          |           t          |           k    sJ d S )Nr<   r=   r   r7   )r   Indexr#   
MultiIndexfrom_product)idxs    r?   test_tokenize_pandas_indexr  e  sy    
((C:

CC==HSMM))))
-
$
$sCj1a&%9
:
:CC==HSMM))))))rB   c                    t          dd          t          dd          k    sJ t          d          t          dd          k    sJ t          dd          t          dd          k    sJ t          dd          t          dd          k    sJ t          dd          t          dddi          k    sJ d S )	Nr   r7   rs   rC   )r   bar)r4   r4   r   r:   rB   r?   test_tokenize_kwargsr  n  s    AxQ///////A;;(1*******AxQ///////AxQ///////A5!!!Xa%%@%@@@@@@@rB   c                      G d d          } t           | d                    t           | d                    k    sJ d S )Nc                      e Zd Zd Zd ZdS )$test_tokenize_same_repr.<locals>.Fooc                    || _         d S r9   rs   selfrt   s     r?   __init__z-test_tokenize_same_repr.<locals>.Foo.__init__x      DFFFrB   c                    dS )Nza foor:   r  s    r?   __repr__z-test_tokenize_same_repr.<locals>.Foo.__repr__{  s    7rB   N)r~   r   r   r  r  r:   rB   r?   Foor  w  s2        	 	 		 	 	 	 	rB   r  r7   rC   r   )r  s    r?   test_tokenize_same_reprr   v  sc            CCFFxA////////rB   c                     G d d          }  | d           | d          }}t          |          t          |          k    sJ t          |          t          |          k    sJ dD ]^}t          j                            d|i          5  t          |          t          |          k    sJ 	 d d d            n# 1 swxY w Y   _t          |          }t	          j        | d            t          |          }||k    sJ d S )Nc                      e Zd Zd Zd ZdS )!test_tokenize_method.<locals>.Fooc                    || _         d S r9   rs   r  s     r?   r  z*test_tokenize_method.<locals>.Foo.__init__  r  rB   c                    | j         S r9   rs   r  s    r?   __dask_tokenize__z3test_tokenize_method.<locals>.Foo.__dask_tokenize__  s	    6MrB   N)r~   r   r   r  r&  r:   rB   r?   r  r#    s2        	 	 		 	 	 	 	rB   r  r7   rC   )TFr   c                    | j         dz   S r   rs   r  s    r?   rK   z&test_tokenize_method.<locals>.<lambda>  s    tvz rB   )r#   r   r   r   r   register)r  r<   r=   ensurebeforeafters         r?   test_tokenize_methodr,    s^           3q6633q66qAA;;(1++%%%%A;;(1++%%%% . .[__=vFGG 	. 	.A;;(1++-----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. a[[FS"9"9:::QKKEU??????s   #B==C	C	c                    t          dg          t          dg          k    sJ t          dg          t          d          k    sJ t          dg          t          dg          k    sJ t                              d          } t                              d          }d|d<   t          | g          t          |g          k    sJ d S )Nr7   rC   r   i  r   rU   )r#   rV   r   r   s     r?   test_tokenize_sequencesr.    s    QC==HaSMM))))QC==HTNN****QC==HaSMM))))
		$A
		$AAdGQC==HaSMM))))))rB   c                 V    t          ddd          t          ddd          k    sJ d S )Nr7   rt   rt   r7   r   r:   rB   r?   test_tokenize_dictr1    s9    !$$%%c2B2B)C)CCCCCCCrB   c                 R    t          h d          t          h d          k    sJ d S )N>   r7   rt   rt   r7   rC   r   r:   rB   r?   test_tokenize_setr4    s7    )))**h7L7L7L.M.MMMMMMMrB   c                     ddl m}   | ddg          } | ddg          } | ddg          }t          |          t          |          k    sJ t          |          t          |          k    sJ d S )Nr   r   )r<   r7   )r=   rC   )collectionsr   r#   )r   r<   r=   r>   s       r?   test_tokenize_ordered_dictr7    s    ''''''Xx())AXx())AXx())AA;;(1++%%%%A;;(1++%%%%%%rB   c                 &   t          t          j        d                    t          t          j        d                    k    sJ t          t          j        d                    t          t          j        d                    k    sJ d S )Nr7   )daysrC   )r#   r   	timedeltar:   rB   r?   test_tokenize_timedeltar;    s    H&A...//8H<NTU<V<V<V3W3WWWWWH&A...//8H<NTU<V<V<V3W3WWWWWWWrB   	enum_typec                     G d d|           }t          |j                  t          |j                  k    sJ t          |j                  t          |j                  k    sJ d S )Nc                      e Zd ZdZdZdS )!test_tokenize_enum.<locals>.Colorr7   rC   N)r~   r   r   REDBLUEr:   rB   r?   Colorr?    s        rB   rB  )r#   r@  rA  )r<  rB  s     r?   test_tokenize_enumrC    s~        	    EI(59"5"55555EI(5:"6"6666666rB   c                      e Zd ZU ded<   dS )
ADataClassintr<   Nr~   r   r   __annotations__r:   rB   r?   rE  rE    s         
FFFFFrB   rE  c                      e Zd ZU ded<   dS )
BDataClassfloatr<   NrG  r:   rB   r?   rJ  rJ    s         HHHHHrB   rJ  c                     t          d          } t          d          }t          |           t          |           k    sJ t          |           t          |          k    sJ t          d          }t          |           t          |          k    sJ  G d dt                     }t          j        |          s
J d            t           |d                    t           |d                    k    sJ t           |d                    t          |           k    sJ t          j        ddt          t          t          f         fg          }t          |           t           |d                    k    sJ d S )Nr7   rC   c                      e Zd ZdS )%test_tokenize_dataclass.<locals>.SubANr}   r:   rB   r?   SubArN    r   rB   rO  z8Python regression: SubA should be considered a dataclassrE  r<   )	rE  r#   rJ  dataclassesis_dataclassmake_dataclassr   rF  rP   )a1a2b1rO  ADataClassRedefinedDifferentlys        r?   test_tokenize_dataclassrW    s   	AB	ABB<<8B<<''''B<<8B<<'''' 
ABB<<8B<<''''    z    #  B BAB B B DDGGa 1 11111DDGG,,,, &1%?U38_-.& &" B<<8$B$B1$E$EFFFFFFFFrB   c                    t          t          ddd                    t          t          ddd                    k    sJ t          t          ddd                    t          t          ddd                    k    sJ t          t          ddd                    t          t          ddd                    k    sJ t          t          ddd                    t          t          ddd                    k    sJ d S )Nr   r   rC   r7      )r#   ranger:   rB   r?   test_tokenize_ranger[    s    E!ROO$$q"a(A(AAAAAE!ROO$$q"a(A(AAAAAE!ROO$$q"a(A(AAAAAE!ROO$$q"a(A(AAAAAAArB   c                     t                               ddt           j        gd          } t          |           t          |           k    sJ d S )Nr4   u   JoséOr^   )rV   rg   nanr#   rG   s    r?   $test_tokenize_object_array_with_nansr_    sC    
%BF+377AA;;(1++%%%%%%rB   rt   Tr<      arj   y              ?r:   c                Z    t          |           t          |           k    s
J |             d S r9   r   rs   s    r?   test_tokenize_base_typesrb    s/     A;;(1++%%%q%%%%%rB   c                     t          t          ddg                    t          t          ddg                    k    sJ d S )Nrt   r7   )r#   r&   r:   rB   r?   test_tokenize_literalrd    sA    GS!H%%&&(7C83D3D*E*EEEEEEErB   z+ignore:the matrix:PendingDeprecationWarningc                 \   t           j                            d          } t                               |                     d                    }|                                }t          |          t          |          k    sJ d|d d<   t          |          t          |          k    sJ d S )NrT   d   r7   r   )rV   rW   rX   asmatrixrandcopyr#   )rngr<   r=   s      r?   test_tokenize_numpy_matrixrk    s     )


%
%C
CHHSMM""A	AA;;(1++%%%%AcrcFA;;(1++%%%%%%rB   znot spcls_name)diabsrcoocsccsrdoklilc                   t           j                            d          }t                              dd|                              |           }|                                }t          |          t          |          k    sJ t          |d          rd|j	        d d<   n| dk    rd|d<   nt          t          |          t          |          k    sJ |                                                    d	          }t                               d          |j        d d<   |                    |           }t          |          t          |          k    sJ d S )
NrT   r   i'  )random_statedatar7   rr  )r5   r5   ro  )rV   rW   rX   sprh  asformatri  r#   hasattrrv  
ValueErrorr   row)rl  rj  r<   r=   s       r?    test_tokenize_dense_sparse_arrayr|    s0    )


%
%C
E,,55h??A	AA;;(1++%%%% q& ss	U		$A;;(1++%%%% 	
%  A2AE#2#J	

8AA;;(1++%%%%%%rB   win32)r5   	   z/https://github.com/ipython/ipython/issues/12197)reasonc                 l   t          d           } | | d<   t          t          |                     dk    sJ t          j                            ddi          5  t          j        t          d          5  t          |            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 )NrG   r<       r   Tr   r   )	dictr   r#   r   r   r   r   r   r   )cycles    r?   )test_tokenize_object_with_recursion_errorr  )  s-   
 4LLLEE#Jx2%%%%	94@	A	A  ]</STTT 	 	UOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   B)5BB)B	B)B	B))B-0B-c                 V   t          t          j        ddd                    t          t          j        ddd                    k    sJ t          t          j        ddd                    t          t          j        ddd                    k    sJ t          t          j        ddd                    t          t          j        ddd                    k    sJ t          t          j        ddd                    t          t          j        ddd                    k    sJ d S )Nr   r   r   i  r\      )r#   r   r   r:   rB   r?   test_tokenize_datetime_dater  8  s   HM$2..//8HM$PQSU<V<V3W3WWWWWHM$2..//8HM$PQSU<V<V3W3WWWWWHM$2..//8HM$PQSU<V<V3W3WWWWWHM$2..//8HM$PQSU<V<V3W3WWWWWWWrB   c            
        t          t          j        ddddt          j        j                            t          t          j        ddddt          j        j                            k    sJ t          t          j        dddd                    t          t          j        dddd                    k    sJ t          t          j        ddd                    t          t          j        ddd                    k    sJ t          t          j        dd                    t          t          j        dd                    k    sJ t          t          j        ddddt          j        j                            t          t          j        ddddt          j        j                            k    sJ t          t          j        ddddt          j        j                            t          t          j        ddddt          j        j                            k    sJ t          t          j        ddddt          j        j                            t          t          j        ddddt          j        j                            k    sJ t          t          j        ddddt          j        j                            t          t          j        ddddt          j        j                            k    sJ t          t          j        ddddt          j        j                            t          t          j        dddd                    k    sJ d S )Nr7   rC   r5   r   r   )r#   r   timetimezoneutcr:   rB   r?   test_tokenize_datetime_timer  C  s   HM!Q1h.?.CDDEEaAq("3"788J J     HM!Q1--..(8=AqRS;T;T2U2UUUUUHM!Q**++xaA8N8N/O/OOOOOHM!Q''((HX]1a5H5H,I,IIIIIHM!Q1h.?.CDDEEaAq("3"788J J     HM!Q1h.?.CDDEEaAq("3"788J J     HM!Q1h.?.CDDEEaAq("3"788J J     HM!Q1h.?.CDDEEaAq("3"788J J     HM!Q1h.?.CDDEEaAq!!J J      rB   c                    g d} ddddt           j        j        g}t          t	          |          dz             D ]I}| |d |         z   }t          t          j         |           t          t          j         |           k    sJ Jt          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddt           j        j                            k    sJ t          t          j         dddddddt           j        j                            t          t          j         dddddddd                     k    sJ d S )	NrN   r   r   r   r\   r7   rC   r5   )r   r  r  rZ  r   r#   )requiredoptionalr   argss       r?   test_tokenize_datetime_datetimer  a  s*   yyH1aH-12H3x==1$%% X X(2A2,&)4011Xh>OQU>V5W5WWWWWW !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a9J9NOO	P	PQ Q Q Q !Q1aAx/@/DEE 	(#Aq!Q1a>>	?	?@ @ @ @ @ @rB   c                      G d d          } t          d          dz   }t          |          sJ t          d          rJ t           | i                     sJ t          |           rJ d S )Nc                      e Zd Zd Zd ZdS )0test_is_dask_collection.<locals>.DummyCollectionc                    || _         d S r9   r   )r  dsks     r?   r  z9test_is_dask_collection.<locals>.DummyCollection.__init__  s    DIIIrB   c                    | j         S r9   r  r  s    r?   __dask_graph__z?test_is_dask_collection.<locals>.DummyCollection.__dask_graph__  
    9rB   N)r~   r   r   r  r  r:   rB   r?   DummyCollectionr    s2        	 	 		 	 	 	 	rB   r  r7   rC   )r(   r   )r  rt   s     r?   test_is_dask_collectionr    s            	

QAa     !!$$$$$oob1122222!/2222222rB   c            	     l  
  G d dt                     
t          d          dz   } | dz   }| dz   }
fd} || ||d | ||fD                       }t          | \  }}t          |          dk    sJ  |g d	          } |d
ddg d	          }||k    sJ t          |ddi\  }}t          |          dk    sJ  ||          |k    sJ t          ddddi          \  }}|rJ  ||          ddddifk    sJ d }	t          | |	df|	ddfgd          \  }} ||            ||	dfg           d S )Nc                      e Zd ZU ded<   dS ),test_unpack_collections.<locals>.ANamedTuplerF  r<   NrG  r:   rB   r?   ANamedTupler    s         rB   r  r7   r   rC   c                    | |d| | |ddd|ggddd|dfd| dd	hd
t          d| fg          dt          |           dt          | fd |           i
|f}|S )Nr<   r=   r7   rC   r>   r   r   er5   r   grG   hr   )r   rE  )r<   r=   r>   iteratortr  s        r?   buildz&test_unpack_collections.<locals>.build  s    Q1aQC[RaVaAY[3(,,Z!___j!_[[1%%% 
$ rB   c              3     K   | ]}|V  d S r9   r:   .0r   s     r?   	<genexpr>z*test_unpack_collections.<locals>.<genexpr>  s"      001000000rB   r5   )~a~b~cr  r  r  traverseFr<   c                      t          d          )NzShouldn't have been called)rz  )r  s    r?   failz%test_unpack_collections.<locals>.fail  s    5666rB   r  )r   r(   r$   r   )r<   r=   r>   r  r  r6  repackresultr   r  r  s             @r?   test_unpack_collectionsr    s       j    	

QA	AA	AA    * 5Aq00q!Qi00011D,d3K{q     V&&&''F
%dD"4"4"4
5
5CS==== -dCUCCK{q    6+$&&&& -QC8<<K6+1a#q"222227 7 7 -	D!9a|nu  K F;
FT1I;rB   c                 r    G d d          } t          j        t                    5  t          t	                                 d d d            n# 1 swxY w Y   t          j        t                    5  t           | ddidg                     d d d            n# 1 swxY w Y   t          j        t                    5  t           | ddidg                     d d d            n# 1 swxY w Y   t          j        t                    5  t           | ddidg                     d d d            n# 1 swxY w Y   t           | i g                     t                      k    sJ t           | dt          fddt          fddd	d
didt          fdt          fdd
ggg                    h dk    sJ d S )Nc                       e Zd Zd Zd Zd ZdS )2test_get_collection_names.<locals>.DummyCollectionc                "    || _         || _        d S r9   )r   keysr  r  r  s      r?   r  z;test_get_collection_names.<locals>.DummyCollection.__init__  s    DIDIIIrB   c                    | j         S r9   r  r  s    r?   r  zAtest_get_collection_names.<locals>.DummyCollection.__dask_graph__  r  rB   c                    | j         S r9   )r  r  s    r?   __dask_keys__z@test_get_collection_names.<locals>.DummyCollection.__dask_keys__  r  rB   N)r~   r   r   r  r  r  r:   rB   r?   r  r    sA        	 	 		 	 		 	 	 	 	rB   r  r7   rC   r:   r   a-1b-2r5   r>   r   >   r>   r  r  )r   r   	TypeErrorr   r   r   h1r6   )r  s    r?   test_get_collection_namesr    s   	 	 	 	 	 	 	 	 
y	!	! ' 'VXX&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
y	!	! ; ;__aVaS99:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	y	!	! = =__b!Wrd;;<<<= = = = = = = = = = = = = = =	y	!	! A A__dAY??@@@A A A A A A A A A A A A A A A  B 7 788CEEAAAA  R[!eR[!UAsA>r{UBK456	
 	
 
 
		     sG   AAA3BB #B  C))C-0C-D66D:=D:c                 (   t          d          dk    sJ t          d          s
J d            t          dt          t          f          dk    sJ t          j        t
                    5  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   t          j        t
                    5  t          d           d d d            d S # 1 swxY w Y   d S )Nr4   foo-123r7   r:   r   )r   r  r6   r   r   r  r:   rB   r?   test_get_name_from_keyr    s   U##u,,,,Y''22222iR011Y>>>>	y	!	!  !              	y	!	!  "              	y	!	!    $                                   s6   *BB
B
*CC
C
*DDDc                    t          di           dk    sJ t          dddi          dk    sJ t          dddd          dk    sJ t          dddi          dk    sJ t          dt          t          fddi          dt          t          fk    sJ t          j        t
                    5  t          di            d d d            n# 1 swxY w Y   t          j        t
                    5  t          d	i            d d d            n# 1 swxY w Y   t          j        t
                    5  t          d
i            d d d            d S # 1 swxY w Y   d S )Nr4   r  bazr   )r4   r  r  zbar-456r7   r:   r   )r"   r  r6   r   r   r  r:   rB   r?   test_replace_name_in_keysr    s+   ub))U2222uuen55>>>>ueE&B&BCCuLLLLy9i*@AAYNNNN	2r2Y4FGG

L    
 
y	!	! # #Ar"""# # # # # # # # # # # # # # #	y	!	! $ $B###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	y	!	! & &D"%%%& & & & & & & & & & & & & & & & & &s6   +CCC,D		DD-EEEc                      e Zd ZdZ eej        j                  Zd Z	d Z
d Zd Zd Zd Zd Zd	 Zed
dd            Zd
S )Tuple_dask_keysc                "    || _         || _        d S r9   r  r  s      r?   r  zTuple.__init__  s    



rB   c                    t          |t                    st          S t          t          | j        |j                  | j        |j        z             S r9   )rO   r  NotImplementedr   r  r  )r  others     r?   __add__zTuple.__add__  sA    %'' 	"!!U4:u{33TZ%+5MNNNrB   c                    | j         S r9   )r  r  s    r?   r  zTuple.__dask_graph__"  
    zrB   c                    | j         S r9   r  r  s    r?   r  zTuple.__dask_keys__%  r  rB   c                :    t          t          |                     S r9   )tupler   r  s    r?   __dask_layers__zTuple.__dask_layers__(  s    )$//000rB   c                    | j         S r9   r  r  s    r?   r&  zTuple.__dask_tokenize__+  r  rB   c                    t           dfS )Nr:   )r  r  s    r?   __dask_postcompute__zTuple.__dask_postcompute__.  s    byrB   c                *    t           j        | j        ffS r9   )r  _rebuildr  r  s    r?   __dask_postpersist__zTuple.__dask_postpersist__1  s    ~
},,rB   N)renamec               D    rfd|D             }t          | |          S )Nc                0    g | ]}t          |          S r:   )r"   )r  keyr  s     r?   
<listcomp>z"Tuple._rebuild.<locals>.<listcomp>7  s$    EEE'V44EEErB   )r  )r  r  r  s     `r?   r  zTuple._rebuild4  s5     	FEEEEEEEDS$rB   )r~   r   r   	__slots__staticmethodr   threadedget__dask_scheduler__r  r  r  r  r  r&  r  r  r  r:   rB   r?   r  r    s        "I%dm&788  O O O
    1 1 1    - - - &*         \     rB   r  c                 
   dt           fddt          fdi} dt           ft          dt           fdt          ffdt          ft          dt           fdfi}|                    |            dt          dt           fdt          ffi}|                    |           t	          i g           }t	          | dt           fdt          fg          }t	          |dt           fdt          fg          }t	          |dg          }||z   |z   |z   }t          j        t                    5  d|_        d d d            n# 1 swxY w Y   t          |          sJ t          |          sJ t          |          sJ t          |          sJ t          |          sJ t          |          t          |          k    sJ t          |          t          |          k    sJ t          |          t          |          k    sJ t          |          t          |          k    sJ t          |          t          |          k    sJ t          d |||||fD                       dk    sJ t          |          t                      k    sJ t          |          dhk    sJ t          |          dhk    sJ t          |          dhk    sJ t          |          h dk    sJ |                                d	k    sJ |                                d
k    sJ |                                dk    sJ |                                dk    sJ t          j        |d|i||g          d	dd
iddgfk    sJ |                                dk    sJ |                                }t#          |t                    sJ |j        |j        k    sJ t'          |j                                                  g dk    sJ |                                dk    sJ t          j        ||||          \  }	}
}}|j        |j        k    sJ |j        dt           fddt          fdik    sJ |                                dk    sJ |
|z   |z   }|                                dk    sJ |                                \  }} |i g|R dddii}|                                d	k    sJ |                                \  }} |dt           fddt          fdig|R dddii}|                                dk    sJ |                                \  }} |ddig|R dddii}|                                dk    sJ d S )Nrt   r7   rC   r   r   c                ,    h | ]}t          |          S r:   r   )r  colls     r?   	<setcomp>z)test_custom_collection.<locals>.<setcomp>[  s    ;;;4;;;rB   r   >   rt   r   r   r:   rl   )r5   r   )r\   )r7   rC   r5   r   r\   r5   r   r  ww3x3r      )r   r  z3F   )r  )r  r6   r   updater  r   r   AttributeErrorr4   r   r#   r   r   r   r   r   r!   rO   r  sortedr  valuesr  )r  dsk2dsk3r  rt   r   r   r  t2w2x2y2z2t3rebuildr  r  r  r  s                      r?   test_custom_collectionr  ;  s   9a#rA
&C"Ic2Yb	2S"Ic2YPQ?RSDKK#Ry3),-DKKb"AcS"IRy)**Adc2Yb	*++AdSEA	A	AA 
~	&	&                 a     a     a     a     a      A;;(1++%%%%A;;(1++%%%%A;;(1++%%%%A;;(1++%%%%A;;(1++%%%%;;Aq!Q?;;;<<AAAA  ""cee++++""se++++""se++++""se++++""ooo5555 99;;"99;;&    99;;&    99;;$<S!Ha+,,sFmVT5R0SSSSS99;;/)))) 
Bb%     8qw"(//##$$7777::<<?****\!Q1--NBB8qw8b	1sBi33333::<<6!!!!	b2B::<<?**** **,,MGT		/d	/	/	/C;	/	/B::<<2**,,MGT	4*b4*b1	MD	M	M	M#t	M	MB::<<8####**,,MGT	$	7d	7	7	7C;	7	7B::<<5      s   D++D/2D/c                 2   ddl m}  t          j        t	          d          d          }t          t          d          }t          t          d          }|                    |                              |          }g  | fd	          5  |	                    d
d           d d d            n# 1 swxY w Y   t          d D                       dk    sJ t          d D                       dk    sJ g  | fd	          5  |	                    d
           d d d            n# 1 swxY w Y   t          d D                       dk    sJ t          d D                       dk    sJ t          d D                       dk    sJ d S )Nr   )Callbackrf  r   npartitionsr7   rC   c                .                         |           S r9   appendr  r  r  s     r?   rK   z%test_compute_no_opt.<locals>.<lambda>      T[[-=-= rB   )pretasksingle-threadedF)	scheduleroptimize_graphc                &    g | ]}d |d         v |S r   r   r:   r  ks     r?   r  z'test_compute_no_opt.<locals>.<listcomp>  !    111a5AaD=====rB   c                &    g | ]}d |d         v |S r   r   r:   r  s     r?   r  z'test_compute_no_opt.<locals>.<listcomp>  r  rB   c                .                         |           S r9   r  r
  s     r?   rK   z%test_compute_no_opt.<locals>.<lambda>  r  rB   r  c                &    g | ]}d |d         v |S r  r:   r  s     r?   r  z'test_compute_no_opt.<locals>.<listcomp>  r  rB   rc   c                &    g | ]}d |d         v |S r  r:   r  s     r?   r  z'test_compute_no_opt.<locals>.<listcomp>  r  rB   c                &    g | ]}d |d         v |S )zadd-mulr   r:   r  s     r?   r  z'test_compute_no_opt.<locals>.<listcomp>  s&    555a9!#4#4#4#4#4rB   )dask.callbacksr  dbfrom_sequencerZ  r   r   r   mapr   r   )r  r=   add1mul2r   r  s        @r?   test_compute_no_optr"    sb    ('''''
s333A3??D3??D	dAD	====	>	>	> E E			-e	DDDE E E E E E E E E E E E E E E11411122a777711411122a7777D	====	>	>	> / /			-	.../ / / / / / / / / / / / / / / 11411122a777711411122a777755455566!;;;;;;s$   B22B69B6D//D36D3znot dac                 R   t                               d                              d          } t                              | d          }|dz   }|dz   }t          ||          \  }}t                               || dz             sJ t                               || dz             sJ d S )Nrf  r   r   r   chunksr7   rC   )rV   r   reshapeda
from_arrayr   allclose)r	  darrdarr1darr2out1out2s         r?   test_compute_arrayr0    s    
))C..
 
 
*
*C==V=,,D1HE1HE&&JD$;;tS1W%%%%%;;tS1W%%%%%%%rB   c                    ddl m}  t                              d                              d          }t
                              |d          }|dz   |                    d          z
  }|                                } | ||           t          |j
                                      |j
                  sJ t          |j
                  |j        k    sJ d S )	Nr   	assert_eqrf  r   r$  r%  r7   )axis)dask.array.utilsr3  rV   r   r'  r(  r)  meanr!   r   r   issubsetr   r  )r3  r	  rt   r   s       r?   test_persist_arrayr8    s    ******
))C..
 
 
*
*C
c&))A	
Q!&&a&.. A			AIaOOOqv;;'''''qv;;!-''''''rB   c                    t                               dt          d          } |                                 \  }}t                              ddg          t                              ddg          d} ||g|R d| j        dii}t          |t           j                  sJ |j        dk    sJ |	                                d	d
gk    sJ t           j
                            |g d           d S )Nr   rC   )r_   r&  r7   r5   r=   r   r=   r7   r  r=   r;  r<  r7   rC   r5   r   )r(  zerosrF  r  rV   rg   r   rO   Arrayr  utilsr3  r<   r  r  r  r=   s        r?   test_persist_array_renamerB    s    
#a((A**,,MGTXXq!f%%1a&1A1A
B
BC1d111AFC=11Aa"""""6S====??8 44444Hq,,,'''''rB   c                    t                               g dg dd          } t                              | d          }|j        dz   }|j        |j        z   }t          ||          \  }}t          j                            || j        dz              t          j                            || j        | j        z              d S )Nr=  r   r   r5   r5   r   rC   r  r7   )	r   r   ddfrom_pandasr<   r=   r   r@  r3  )r   ddfddf1ddf2r.  r/  s         r?   test_compute_dataframerJ    s    	LLL|||<<	=	=B
...
+
+C519D535=Dt$$JD$HtRTAX&&&HtRTBD[)))))rB   c                    t                               g dg dd          } t                              | d          dz  }t	          |                                          dk    sJ |                                }t          |t          j                  sJ t	          |                                          dk    sJ t          j        	                    ||           d S )Nr=  r   r   r\   rc   r   rC   r  r   )
r   r   rE  rF  r   r  r!   rO   r@  r3  )r   rH  rI  s      r?   test_persist_dataframerM    s    	LLL|||<<	=	=B>>"!>,,q0Dt""$$%%****<<>>DdBL)))))t""$$%%****HtT"""""rB   c                    t                               g d          } t                              | d          dz  }t	          |                                          dk    sJ |                                }t          |t          j                  sJ t	          |                                          dk    sJ t          j        	                    ||           d S )Nr=  rC   r  r   )
r   SeriesrE  rF  r   r  r!   rO   r@  r3  dsdds1dds2s      r?   test_persist_seriesrT    s    	<<<	 	 B>>"!>,,q0Dt""$$%%****<<>>DdBI&&&&&t""$$%%****HtT"""""rB   c                    t                               g d          } t                              | d                                          }t          |                                          dk    sJ |                                }t          |t          j	        j
                  sJ t          |                                          dk    sJ t          j                            ||           d S )Nr=  rC   r  r   r7   )r   rO  rE  rF  minr   r  r!   rO   coreScalarr@  r3  rP  s      r?   test_persist_scalarrY    s    	<<<	 	 B>>"!>,,0022Dt""$$%%****<<>>DdBGN+++++t""$$%%****HtT"""""rB   c                    t                               g dg dd          } t                               g dg dd          }t                              | d          }|                                \  }}|j        d d         |j        dd          d} ||g|R d	|j        d
ii}|                                ddgk    sJ t          j        	                    ||           d S )Nr=  rL  r   )rC   r5   r   r   )r   r\   r~  r   rC   r  rt   r   r0  r  rt   r\  r0  )
r   r   rE  rF  r  iloc_namer  r@  r3  )df1df2rH  r  r  r  rI  s          r?   test_persist_dataframe_renamera    s    
,,\\\==
>
>C
,,\\\>>
?
?C>>#1>--D--//MGTXbqb\SXabb\
:
:C738888tz3&788DHh#77777HtS!!!!!rB   c                    t                               g d          } t                               g d          }t                              | d          }|                                \  }}|j        d d         |j        dd          d} ||g|R d|j        dii}|                                dd	gk    sJ t          j        	                    ||           d S )
Nr=  rL  rC   r  r[  r  rt   r\  r0  )
r   rO  rE  rF  r  r]  r^  r  r@  r3  )ds1ds2rR  r  r  r  rS  s          r?   test_persist_series_renamere    s    
))LLL
!
!C
))LLL
!
!C>>#1>--D--//MGTXbqb\SXabb\
:
:C738888tz3&788DHh#77777HtS!!!!!rB   c                 h   t                               g d          } t                              | d                                          }|                                \  }} |ddig|R d|j        dii}|                                dgk    sJ t          j        	                    |d           d S )Nr=  rC   r  r\  r   r  rt   )
r   rO  rE  rF  rV  r  r^  r  r@  r3  )rc  rR  r  r  rS  s        r?   test_persist_scalar_renamerg    s    
))LLL
!
!C>>#1>--1133D--//MGT7Ha=B4BBBS0ABBDH:----HtQrB   znot dd or not dac                    t                               d                              d          } t                              | d          dz   }t
                              g dg dd          }t                              |d	
          j	        d	z   }t          ||          \  }}t                               || dz             sJ t          j                            ||j	        d	z              d S )Nrf  r   r$  r%  r7   r=  rD  r   rC   r  )rV   r   r'  r(  r)  r   r   rE  rF  r<   r   r*  r@  r3  )r	  r+  r   rG  arr_outdf_outs         r?   test_compute_array_dataframerk    s    
))C..
 
 
*
*C==V=,,q0D	LLL|||<<	=	=B
...
+
+
-
1CdC((OGV;;wa(((((Hvrtax(((((rB   c                     t                               t          j                            d          d                                g          } t
                              | d           d S )Nr5   r7   r   rv  columnsr   r  )r   r   rV   rW   r   rE  rF  r   s    r?   -test_compute_dataframe_valid_unicode_in_bytesrp  "  sM    	29++F33dkkmm_	M	MBNN21N%%%%%rB   c                     t                               t          j                            d          dg          } t                              | d           d S )Nrm  u   rn  r   r  )r   r   rV   rW   rE  rF  r   s    r?   &test_compute_dataframe_invalid_unicoderr  (  sG     
29++F33hZ	H	HBNN21N%%%%%rB   c                 R   t                               dd          t          j        g d          t	          j        t          fd           t          d          \  } }t          	                    | t                              d                    sJ |g dk    sJ d S )Nr   rC   r%  rN   c                 $    t                     S r9   )r   )r=   rt   s   r?   rK   z(test_compute_array_bag.<locals>.<lambda>4  s    gamm rB   r  r  )
r(  r   r  r  r   r   rz  r   rV   r*  )xxbbr=   rt   s     @@r?   test_compute_array_bagrw  /  s    
		!A	A
##A
M*33333444Q%6777FB;;r299Q<<(((((??????rB   c                     t                               dd          } d}t          | |          \  }}||                                 k                                    sJ ||k    sJ t          d          dk    sJ d S )Nr   rC   r%  r   r   )r(  r   r   rq   )rt   r   ru  yys       r?   test_compute_with_literalr{  ;  s|    
		!A	A
AQ]]FB!))++""$$$$$77771::rB   c                    t          d          dz   } | dz   }| dz   }t          | dd|gd|df          dg dddfk    sJ t          | |g|d	          }|d
         d
         | u sJ |d
         d         |u sJ |d         dk    sJ d S )Nr7   r   rC   r   r   r7   rC   r\   rc   rC   Fr  r   rc   r(   r   )r<   r=   r>   r   s       r?   test_compute_nestedr  G  s    

QA	AA	AA!Q++aV44iii  9    
 1a&!e
,
,
,Cq6!9>>>>q6!9>>>>q6Q;;;;;;rB   z'graphviz exception with Python -OO flagz:graphviz/pango on conda-forge currently broken for windowsF)r  strictc            
     t	   t          j        d           t          j        d           t                      5 } t                              dd          }|                    t          j                            | d                     t          j        	                    t          j                            | d                    sJ |                    t          j                            | d	                     t          j        	                    t          j                            | d	                    sJ t          |d
dt          j                            | d                     t          j        	                    t          j                            | d                    sJ d
t          ddft          dd
fd}t          ||t          j                            | d                     t          j        	                    t          j                            | d                    sJ t          |g d          }t          |t          j                            | d                     t          j        	                    t          j                            | d                    sJ t          |g d          }t          |t          j                            | d          d           t          j        	                    t          j                            | d                    sJ t          |t          j                            | d          d           t          j        	                    t          j                            | d                    sJ t          j                            d          5  t          |t          j                            | d                     t          j        	                    t          j                            | d                    sJ 	 d d d            n# 1 swxY w Y   t          j        t"          d          5  t          |d           d d d            n# 1 swxY w Y   |                    d            d d d            d S # 1 swxY w Y   d S )Ngraphvizipycytoscaper   rC   r%  mydaskfilename
mydask.pngz
mydask.pdfr7   r<   r;   cyt	cytoscape)r  enginezcyt.htmlz	cyt2.html)visualization__enginez	cyt3.htmlznot-realr   )r  )r   importorskipr+   r(  r   r%   ospathr   existsr   r   r  r   r   r   r   rz  )r   rt   r  s      r?   test_visualizer  V  sp    
###
'''	 ##QIIaI""	RW\\!X66777w~~bgll1l;;<<<<<	RW\\!\::;;;w~~bgll1l;;<<<<<!QBGLLL$A$ABBBBw~~bgll1l;;<<<<<S#qMc1>>!S27<<<#@#@AAAAw~~bgll1l;;<<<<<#''!bgll1l;;<<<<w~~bgll1l;;<<<<<#''!bgll1e44[IIIIw~~bgll1j99:::::!bgll1k::>RRRRw~~bgll1k::;;;;;[__;_?? 	@ 	@a"',,q+">">????7>>"',,q+">">??????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ ]:Z888 	, 	,a
++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
 	
T"""G## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##s[   NR-?A/P;/R-;P?	?R-P?	R-!Q?3R-?R	R-R	R--R14R1c                 V   t          j        d          } t                      5 }t                              dd          }|j                            t          j        	                    |d                    }t          || j                  sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  r   rC   r%  r  r  )r   r  r+   r(  r   r   r%   r  r  r   rO   Digraph)r  r   rt   vizs       r?   test_visualize_highlevelgraphr    s    
 ":..H	 1QIIaI""fQ(E(EFF#x/000000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   A-BB"%B"c                    t          j        d           t          j        d           t                              dd          } t	          d          5 }|                     d|d	
           t          |          5 }|                                }d d d            n# 1 swxY w Y   d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr  zmatplotlib.pyplotr   rC   r%  dot)	extensionorderRdBu)colorr  cmapzcolor="#)r   r  r(  r   r,   r%   r   read)rt   r   r   texts       r?   test_visualize_orderr    sE   
 
###
+,,,
		!A	A	5	!	!	! "R	'BV<<<"XX 	6688D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	T!!!!!	" " " " " " " " " " " " " " " " " "s6   (B==BB=B"	"B=%B"	&	B==CCc                     ddl m}   | d          }t          j        d         }t	          t          |dd          |j                   |j        }t          |          }d|v sJ d S )Nr   )dedentz%
    def inc():
        return x
    __main__z<test>execs   cloudpickle)	textwrapr  sysmodulesr  compile__dict__r/   r   )r  defnr  r   r  s        r?   5test_use_cloudpickle_to_tokenize_functions_in__main__r    s    6	 D {:&Hx	(	((*;<<<AAQrB   c                    t          |           } | D ]5}| |         d         t          k    rt          f| |         dd          z   | |<   6| S )Nr   r7   )r  r/   r-   )r  r  r  s      r?   
inc_to_decr    sQ    
s))C - -s8A;#vC,CHJrB   c                 d    t          j        t                    d          } |                                 dk    sJ t           j                            t          g          5  |                                 dk    sJ 	 d d d            n# 1 swxY w Y   |                                 dk    sJ d S )Nr7   rC   optimizationsr   )r   r(   r/   r   r   r   r  rs   s    r?   test_optimizations_keywordr    s    S!A99;;!	
|	4	4    yy{{a                              99;;!s   #BBBc                     t          j        t                    d          }  t          j        t                    |           }| |z   }t          | ||d          \  }}}}|dk    sJ t	          |j                   }t	          |j                   |k    sJ t	          |j                   |k    sJ t          j        |||          t          j        | ||          k    sJ t          j        | ||t          g          }t          | ||t          g          \  }	}
}t          j        |	|
|          |k    sJ t           j                            t          g          5  t          | ||          \  }}}d d d            n# 1 swxY w Y   t          |	|
|g|||g          D ]1\  }}t	          |j                   t	          |j                   k    sJ 2d S )Nr7   r  )
r   r(   r/   r    r  r   r  r   r   zip)rt   r   r   r  r  r  constantr  solsr  y3r  x4y4z4r<   r=   s                    r?   test_optimizer    s   S!AS!A	AA#Aq!Q//BBq==== rw--C==C==C <B##t|Aq!'<'<<<<< <1a
|<<<D!Q*>>>JBB<B##t++++ 

|	4	4 ' 'aA&&
B' ' ' ' ' ' ' ' ' ' ' ' ' ' 'RRL2r2,// , ,1AF||tAF||+++++, ,s   F  FFc                     t          j        t                    d          }  t          j        t                    |           }| |z   }t          | dd|gd|df          }|d         d         }|d         d         d         }|d         d         }t	          |t
                    sJ t	          |t
                    sJ t	          |t
                    sJ t          |j                   t          |j                   cxk    rt          |j                   k    sn J t          | dg dddfk    sJ t          | |g|d	
          }|d         d         | u sJ |d         d         |u sJ |d                                         dk    sJ d S )Nr7   rC   r   r   r<   r=   rN   )r   rC   Fr  r   )r   r(   r/   r    rO   r'   r  r   )r<   r=   r>   r  rT  b2c2r   s           r?   test_optimize_nestedr    s   S!AS!A	AAAQ1I..A77F	3B	3	B	1Bb'"""""b'"""""b'"""""==DMM::::T"']]::::::Faiii 8 8&AAAAA
Aq61u
-
-
-Cq6!9>>>>q6!9>>>>q6>>q      rB   c                     d} t          j        t          j        d| g          }t	          t          |                                                    }d|v sJ g d}|D ]}||vsJ 	dS )zI
    Startup time: `import dask` should not import too many modules.
    zYif 1:
        import dask
        import sys

        print(sorted(sys.modules))
        -cr   )r0   r1   r2   r3   partds3fsdistributedN)
subprocesscheck_outputr  
executabler   evaldecode)codeoutr  	blacklistmods        r?   test_default_importsr    s    D 
!3>4">
?
?C$szz||$$%%GW  I  " "'!!!!!" "rB   c                 4    t          ddd          dk    sJ d S )Nr7   rC   r5   rN   )r!   r:   rB   r?   test_persist_literalsr    s%    1ay((((((rB   c                 (   t          d          dz   } | dz   }| dz   }t          | dd|gd|df          }t          |d         d         t                    sJ t          |d         d         d         t                    sJ t          |d         d         t                    sJ t	          | dg d	dd
fk    sJ t          | |g|d          }|d         d         | u sJ |d         d         |u sJ |d                                         dk    sJ d S )Nr7   r   rC   r   r   r<   r=   r   r}  r~  Fr  rc   r(   r!   rO   r'   r   )r<   r=   r>   r  r   s        r?   test_persist_nestedr    s1   

QA	AA	AA1Aq!9--1v66FfQing.....fQinQ'11111fQilG,,,,,Faiii 8 8&AAAAA
1a&!e
,
,
,Cq6!9>>>>q6!9>>>>q6>>q      rB   c                    t          d          }  t          t                    |           } t          t                    |          }t          |          \  }t          |t                    sJ |j        |j        k    sJ t          |j                  dk    sJ |                                |                                k    sJ d S r   )	r(   r/   r!   rO   r'   r  r   r   r   )x1r  r  ru  s       r?   test_persist_delayedr  +  s    	B	b		B	b		BBKKERb'"""""6RVrw<<1::<<2::<<''''''rB   r  za-123c                   t          | | dddi          }|                                dk    sJ |                                }|                                dk    sJ |j        | k    sJ t	          |j                  | dik    sJ d S )Nr=   r7   )r'   r   r!   r  r  r   )r  r   dps      r?   test_persist_delayed_custom_keyr  7  s    c3Q'((A99;;!	
B::<<16S======S!H$$$$$$rB   zkey,rename,new_keyr>   r   r=   zb-123c                .   t          | | di          }|                                dk    sJ |                                \  }} ||dig|R d|i}|                                dk    sJ |j        |k    sJ t	          |j                  |dik    sJ d S )Nr7   rC   r  )r'   r   r  r  r  r   )r  r  new_keyr   r  r  r  s          r?   test_persist_delayed_renamer  A  s     	c1XA99;;!**,,MGT	'1	4	4	4	4V	4	4B::<<16W==WaL((((((rB   c                     t          d          } t          |           \  }t          |t                    sJ |                                dk    sJ d S r   r  )rt   ru  s     r?   test_persist_delayedleafr  T  sO    

AAJJERb'"""""::<<1rB   c                      G d d          } t          |           j        }t          |          \  }t          |t                    sJ |                                dk    sJ d S )Nc                      e Zd ZdZdS )#test_persist_delayedattr.<locals>.Cr7   N)r~   r   r   rt   r:   rB   r?   Cr  \  s        rB   r  r7   )r(   rt   r!   rO   r'   r   )r  rt   ru  s      r?   test_persist_delayedattrr  [  s{            	

AAJJERb'"""""::<<1rB   c                 j   t                               dd          dz   } t          j        g d                              t
                    }t          j        t                    5  t          | |           d d d            n# 1 swxY w Y   t          | |d          \  }}t          |t           j                  sJ t          |t          j                  sJ |j        | j        k    sJ |j        |j        k    sJ t          |j                  |j        cxk    rt          | j                  k     sn J t          |j                  |j        cxk    rt          |j                  k     sn J t"                              | |          sJ t'          |          t'          |          k    sJ d S )Nr   rC   r%  r7   rN   r  r  )r(  r   r  r  r  r/   r   r   rz  r!   rO   r?  Bagr   r   r   r  rV   r*  list)rt   r=   ru  rv  s       r?   test_persist_array_bagr  e  s   
		!A	"A
##'',,A	z	"	"  1               Q%6777FBb"(#####b"&!!!!!7af7afrw<<2>7777CKK777777rw<<2>7777CKK777777;;q"77d2hh   'BBBc                    t          j        g dd                              d           } t          |                                           dk    sJ |                     d          }t          |t           j                  sJ t          |                                          dk    sJ t           j        	                    | |           d S )NrN   rC   r  c                    | dz  S NrC   r:   rs   s    r?   rK   z"test_persist_bag.<locals>.<lambda>|  
    Q rB   r   syncr  )
r  r  r  r   r  r!   rO   r  r@  r3  r   s     r?   test_persist_bagr  {  s    
22266GGAq!!""a''''			F	##Aa     q!!""a''''Hq!rB   c                    t          j        g dd                              d                                           } t	          |                                           dk    sJ |                     d          }t          |t           j                  sJ t	          |                                          dk    sJ t           j	        
                    | |           d S )	NrN   rC   r  c                    | dz  S r  r:   rs   s    r?   rK   z#test_persist_item.<locals>.<lambda>  r  rB   r\   r  r  r7   )r  r  r  rV  r   r  r!   rO   Itemr@  r3  r   s     r?   test_persist_itemr    s    
22266GGKKMMAq!!""a''''			F	##Aa!!!!!q!!""a''''Hq!rB   c                 h   t          j        g dd          } |                                 \  }}dgddgd} ||g|R d| j        d	ii}t	          |t           j                  sJ |j        d	k    sJ |                                d
dgk    sJ t           j                            |g d           d S )NrN   rC   r  r   r   r   r:  r  r=   r;  r<  )r   r   r   )	r  r  r  r   rO   r  r  r@  r3  rA  s        r?   test_persist_bag_renamer    s    
222A**,,MGTSQF
+
+C1d111AFC=11Aa     6S====??8 44444Hq)))$$$$$rB   c                 \   t          j        g d                                          } |                                 \  }} |ddig|R d| j        dii}t          |t           j                  sJ |                                dgk    sJ t           j        	                    |d           d S )NrN   rt   r   r  )
r  r  rV  r  r   rO   r  r  r@  r3  )r<   r  r  r=   s       r?   test_persist_item_change_namer    s    
##''))A**,,MGTa6466666Aa!!!!!??%%%%Hq!rB   c                     t          d          D ]} t          d            dt          t                    cxk     rdk     sn J d S )NrU   c                    | S r9   r:   rs   s    r?   rK   z6test_normalize_function_limited_size.<locals>.<lambda>  s    Q rB   2   iX  )rZ  r   r   r   )_s    r?   $test_normalize_function_limited_sizer    s]    4[[ ( (;;''''N##))))c))))))))rB   c                 &   t          j        ddt          t          j        d          fgdd i          }  | d           | d	          }}t	          |          t	          |          k    sJ t	          |          t	          |          k    sJ d S )
NAparamF)reprr&  c                    | j         S r9   )r  r  s    r?   rK   zAtest_normalize_function_dataclass_field_no_repr.<locals>.<lambda>  s    TZ rB   )	namespacer7   rC   )rP  rR  rK  fieldr   )r  rS  rT  s      r?   /test_normalize_function_dataclass_field_no_reprr    s    "
5++777	89&(?(?@	 	 	A QqTT11Q44Bb!!%7%;%;;;;;b!!%7%;%;;;;;;;rB   c                 L   t          j        d          } |                     dd          }d }ddlm}  ||dz   t
                              d          dz              t          j                            |	          5   ||dz   t
                              d          d
z  dz   d
z  d           d d d            n# 1 swxY w Y    ||dz   t
                              d          dz              t          j
        dd
          }t          j                            |	          5  t          j        |dz   |                    t                    d          \  }} ||t
                              d          d
z  dz   d
z             d d d            d S # 1 swxY w Y   d S )Nr0   r   ry  r%  c                >    d |                                  D             S )Nc                *    i | ]\  }}|t           d |fS )rC   )r   )r  r  vs      r?   
<dictcomp>zBtest_optimize_globals.<locals>.optimize_double.<locals>.<dictcomp>  s$    77741aCA;777rB   )itemsr  r  s     r?   optimize_doublez.test_optimize_globals.<locals>.optimize_double  s    77399;;7777rB   r   r2  r7   )array_optimizerC   F)check_chunksr  r  r  )r   r  onesr5  r3  rV   r   r   r   r  rZ  r   r  r/   )r(  rt   r	  r3  r=   ru  rv  s          r?   test_optimize_globalsr    s$   		\	*	*B
4  A8 8 8 +*****Ia!eRWWR[[1_%%%		8	8 H H	!a%"''"++/A-2GGGGH H H H H H H H H H H H H H H Ia!eRWWR[[1_%%%
###A		8	8 1 1a!eQUU3ZZ;LMMMB	"rwwr{{Q*a/0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s%   ?3B>>CC)A#FF Fc                 @   t          j        d          } |                     dd          }|d d         dd         d d d         dz   fd	}t          j                            d |
          5                                   d d d            d S # 1 swxY w Y   d S )Nr0   r   ry  r%  r~  r7   rc   rC   c                b    | t          j                  k    sJ t          j        | |          S r9   )r  r   r  )r  r  r   s     r?   my_getz"test_optimize_None.<locals>.my_get  s.    d16ll""""xT"""rB   )r
  r  )r   r  r  r   r   r   r   )r(  rt   r  r   s      @r?   test_optimize_Noner    s    		\	*	*B
4  A	"1"ac
33Q3!A# # # # # 
	?	?  			                 s   1BBBc                 v   d } | t           d<    t          t                    d          }	 |                                dk    sJ |                    d          dk    sJ t          j                            d          5  |                                dk    sJ 	 d d d            n# 1 swxY w Y   |                                dk    sJ t          j                            d          5  |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   t           d= d S # t           d= w xY w)Nc                
    dggS )N{   r:   )r  r  kwargss      r?   schedulez(test_scheduler_keyword.<locals>.schedule  s    wrB   r4   r7   rC   r  r  threads)r   r(   r/   r   r   r   r   )r  rt   s     r?   test_scheduler_keywordr    s      'UQA$yy{{ayy5y))S0000[__u_-- 	& 	&99;;#%%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&yy{{a[__u_-- 	7 	799y911Q66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 U###U#####sT   AD. B*D. *B..D. 1B.2=D. /DD. DD.  D!D. .
D8c                     t          t                    d          } t          j        t                    5 }|                     t          j                   d d d            n# 1 swxY w Y   dt          |j	                  v sJ d S )Nr7   r  z
scheduler=)
r(   r/   r   r   r  r   r   r  rP   value)rt   infos     r?   test_raise_get_keywordr    s    QA	y	!	!  T			dh	                              3tz??******s   !A$$A(+A(c                      e Zd ZdZdS )
MyExecutorN)r~   r   r   _max_workersr:   rB   r?   r  r    s        LLLrB   r  c                    t                      J t          t          j        j                  t          j        j        u sJ t          d          t          j        j        u sJ t          d          t          j        j        u sJ t          t          t          j        j                            sJ t          t          t                                          sJ t          j	        
                    d          5  t                      t          j        j        u sJ 	 d d d            n# 1 swxY w Y   t                      J d S )Nr  r  r  )r   r   localget_syncr  r  callablesynchronous_executorr  r   r   r:   rB   r?   test_get_schedulerr&    s_   ??"""4:#67774:;NNNNN9---1BBBBB6***dj.AAAAAMDJ,KLLLMMMMMMJLL999:::::	9	-	- 4 4$-"3333334 4 4 4 4 4 4 4 4 4 4 4 4 4 4??"""""s   "D11D58D5c                     dgfd}  t          d                                           |           dk    sJ d         sJ d S )NFc                8    dd<   t          j        | |          S )NTr   )r   r  )r  r  r  r  calleds       r?   r  z$test_callable_scheduler.<locals>.get  s    q	xT"""rB   c                     dS r   r:   r:   rB   r?   rK   z)test_callable_scheduler.<locals>.<lambda>  s    1 rB   r  r7   r   r  )r  r)  s    @r?   test_callable_schedulerr+  
  so    WF# # # # # 799''#'66!;;;;!9rB   r   r   )rerunsreruns_delayr  r  	processesc                    t          d          t          j                  d}fdt          |          D             }t          j                            |d          5  t                      5 }t          |d| i d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d |j	        D             }t          |          |k    sJ d S )	NF)purer5   c                &    g | ]} d           S )rj   r:   )r  r   r   s     r?   r  z+test_num_workers_config.<locals>.<listcomp>  s!    ,,,A3,,,rB   r7   )num_workers	chunksizer  c                    h | ]	}|j         
S r:   )	worker_idr  s     r?   r  z*test_num_workers_config.<locals>.<setcomp>#  s    111qq{111rB   )r(   r  sleeprZ  r   r   r   r)   r   resultsr   )r  r2  r<   profworkersr   s        @r?   test_num_workers_configr:    sX    	UDJ''A K,,,,{++,,,A	[A	>	> ) )

 )d(i((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 21DL111Gw<<;&&&&&&s6   #B"2B?B"B	B"B	B""B&)B&c                 2   t          j        d          } |                     dd          d d         }t          |g          }t          j                            dd gi          5  t          |g          }d d d            n# 1 swxY w Y   ||k    sJ d S )Nr0   rC   r7   r%  r  c                    | S r9   r:   r  s     r?   rK   z(test_optimizations_ctd.<locals>.<lambda>,  s    c rB   )r   r  r   r   r   r   r   )r(  rt   dsk1r  s       r?   test_optimizations_ctdr>  (  s    		\	*	*B
		!A	rr"Aqc""D	/,A,A+BC	D	D ' '!1#&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 4<<<<<<r  c                    t          dd          dk    sJ t          dd          dk    sJ t          dd          dk    sJ t          dd          d	k    sJ t          d
t          dfd          dt          dfk    sJ t          j        t                    5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz	inc-1-2-3r  z$inc-4dfeea2f9300e67a75f30bf7d6182ea4rt   z"x-dc2b8d1c184c72c19faa81c797f8c6b0i  "x-b76f061b547b00d18b9c7a18ccc47e2dr0  )r@  r7   z	sum-1-2-3r7   z$sum-1efd41f02035dc802f4ebb9995d07e9drC   )r   r  r   r   r  r:   rB   r?   test_clone_keyrA  2  s+   [#&&*PPPPPS#"FFFFFS#"FFFFFXs##'PPPPPk2q)3//.
	4    
 
y	!	!  !Q                 s   B66B:=B:c                 <   t          j        d          } |                     d          }d G fdd| j                  }t	          ||                                |                                          d         }sJ | j                            ||           d S )Nr0   r   Fc                  6     e Zd ZdZe fd            Z xZS )Gtest_compute_as_if_collection_low_level_task_graph.<locals>.MyDaskArrayz>Dask Array subclass with validation logic in __dask_optimize__c                n    t          |          t          u sJ d t                      j        ||fi |S )NT)typer*   super__dask_optimize__)clsr  r  r  	__class__	optimizeds       r?   rH  zYtest_compute_as_if_collection_low_level_task_graph.<locals>.MyDaskArray.__dask_optimize__K  sB     99....I,577,S$AA&AAArB   )r~   r   r   __doc__classmethodrH  __classcell__)rJ  rK  s   @r?   MyDaskArrayrD  H  sX        LL		B 	B 	B 	B 	B 
	B 	B 	B 	B 	BrB   rO  r   )	r   r  r   r?  r   r  r  r@  r3  )r(  rt   rO  r  rK  s       @r?   2test_compute_as_if_collection_low_level_task_graphrP  @  s    		\	*	*B
		"A I	B 	B 	B 	B 	B 	B 	Bbh 	B 	B 	B &Q%%''):): 	F Hq&!!!!!rB   c                `   ddl m} ddlm} ddlm} |r|                    dd|i          }n
 |            }|5  dd l}|dk    rddlm}	 n|dk    rddlm	}	 n|d	k    rddl
m	}	 |                    |           }
t          |
|          j        |	k    sJ 	 d d d            d S # 1 swxY w Y   d S )
Nr   )nullcontext)mock)r#  zdask.base.named_schedulersr  r  r  r.  )
contextlibrR  unittestrS  
dask.localr#  patch	importlibdask.threadedr  dask.multiprocessingimport_modulegetattrr  )module
collectionexpected
emscriptenrR  rS  r#  ctxrX  r  r  s              r?   check_default_schedulerrb  ^  s   &&&&&&###### jj57IJJkmm	 B Bv2222222"")))))))$$000000%%f--sJ'':cAAAAAB B B B B B B B B B B B B B B B B Bs   AB##B'*B'params)z('dask.dataframe', '_Frame', 'sync', Truez,'dask.dataframe', '_Frame', 'threads', Falsez#'dask.array', 'Array', 'sync', Truez''dask.array', 'Array', 'threads', Falsez'dask.bag', 'Bag', 'sync', Truez%'dask.bag', 'Bag', 'processes', Falsec                    t          j        d           t          j        d           t          j        t          j        dt          j        t                    d|  dz   g          }|	                                 d S )Nr0   r1   r  zcheck_default_scheduler(z)
)
r   r  r  runr  r  inspect	getsourcerb  check_returncode)rc  procs     r?   !test_emscripten_default_schedulerrj  w  s     %%%
()))>N!"9::8V8889		
	 	D 	rB   r   rl   )
__future__r   rP  r   rf  r  r   r  r  r  r6  r   concurrent.futuresr   enumr   r   r	   r
   operatorr   r   typingr   r   r   tlzr   r   r   r   r   dask.bagbagr  	dask.baser   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   	dask.corer&   dask.delayedr'   r(   dask.diagnosticsr)   dask.highlevelgraphr*   
dask.utilsr+   r,   dask.utils_testr-   r.   r/   r(  rE  rV   rw  r   r  r6   r@   rE   rH   rL   rR   markskipifrZ   ra   rd   rh   ro   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r   r,  r.  r1  r4  r7  r;  parametrizerC  	dataclassrE  rJ  rW  r[  r_  rP   rF  rb  rd  filterwarningsrk  r|  platformversion_infor  r  r  r  r  r  r  r  r  r  r  r"  r0  r8  rB  rJ  rM  rT  rY  ra  re  rg  rk  rp  rr  rw  r{  r  boolflagsxfailr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r+  flakyslowr:  r>  rA  rP  rb  rj  r:   rB   r?   <module>r     si   " " " " " "       				      



  # # # # # # ' ' ' ' ' ' - - - - - - - - - - - -         $ $ $ $ $ $ $ $  . . . . . . . . . . . .                                                *       ) ) ) ) ) ) ) ) % % % % % % . . . . . . & & & & & & & & 4 4 4 4 4 4 4 4 4 4^L!!^$%%^G^N##^H 		 	 	 		 	 	 		 	 	T T T*1 1 1
 H   H5 5 5 H' ' ' H@ @ @ HK K K H> > > H  , H0 0 0$ H9 9 96 H	* 	* 	* H* * *  $	' 	' 	'    2 2 2 H& & &  H   H   H   H. . .0 H* * *A A A0 0 0  . H* * *D D DN N N& & &X X X
 tWgt&DEE7 7 FE7                G G G4B B B H& & &
 !T3c2tRRsC	H ) ) )F F F HIJJ& & KJ & H%VWW& & XW &2 LG> 0! 4 ><    	 X X X  <'@ '@ '@T3 3 39 9 9x  B	  	  	 & & &$#  #  #  #  #  #  #  # LK! K! K!\< < <6 H& & & H
( 
( 
( H( ( ( H* * * H# # # H# # # H# # # H" " " H" " " H      &'') ) (') H& & &
 H& & & H   H     HD	%N    LGG   
&# &#   &#R HD	%N   1 1  1 HD	%N   " "  "  $    , , ,:! ! !." " "6) ) )! ! ! 	( 	( 	( wm 455% % 65% 	b#	sCj#	sCj#
2'*WbM:	 ) ) )     H  *    % % %  * * *
< 
< 
<1 1 10  $ $ $,+ + +       	# 	# 	#   "1--y+&>??' ' @?  .-'     " " "<B B B2 
 
 
 
  rB   