
    Cd                       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          ZKddZLddZMd ZNd ZOd ZPejQ        R                    d          d             ZSejQ        R                    d          d             ZTejQ        R                    d          d             ZUejQ        R                    d          d              ZVejQ        R                    d          d!             ZWejQ        R                    d          d"             ZXejQ        R                    d          d#             ZYejQ        R                    d          d$             ZZejQ        R                    d          d%             Z[ejQ        R                    d          d&             Z\ejQ        R                    d          d'             Z]d( Z^d) Z_d* Z`d+ Zad, ZbejQ        R                    d-          d.             ZcejQ        R                    d-          d/             ZdejQ        R                    d-          d0             ZeejQ        R                    d-          d1             ZfejQ        R                    d2          d3             ZgejQ        R                    d-          d4             Zhd5 Zid6 Zjd7 ZkejQ        R                    d          d8             Zld9 Zmd: Znd; Zod< ZpejQ        q                    d=eeeeg          d>             Zrejs         G d? d@                      Ztejs         G dA dB                      ZudC ZvdD ZwejQ        R                    d          dE             ZxejQ        q                    dFddGdHdIdJdKdKg dLi deyezg          dM             Z{dN Z|ejQ        R                    d          ejQ        }                    dO          dP                         Z~ejQ        R                    dQ          ejQ        q                    dRdS          dT                         ZejQ        R                    ej        dUk    oej        dd         dVk    dWX          dY             ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Z G db dce$          Zdd Zde ZejQ        R                    df          dg             ZejQ        R                    df          dh             ZejQ        R                    df          di             ZejQ        R                    d2          dj             ZejQ        R                    d2          dk             ZejQ        R                    d2          dl             ZejQ        R                    d2          dm             ZejQ        R                    d2          dn             ZejQ        R                    d2          do             ZejQ        R                    d2          dp             ZejQ        R                    dq          dr             ZejQ        R                    d2          ds             ZejQ        R                    d2          dt             ZejQ        R                    df          du             ZejQ        R                    df          dv             Zdw ZejQ        R                    df          ejQ        R                     eej        j1                  dxX          ejQ                            ej        dUk    dydz{          d|                                     ZejQ        R                    df          ejQ        R                     eej        j1                  dxX          d}                         ZejQ        R                    df          ejQ        R                     eej        j1                  dxX          d~                         Zd Zd Zd Zd Zd Zd Zd Zd Zd Z e            ZejQ        q                    ddHdefg          d             ZejQ        q                    ddHi dHfdHddidHfdHdHdidfdefddideffg          d             Zd Zd ZejQ        R                    df          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z G d de          Zd Zd ZejQ                            dd          ejQ        j        ejQ        q                    dddg          d                                     Zd Zd Zd Zd ZejQ        q                    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   c                    d S N abcs      4lib/python3.11/site-packages/dask/tests/test_base.pyf1r=   9       D       c                    d S r6   r7   r8   s      r<   f2rB   =   r>   r?   c                    d S r6   r7   r9   s    r<   f3rE   A   r>   r?   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 r6   r7   rD   s    r<   <lambda>z)test_normalize_function.<locals>.<lambda>H   s     r?   r@   )r:      r4   )r   rB   r   r=   r   rE   r   r7   r?   r<   test_normalize_functionrJ   E   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Sr?   c                 `    d} t          t          |           t          t          f          sJ d S )Nr4   r@   rI   )
isinstancer#   strbytesrD   s    r<   test_tokenizerP   Z   s-    AhqkkC<0000000r?   znot npc                 
   t          t          j                            d                              d                    t          t          j                            d                              d                    k    sJ d S )N    )r#   nprandomRandomStaterandom_sampler7   r?   r<   .test_tokenize_numpy_array_consistent_on_valuesrX   _   sx    BI))$//==dCCDD
	d##11$77I I      r?   c                     t          t          j                            d                              d                     d S )N   i2dtype)r#   rT   rU   astyper7   r?   r<   /test_tokenize_numpy_array_supports_uneven_sizesr_   f   s7    RYa  ''d'3344444r?   c                 p    t          t          j                            d          d d d                    d S )N   r@   )r#   rT   rU   r7   r?   r<   'test_tokenize_discontiguous_numpy_arrayrb   k   s1    RYa  1%&&&&&r?   c                 Z    t          t                              dgd                     d S )Nz2000-01-01T12:00:00zM8[ns]r\   r#   rT   arrayr7   r?   r<   test_tokenize_numpy_datetimerf   p   s*    RXX,-XX>>?????r?   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\   r4   r@   )r9   i4)r:   i8r   rd   r7   r?   r<   test_tokenize_numpy_scalarrm   u   s    BHHSH--..(288Ct8;T;T2U2UUUUU
&+{!;<<Q? 	"((F8K+E(FFqI	J	JK K K K K Kr?   c                 V   	 t                               d            t          t                               d                    t          t                               d                    k    sJ 	 t                               d            d S # t                               d            w xY w)Nc                    dS )Nfoor7   xs    r<   rH   z7test_tokenize_numpy_scalar_string_rep.<locals>.<lambda>   s     r?   r4   r@   )rT   set_string_functionr#   re   r7   r?   r<   %test_tokenize_numpy_scalar_string_reprt   }   s    %
///$$!(=(====== 	t$$$$$t$$$$s   A-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)r9   aaaaar\   )r9   Nrw   ))r4   r9   )r4   N)r4   rw   c                      e Zd ZdS );test_tokenize_numpy_array_on_object_dtype.<locals>.NoPickleN__name__
__module____qualname__r7   r?   r<   NoPicklery              r?   r~   r9   tokenize.ensure-deterministicT"cannot be deterministically hashedmatch)
rT   re   objectr#   daskconfigsetpytestraisesRuntimeError)r9   r~   rr   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shaper4   )rN   joinopenwriterT   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   r4   rI      )	r,   rT   arangesaver#   loadrU   normallen)
r   rr   yzmmmm2r9   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,   rT   r   r   r   r#   )fn1fn2rr   r9   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 Nr4   r7   rq   s    r<   rH   z6test_tokenize_numpy_ufunc_consistent.<locals>.<lambda>   s
    !a% r?   r4   )r#   rT   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))))))r?   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   rE   rB   r=   r   )r   ressols      r<   1test_tokenize_partial_func_args_kwargs_consistentr      s=    B"A
!

CC #::::::r?   c            	         dddt          ddd          t          j        ddd          t          j        d	          fD ]} t          |           | u sJ d S )
Nr4   g?1r@   rI           z
/this/that)slicedatetimedatepathlibPurePathr   )is    r<   test_normalize_baser      sp    	aAdAr""&& ' ' q!!Q&&&&&' 'r?   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 r6   r7   rq   s    r<   rH   z4test_tokenize_function_cloudpickle.<locals>.<lambda>  s    a r?   c                    | S r6   r7   rq   s    r<   rH   z4test_tokenize_function_cloudpickle.<locals>.<lambda>  s    1 r?   r   Tz#may not be deterministically hashedr   )r#   r   r   r   r   r   r   r9   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 )Nr4   c                    | |z   |z   S r6   r7   r8   s      r<   my_funcz'test_tokenize_callable.<locals>.my_func  s    1uqyr?   r4   r#   )r   s    r<   test_tokenize_callabler     s?        G 1 1111111r?   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 )	NrL   )4asdNrr   r   indexrp   )r9   r:   r9   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++%%%%%%r?   c                 n    t                               g dg ddg d          } t          |            d S )NrL   )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 RLLLLLr?   c                     t                               d                                g dddd                                d gig d          } t          |            d S )N   örL   r   )r   r   encoder#   r   s    r<   (test_tokenize_pandas_mixed_unicode_bytesr   9  sY    					4$t)DEii 
 
 
B RLLLLLr?   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>.NoPickleNrz   r7   r?   r<   r~   r   D  s        r?   r~   rr   rp   r   )r~   r   s     r<   test_tokenize_pandas_no_pickler   B  s^            
sUD((**56	7	7BRLLLLLr?   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)r4   r   NInt64r\   2000z	Period[D])r4   r   r   zSparse[int]zdatetime64[ns]CET)tzzdatetime64[ns, CET]r9   r:   r8   F)ordered)r9   r:   Nstring)TFNboolean)r   re   	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::	
    . .}}-----. .r?   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 )Nr9   r:   r   r4   )r   Indexr#   
MultiIndexfrom_product)idxs    r<   test_tokenize_pandas_indexr  e  sy    
((C:

CC==HSMM))))
-
$
$sCj1a&%9
:
:CC==HSMM))))))r?   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   r4   rq   r@   )r   bar)rp   rp   r   r7   r?   r<   test_tokenize_kwargsr  n  s    AxQ///////A;;(1*******AxQ///////AxQ///////A5!!!Xa%%@%@@@@@@@r?   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 r6   rq   selfrr   s     r<   __init__z-test_tokenize_same_repr.<locals>.Foo.__init__x      DFFFr?   c                    dS )Nza foor7   r  s    r<   __repr__z-test_tokenize_same_repr.<locals>.Foo.__repr__{  s    7r?   N)r{   r|   r}   r  r  r7   r?   r<   Foor  w  s2        	 	 		 	 	 	 	r?   r  r4   r@   r   )r  s    r<   test_tokenize_same_reprr  v  sc            CCFFxA////////r?   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 r6   rq   r  s     r<   r  z*test_tokenize_method.<locals>.Foo.__init__  r  r?   c                    | j         S r6   rq   r  s    r<   __dask_tokenize__z3test_tokenize_method.<locals>.Foo.__dask_tokenize__  s	    6Mr?   N)r{   r|   r}   r  r#  r7   r?   r<   r  r     s2        	 	 		 	 	 	 	r?   r  r4   r@   )TFr   c                    | j         dz   S r   rq   r  s    r<   rH   z&test_tokenize_method.<locals>.<lambda>  s    tvz r?   )r#   r   r   r   r   register)r  r9   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 )Nr4   r@   r   i  r   rS   )r#   rT   r   r   s     r<   test_tokenize_sequencesr+    s    QC==HaSMM))))QC==HTNN****QC==HaSMM))))
		$A
		$AAdGQC==HaSMM))))))r?   c                 V    t          ddd          t          ddd          k    sJ d S )Nr4   rr   rr   r4   r   r7   r?   r<   test_tokenize_dictr.    s9    !$$%%c2B2B)C)CCCCCCCr?   c                 R    t          h d          t          h d          k    sJ d S )N>   r4   rr   rr   r4   r@   r   r7   r?   r<   test_tokenize_setr1    s7    )))**h7L7L7L.M.MMMMMMMr?   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   )r9   r4   )r:   r@   )collectionsr   r#   )r   r9   r:   r;   s       r<   test_tokenize_ordered_dictr4    s    ''''''Xx())AXx())AXx())AA;;(1++%%%%A;;(1++%%%%%%r?   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 )Nr4   )daysr@   )r#   r   	timedeltar7   r?   r<   test_tokenize_timedeltar8    s    H&A...//8H<NTU<V<V<V3W3WWWWWH&A...//8H<NTU<V<V<V3W3WWWWWWWr?   	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>.Colorr4   r@   N)r{   r|   r}   REDBLUEr7   r?   r<   Colorr<    s        r?   r?  )r#   r=  r>  )r9  r?  s     r<   test_tokenize_enumr@    s~        	    EI(59"5"55555EI(5:"6"6666666r?   c                      e Zd ZU ded<   dS )
ADataClassintr9   Nr{   r|   r}   __annotations__r7   r?   r<   rB  rB    s         
FFFFFr?   rB  c                      e Zd ZU ded<   dS )
BDataClassfloatr9   NrD  r7   r?   r<   rG  rG    s         HHHHHr?   rG  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 )Nr4   r@   c                      e Zd ZdS )%test_tokenize_dataclass.<locals>.SubANrz   r7   r?   r<   SubArK    r   r?   rL  z8Python regression: SubA should be considered a dataclassrB  r9   )	rB  r#   rG  dataclassesis_dataclassmake_dataclassr   rC  rN   )a1a2b1rL  ADataClassRedefinedDifferentlys        r<   test_tokenize_dataclassrT    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Fr?   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   r@   r4      )r#   ranger7   r?   r<   test_tokenize_rangerX    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Ar?   c                     t                               ddt           j        gd          } t          |           t          |           k    sJ d S )Nrp   u   JoséOr\   )rT   re   nanr#   rD   s    r<   $test_tokenize_object_array_with_nansr\    sC    
%BF+377AA;;(1++%%%%%%r?   rr   Tr9      arh   y              ?r7   c                Z    t          |           t          |           k    s
J |             d S r6   r   rq   s    r<   test_tokenize_base_typesr_    s/     A;;(1++%%%q%%%%%r?   c                     t          t          ddg                    t          t          ddg                    k    sJ d S )Nrr   r4   )r#   r&   r7   r?   r<   test_tokenize_literalra    sA    GS!H%%&&(7C83D3D*E*EEEEEEEr?   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 )NrR   d   r4   r   )rT   rU   rV   asmatrixrandcopyr#   )rngr9   r:   s      r<   test_tokenize_numpy_matrixrh    s     )


%
%C
CHHSMM""A	AA;;(1++%%%%AcrcFA;;(1++%%%%%%r?   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 )
NrR   r   i'  )random_statedatar4   ro  )rI   rI   rl  )rT   rU   rV   spre  asformatrf  r#   hasattrrs  
ValueErrorr   row)ri  rg  r9   r:   s       r<    test_tokenize_dense_sparse_arrayry    s0    )


%
%C
E,,55h??A	AA;;(1++%%%% q& ss	U		$A;;(1++%%%% 	
%  A2AE#2#J	

8AA;;(1++%%%%%%r?   win32)rI   	   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 )NrD   r9       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  rZ      )r#   r   r   r7   r?   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Wr?   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 )Nr4   r@   rI   r   r   )r#   r   timetimezoneutcr7   r?   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      r?   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 )	NrL   r   r   r   rZ   r4   r@   rI   )r   r  r  rW  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>>	?	?@ @ @ @ @ @r?   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 r6   r   )r  dsks     r<   r  z9test_is_dask_collection.<locals>.DummyCollection.__init__  s    DIIIr?   c                    | j         S r6   r  r  s    r<   __dask_graph__z?test_is_dask_collection.<locals>.DummyCollection.__dask_graph__  
    9r?   N)r{   r|   r}   r  r  r7   r?   r<   DummyCollectionr    s2        	 	 		 	 	 	 	r?   r  r4   r@   )r(   r   )r  rr   s     r<   test_is_dask_collectionr    s            	

QAa     !!$$$$$oob1122222!/2222222r?   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>.ANamedTuplerC  r9   NrD  r7   r?   r<   ANamedTupler    s         r?   r  r4   r   r@   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 )Nr9   r:   r4   r@   r;   r   r   erI   r   grD   hr   )r   rB  )r9   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%%% 
$ r?   c              3     K   | ]}|V  d S r6   r7   .0r   s     r<   	<genexpr>z*test_unpack_collections.<locals>.<genexpr>  s"      001000000r?   rI   )~a~b~cr  r  r  traverseFr9   c                      t          d          )NzShouldn't have been called)rw  )r  s    r<   failz%test_unpack_collections.<locals>.fail  s    5666r?   r  )r   r(   r$   r   )r9   r:   r;   r  r  r3  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;r?   c                     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	                      }t	                      }t           | d|fdd|fddd	d
did|fd|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 r6   )r   keysr  r  r  s      r<   r  z;test_get_collection_names.<locals>.DummyCollection.__init__  s    DIDIIIr?   c                    | j         S r6   r  r  s    r<   r  zAtest_get_collection_names.<locals>.DummyCollection.__dask_graph__  r  r?   c                    | j         S r6   )r  r  s    r<   __dask_keys__z@test_get_collection_names.<locals>.DummyCollection.__dask_keys__  r  r?   N)r{   r|   r}   r  r  r  r7   r?   r<   r  r    sA        	 	 		 	 		 	 	 	 	r?   r  r4   r@   r7   r   a-1b-2rI   r;   r   >   r;   r  r  )r   r   	TypeErrorr   r   r   )r  h1h2s      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 
B	B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                 L   t                      } t                      }t          d          dk    sJ t          d          s
J d            t          d| |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 )Nrp   foo-123r4   r7   r   )r   r   r   r   r  r  r  s     r<   test_get_name_from_keyr    s   	B	B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                      } t                      }t          d| |fddi          d| |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 )Nrp   r  bazr   )rp   r  r  zbar-456r4   r7   r   )r"   r   r   r   r  r  s     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	B	B	2r2Y4FGG

L    
 
y	!	! # #Ar"""# # # # # # # # # # # # # # #	y	!	! $ $B###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	y	!	! & &D"%%%& & & & & & & & & & & & & & & & & &s6   3CCC4DDD5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 r6   r  r  s      r<   r  zTuple.__init__"  s    



r?   c                    t          |t                    st          S t          t          | j        |j                  | j        |j        z             S r6   )rM   r  NotImplementedr   r  r  )r  others     r<   __add__zTuple.__add__&  sA    %'' 	"!!U4:u{33TZ%+5MNNNr?   c                    | j         S r6   )r  r  s    r<   r  zTuple.__dask_graph__+  
    zr?   c                    | j         S r6   r  r  s    r<   r  zTuple.__dask_keys__.  r  r?   c                :    t          t          |                     S r6   )tupler   r  s    r<   __dask_layers__zTuple.__dask_layers__1  s    )$//000r?   c                    | j         S r6   r  r  s    r<   r#  zTuple.__dask_tokenize__4  r  r?   c                    t           dfS )Nr7   )r  r  s    r<   __dask_postcompute__zTuple.__dask_postcompute__7  s    byr?   c                *    t           j        | j        ffS r6   )r  _rebuildr  r  s    r<   __dask_postpersist__zTuple.__dask_postpersist__:  s    ~
},,r?   N)renamec               D    rfd|D             }t          | |          S )Nc                0    g | ]}t          |          S r7   )r"   )r  keyr  s     r<   
<listcomp>z"Tuple._rebuild.<locals>.<listcomp>@  s$    EEE'V44EEEr?   )r  )r  r  r  s     `r<   r  zTuple._rebuild=  s5     	FEEEEEEEDS$r?   )r{   r|   r}   	__slots__staticmethodr   threadedget__dask_scheduler__r  r  r  r  r  r#  r  r  r  r7   r?   r<   r  r    s        "I%dm&788  O O O
    1 1 1    - - - &*         \     r?   r  c                 H
   t                      } t                      }d| fdd|fdi}d| ft          d| fd|ffd|ft          d| fdfi}|                    |           dt          d| fd|ffi}|                    |           t          i g           }t          |d| fd|fg          }t          |d| fd|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| fdd|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| fdd|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 )Nrr   r4   r@   r   r   c                ,    h | ]}t          |          S r7   r   )r  colls     r<   	<setcomp>z)test_custom_collection.<locals>.<setcomp>h  s    ;;;4;;;r?   r   >   rr   r   r   r7   rj   )rI   r   )rZ   )r4   r@   rI   r   rZ   rI   r   r  ww3x3r      )r   r  z3F   )r  )r   r   updater  r   r   AttributeErrorrp   r   r#   r   r   r   r   r   r!   rM   r  sortedr  valuesr  )r  r  r  dsk2dsk3r  rr   r   r   r  t2w2x2y2z2t3rebuildr  r  r  r  s                        r<   test_custom_collectionr  D  s   	B	B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   2DD
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   )Callbackrc  r   npartitionsr4   r@   c                .                         |           S r6   appendr  r  r  s     r<   rH   z%test_compute_no_opt.<locals>.<lambda>      T[[-=-= r?   )pretasksingle-threadedF)	scheduleroptimize_graphc                &    g | ]}d |d         v |S r   r   r7   r  ks     r<   r  z'test_compute_no_opt.<locals>.<listcomp>  !    111a5AaD=====r?   c                &    g | ]}d |d         v |S r   r   r7   r  s     r<   r  z'test_compute_no_opt.<locals>.<listcomp>  r  r?   c                .                         |           S r6   r  r	  s     r<   rH   z%test_compute_no_opt.<locals>.<lambda>  r
  r?   r  c                &    g | ]}d |d         v |S r  r7   r  s     r<   r  z'test_compute_no_opt.<locals>.<listcomp>  r  r?   ra   c                &    g | ]}d |d         v |S r  r7   r  s     r<   r  z'test_compute_no_opt.<locals>.<listcomp>  r  r?   c                &    g | ]}d |d         v |S )zadd-mulr   r7   r  s     r<   r  z'test_compute_no_opt.<locals>.<listcomp>  s&    555a9!#4#4#4#4#4r?   )dask.callbacksr  dbfrom_sequencerW  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 )Nrc  r   r   r   chunksr4   r@   )rT   r   reshapeda
from_arrayr   allclose)r  darrdarr1darr2out1out2s         r<   test_compute_arrayr/    s    
))C..
 
 
*
*C==V=,,D1HE1HE&&JD$;;tS1W%%%%%;;tS1W%%%%%%%r?   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_eqrc  r   r#  r$  r4   )axis)dask.array.utilsr2  rT   r   r&  r'  r(  meanr!   r   r   issubsetr   r  )r2  r  rr   r   s       r<   test_persist_arrayr7    s    ******
))C..
 
 
*
*C
c&))A	
Q!&&a&.. A			AIaOOOqv;;'''''qv;;!-''''''r?   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   r@   )r]   r%  r4   rI   r:   r   r:   r4   r  r:   r:  r;  r4   r@   rI   r   )r'  zerosrC  r  rT   re   r   rM   Arrayr  utilsr2  r9   r   r  r  r:   s        r<   test_persist_array_renamerA    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,,,'''''r?   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   rI   rI   r   r@   r  r4   )	r   r   ddfrom_pandasr9   r:   r   r?  r2  )r   ddfddf1ddf2r-  r.  s         r<   test_compute_dataframerI    s    	LLL|||<<	=	=B
...
+
+C519D535=Dt$$JD$HtRTAX&&&HtRTBD[)))))r?   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   rZ   ra   r   r@   r  r   )
r   r   rD  rE  r   r  r!   rM   r?  r2  )r   rG  rH  s      r<   test_persist_dataframerL    s    	LLL|||<<	=	=B>>"!>,,q0Dt""$$%%****<<>>DdBL)))))t""$$%%****HtT"""""r?   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<  r@   r  r   )
r   SeriesrD  rE  r   r  r!   rM   r?  r2  dsdds1dds2s      r<   test_persist_seriesrS    s    	<<<	 	 B>>"!>,,q0Dt""$$%%****<<>>DdBI&&&&&t""$$%%****HtT"""""r?   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<  r@   r  r   r4   )r   rN  rD  rE  minr   r  r!   rM   coreScalarr?  r2  rO  s      r<   test_persist_scalarrX    s    	<<<	 	 B>>"!>,,0022Dt""$$%%****<<>>DdBGN+++++t""$$%%****HtT"""""r?   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<  rK  r   )r@   rI   r   r   )r   rZ   r{  r   r@   r  rr   r   r-  r  rr   r[  r-  )
r   r   rD  rE  r  iloc_namer  r?  r2  )df1df2rG  r   r  r  rH  s          r<   test_persist_dataframe_renamer`    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!!!!!r?   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<  rK  r@   r  rZ  r  rr   r[  r-  )
r   rN  rD  rE  r  r\  r]  r  r?  r2  )ds1ds2rQ  r   r  r  rR  s          r<   test_persist_series_renamerd    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!!!!!r?   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<  r@   r  r[  r   r  rr   )
r   rN  rD  rE  rU  r  r]  r  r?  r2  )rb  rQ  r   r  rR  s        r<   test_persist_scalar_renamerf    s    
))LLL
!
!C>>#1>--1133D--//MGT7Ha=B4BBBS0ABBDH:----HtQr?   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 )Nrc  r   r#  r$  r4   r<  rC  r   r@   r  )rT   r   r&  r'  r(  r   r   rD  rE  r9   r   r)  r?  r2  )r  r*  r   rF  arr_outdf_outs         r<   test_compute_array_dataframerj  $  s    
))C..
 
 
*
*C==V=,,q0D	LLL|||<<	=	=B
...
+
+
-
1CdC((OGV;;wa(((((Hvrtax(((((r?   c                     t                               t          j                            d          d                                g          } t
                              | d           d S )NrI   r4   r   rs  columnsr   r  )r   r   rT   rU   r   rD  rE  r   s    r<   -test_compute_dataframe_valid_unicode_in_bytesro  /  sM    	29++F33dkkmm_	M	MBNN21N%%%%%r?   c                     t                               t          j                            d          dg          } t                              | d           d S )Nrl  u   rm  r   r  )r   r   rT   rU   rD  rE  r   s    r<   &test_compute_dataframe_invalid_unicoderq  5  sG     
29++F33hZ	H	HBNN21N%%%%%r?   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   r@   r$  rL   c                 $    t                     S r6   )r   )r:   rr   s   r<   rH   z(test_compute_array_bag.<locals>.<lambda>A  s    gamm r?   r  r  )
r'  r   r  r  r   r   rw  r   rT   r)  )xxbbr:   rr   s     @@r<   test_compute_array_bagrv  <  s    
		!A	A
##A
M*33333444Q%6777FB;;r299Q<<(((((??????r?   c                     t                               dd          } d}t          | |          \  }}||                                 k                                    sJ ||k    sJ t          d          dk    sJ d S )Nr   r@   r$  r   r   )r'  r   r   all)rr   r   rt  yys       r<   test_compute_with_literalr{  H  s|    
		!A	A
AQ]]FB!))++""$$$$$77771::r?   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 )Nr4   r   r@   r   r   r4   r@   rZ   ra   r@   Fr  r   ra   r(   r   )r9   r:   r;   r   s       r<   test_compute_nestedr  T  s    

QA	AA	AA!Q++aV44iii  9    
 1a&!e
,
,
,Cq6!9>>>>q6!9>>>>q6Q;;;;;;r?   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   r@   r$  mydaskfilename
mydask.pngz
mydask.pdfr4   r9   r8   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   rw  )r   rr   r  s      r<   test_visualizer  c  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   r@   r$  r  r  )r   r  r+   r'  r   r   r%   r  r  r   rM   Digraph)r  r   rr   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   r@   r$  dot)	extensionorderRdBu)colorr  cmapzcolor="#)r   r  r'  r   r,   r%   r   read)rr   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r?   c                    t          |           } | D ]5}| |         d         t          k    rt          f| |         dd          z   | |<   6| S )Nr   r4   )r  r/   r-   )r  r  r  s      r<   
inc_to_decr    sQ    
s))C - -s8A;#vC,CHJr?   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 )Nr4   r@   optimizationsr   )r   r(   r/   r   r   r   r  rq   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 )Nr4   r  )
r   r(   r/   r    r  r   r  r   r   zip)rr   r   r   r  r  r  constantr  solsr  y3r  x4y4z4r9   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 )Nr4   r@   r   r   r9   r:   rL   )r   r@   Fr  r   )r   r(   r/   r    rM   r'   r  r   )r9   r:   r;   r  rQ  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      r?   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  " "'!!!!!" "r?   c                 4    t          ddd          dk    sJ d S )Nr4   r@   rI   rL   )r!   r7   r?   r<   test_persist_literalsr  $  s%    1ay((((((r?   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 )Nr4   r   r@   r   r   r9   r:   r   r}  r~  Fr  ra   r(   r!   rM   r'   r   )r9   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      r?   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!   rM   r'   r  r   r   r   )x1r  r  rt  s       r<   test_persist_delayedr  8  s    	B	b		B	b		BBKKERb'"""""6RVrw<<1::<<2::<<''''''r?   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:   r4   )r'   r   r!   r  r  r   )r  r   dps      r<   test_persist_delayed_custom_keyr  G  s    c3Q'((A99;;!	
B::<<16S======S!H$$$$$$r?   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 )Nr4   r@   r  )r'   r   r  r  r  r   )r  r  new_keyr   r   r  r  s          r<   test_persist_delayed_renamer  Q  s     	c1XA99;;!**,,MGT	'1	4	4	4	4V	4	4B::<<16W==WaL((((((r?   c                     t          d          } t          |           \  }t          |t                    sJ |                                dk    sJ d S r   r  )rr   rt  s     r<   test_persist_delayedleafr  d  sO    

AAJJERb'"""""::<<1r?   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>.Cr4   N)r{   r|   r}   rr   r7   r?   r<   Cr  l  s        r?   r  r4   )r(   rr   r!   rM   r'   r   )r  rr   rt  s      r<   test_persist_delayedattrr  k  s{            	

AAJJERb'"""""::<<1r?   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   r@   r$  r4   rL   r  r  )r'  r   r  r  r  r/   r   r   rw  r!   rM   r>  Bagr   r   r   r  rT   r)  list)rr   r:   rt  ru  s       r<   test_persist_array_bagr  u  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 )NrL   r@   r  c                    | dz  S Nr@   r7   rq   s    r<   rH   z"test_persist_bag.<locals>.<lambda>  
    Q r?   r   syncr  )
r  r  r  r   r  r!   rM   r  r?  r2  r   s     r<   test_persist_bagr    s    
22266GGAq!!""a''''			F	##Aa     q!!""a''''Hq!r?   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 )	NrL   r@   r  c                    | dz  S r  r7   rq   s    r<   rH   z#test_persist_item.<locals>.<lambda>  r  r?   rZ   r  r  r4   )r  r  r  rU  r   r  r!   rM   Itemr?  r2  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!r?   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 )NrL   r@   r  r   r   r   r9  r  r:   r:  r;  )r   r   r   )	r  r  r  r   rM   r  r  r?  r2  r@  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)))$$$$$r?   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 )NrL   rr   r   r  )
r  r  rU  r  r   rM   r  r  r?  r2  )r9   r   r  r:   s       r<   test_persist_item_change_namer    s    
##''))A**,,MGTa6466666Aa!!!!!??%%%%Hq!r?   c                     t          d          D ]} t          d            dt          t                    cxk     rdk     sn J d S )NrS   c                    | S r6   r7   rq   s    r<   rH   z6test_normalize_function_limited_size.<locals>.<lambda>  s    Q r?   2   iX  )rW  r   r   r   )_s    r<   $test_normalize_function_limited_sizer    s]    4[[ ( (;;''''N##))))c))))))))r?   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 r6   )r  r  s    r<   rH   zAtest_normalize_function_dataclass_field_no_repr.<locals>.<lambda>  s    TZ r?   )	namespacer4   r@   )rM  rO  rH  fieldr   )r  rP  rQ  s      r<   /test_normalize_function_dataclass_field_no_reprr    s    "
5++777	89&(?(?@	 	 	A QqTT11Q44Bb!!%7%;%;;;;;b!!%7%;%;;;;;;;r?   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   rx  r$  c                >    d |                                  D             S )Nc                *    i | ]\  }}|t           d |fS )r@   )r   )r  r  vs      r<   
<dictcomp>zBtest_optimize_globals.<locals>.optimize_double.<locals>.<dictcomp>  s$    77741aCA;777r?   )itemsr  r  s     r<   optimize_doublez.test_optimize_globals.<locals>.optimize_double  s    77399;;7777r?   r   r1  r4   )array_optimizer@   F)check_chunksr  r  r  )r   r  onesr4  r2  rT   r   r   r   r  rW  r   r  r/   )r'  rr   r	  r2  r:   rt  ru  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   rx  r$  r{  r4   ra   r@   c                b    | t          j                  k    sJ t          j        | |          S r6   )r  r   r  )r  r  r   s     r<   my_getz"test_optimize_None.<locals>.my_get  s.    d16ll""""xT"""r?   )r
  r  )r   r  r  r   r   r   r   )r'  rr   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{   r7   )r  r  kwargss      r<   schedulez(test_scheduler_keyword.<locals>.schedule  s    wr?   rp   r4   r@   r  r  threads)r   r(   r/   r   r   r   r   )r  rr   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 )Nr4   r  z
scheduler=)
r(   r/   r   r   r  r   r   r  rN   value)rr   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_workersr7   r?   r<   r  r  
  s        LLLr?   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   r7   r?   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"""r?   c                     dS r   r7   r7   r?   r<   rH   z)test_callable_scheduler.<locals>.<lambda>!  s    1 r?   r  r4   r   r  )r  r)  s    @r<   test_callable_schedulerr+    so    WF# # # # # 799''#'66!;;;;!9r?   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)purerI   c                &    g | ]} d           S )rh   r7   )r  r   r   s     r<   r  z+test_num_workers_config.<locals>.<listcomp>/  s!    ,,,A3,,,r?   r4   )num_workers	chunksizer  c                    h | ]	}|j         
S r7   )	worker_idr  s     r<   r  z*test_num_workers_config.<locals>.<setcomp>3  s    111qq{111r?   )r(   r  sleeprW  r   r   r   r)   r   resultsr   )r  r2  r9   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   r@   r4   r$  r  c                    | S r6   r7   r  s     r<   rH   z(test_optimizations_ctd.<locals>.<lambda><  s    c r?   )r   r  r   r   r   r   r   )r'  rr   dsk1r  s       r<   test_optimizations_ctdr>  8  s    		\	*	*B
		!A	rr"Aqc""D	/,A,A+BC	D	D ' '!1#&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 4<<<<<<r  c                    t                      } 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
| dfd          d| 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-4dfeea2f9300e67a75f30bf7d6182ea4rr   z"x-dc2b8d1c184c72c19faa81c797f8c6b0i  "x-b76f061b547b00d18b9c7a18ccc47e2dr-  )r@  r4   z	sum-1-2-3r4   z$sum-1efd41f02035dc802f4ebb9995d07e9dr@   )r   r   r   r   r  )r  s    r<   test_clone_keyrA  B  s4   A[#&&*PPPPPS#"FFFFFS#"FFFFFXs##'PPPPPk1a(#...		3    
 
y	!	!  !Q                 s   B::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__\  sB     99....I,577,S$AA&AAAr?   )r{   r|   r}   __doc__classmethodrH  __classcell__)rJ  rK  s   @r<   MyDaskArrayrD  Y  sX        LL		B 	B 	B 	B 	B 
	B 	B 	B 	B 	Br?   rO  r   )	r   r  r   r>  r   r  r  r?  r2  )r'  rr   rO  r  rK  s       @r<   2test_compute_as_if_collection_low_level_task_graphrP  Q  s    		\	*	*B
		"A I	B 	B 	B 	B 	B 	B 	Bbh 	B 	B 	B &Q%%''):): 	F Hq&!!!!!r?   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  o  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    s     %%%
()))>N!"9::8V8889		
	 	D 	r?   r   rj   )
__future__r   rM  r   rf  r  r   r  r  r  r3  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'  rD  rT   rt  r   r=   rB   rE   rJ   rP   markskipifrX   r_   rb   rf   rm   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r)  r+  r.  r1  r4  r8  parametrizer@  	dataclassrB  rG  rT  rX  r\  rN   rC  r_  ra  filterwarningsrh  ry  platformversion_infor  r  r  r  r  r  r  r  r  r  r  r!  r/  r7  rA  rI  rL  rS  rX  r`  rd  rf  rj  ro  rq  rv  r{  r  boolflagsxfailr  r  r  r  r  r  r  r  r  r  r  r  r   some_hashabler  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r+  flakyslowr:  r>  rA  rP  rb  rj  r7   r?   r<   <module>r     sn   " " " " " "       				      



  # # # # # # ' ' ' ' ' ' - - - - - - - - - - - -         $ $ $ $ $ $ $ $  . . . . . . . . . . . .                                                *       ) ) ) ) ) ) ) ) % % % % % % . . . . . . & & & & & & & & 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! ! !H      & & &(#  #  #  #  #  #  #  # LO! O! O!d< < <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&> ?@@% % A@% 	b#	sCj#	sCj#
=	!GW#57OP	 ) ) )     H  *    % % %  * * *
< 
< 
<1 1 10  $ $ $,+ + +       	# 	# 	#   "1--y+&>??' ' @?  .-'     " " "<B B B2 
 
 
 
  r?   