
    tfZ                    B   d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlZd dlZd d	lmZ d dlZd dlmZ d d
lmZ d dlmZmZmZ d dlmZ d dl m!Z!  G d d      Z"ejF                  jI                  d      d        Z%d Z&d Z'e G d d             Z( ed       G d d             Z)ejF                  jU                  de(e)f      d        Z+d Z,d Z-d Z.d Z/d  Z0d! Z1d" Z2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8d) Z9d* Z:d+ Z;d, Z<d- Z=ejF                  jU                  d.e>e?e@g      d/        ZAd0 ZBd1 ZCd2 ZDd3 ZEejF                  jU                  d4d5d6gd7ed5d6fg d8g      d9        ZFd: ZGd; ZHejF                  jI                  d      d<        ZId= ZJd> ZKd? ZLd@ ZMdA ZNdB ZOdC ZPdD ZQdE ZRdF ZSdG ZTdH ZUdI ZVdJ ZWdK ZXdL ZYdM ZZedN        Z[ edOP      dQ        Z\ejF                  jU                  dR eeZ       ej                  e[ejF                  j                  dST      U       ej                  e\ejF                  j                  dST      U      g      dV        Z_ejF                  jU                  dR eeZ      e[e\g      dW        Z`dX ZadY ZbdZ Zcy)[    )annotationsN)
namedtuple)	dataclassfield)partial)addsetitem)random)
NamedTuple)merge)compute)Delayeddelayedto_task_dask)HighLevelGraph)incc                  b    e Zd Z eej
                  j                        Zd Zd Z	d Z
d Zd Zy)Tuplec                     || _         || _        y N)_dask_keys)selfdskkeyss      a/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/dask/tests/test_delayed.py__init__zTuple.__init__   s    

    c                    | j                   S r   r   r   s    r   __dask_tokenize__zTuple.__dask_tokenize__       zzr   c                    | j                   S r   )r   r!   s    r   __dask_graph__zTuple.__dask_graph__"   r#   r   c                    | j                   S r   r    r!   s    r   __dask_keys__zTuple.__dask_keys__%   r#   r   c                    t         dfS )N tupler!   s    r   __dask_postcompute__zTuple.__dask_postcompute__(   s    byr   N)__name__
__module____qualname__staticmethoddaskthreadedget__dask_scheduler__r   r"   r%   r'   r,   r)   r   r   r   r      s0    %dmm&7&78r   r   z#ignore:The dask.delayed:UserWarningc                 z   t        dd      } t        dd      }t        | |dg      \  }}|g dk(  sJ t        | |df      \  }}|t        g dfk(  sJ t        |      t	        | j
                  |j
                        k(  sJ t        | d|di      \  }}|t        ddgddggfk(  s|t        ddgddggfk(  sJ t        |      t	        | j
                  |j
                        k(  sJ t        dg d	      } || |d      }t        |      \  }}||dddfk(  sJ t        |      t	        | j
                  |j
                        k(  sJ t        t        | |d            \  }}|t        dddfk(  sJ t        |      t	        | j
                  |j
                        k(  sJ  G d
 dt              }t         |             \  }}t        |      |u sJ t        |      i k(  sJ t        ddt        ddfd	g d	      }t        |      \  }}||v sJ  |j                  |      }|t        g d	fk(  sJ ||j                  k(  sJ y )N   aname   b   )r7   r;   r<   fr7   r;   cc                      e Zd Zy)"test_to_task_dask.<locals>.MyClassN)r-   r.   r/   r)   r   r   MyClassrA   F   s    r   rB   )r   r   r+   dictr   r1   r   slicetyper   r   popr   )r7   r;   taskr1   r=   xrB   s          r   test_to_task_daskrI   ,   sI   AAq!Qi(JD$=   q!Qi(JD$E=)))):qvvqvv....q!Ql+JD$DC8c1X.//4DC8cSTXBV;W3WWW:qvvqvv....3(A	!Q
AaJD$AsC####:qvvqvv....eAq!n-JD$E3Q'''':qvvqvv....$  gi(JD$:   : 	AAS#sO4oFAaJD$4<<A((((177??r   c                    t        t              }  | dd      j                         dk(  sJ  | dd      dz   j                         dk(  sJ  |  | dd      d      j                         dk(  sJ t        d      }|j                         dk(  sJ d|j                  j	                         v sJ  |  | |d      d      }|j
                  |j                  v sJ y )Nr6   r:   r<      )r   r   r   r1   valueskey)add2r7   r;   s      r   test_delayedrO   V   s    3<D1:1$$$AJN##%***Q
A&&(A---
A99;!T!QZA55AFF??r   c                      G d dt               } t        j                  d      }t        j                  d | |      i      }d } t        |      |      }|j                         dk(  sJ y )Nc                      e Zd ZU ded<   y)1test_delayed_with_namedtuple.<locals>.ANamedTupleintr7   Nr-   r.   r/   __annotations__r)   r   r   ANamedTuplerR   d   s    r   rV   r<   r7   r7   c                     | d   j                   S )Nr7   rW   objs    r   return_nestedz3test_delayed_with_namedtuple.<locals>.return_nestedj   s    3xzzr   )r   r1   r   r   )rV   literal
with_classr[   finals        r   test_delayed_with_namedtupler_   c   sa    j  ll1oGsK'$:;<J #GM":.E==?ar   c                      e Zd ZU ded<   y)ANonFrozenDataClassrS   r7   NrT   r)   r   r   ra   ra   r       
Fr   ra   T)frozenc                      e Zd ZU ded<   y)AFrozenDataClassrS   r7   NrT   r)   r   r   re   re   w   rb   r   re   clsc                    t        d      }t        d | |      i      }d } t        |      |      }|j                         dk(  sJ y )Nr<   datarW   c                     | d   j                   S Nrh   rW   rY   s    r   r[   z2test_delayed_with_dataclass.<locals>.return_nested       6{}}r   r   r   )rf   r\   r]   r[   r^   s        r   test_delayed_with_dataclassrm   |   sJ    ajG&#.12J #GM":.E==?ar   c                 8   t                G d d             } t        j                  d      }t        j                  t
              5 }t        j                  d | |      i       d d d        j                  d       |j                  d       y # 1 sw Y   ,xY w)Nc                       e Zd ZU ded<   ddZy)@test_delayed_with_dataclass_with_custom_init.<locals>.ADataClassrS   r7   c                    || _         y r   rW   r   r;   s     r   r   zItest_delayed_with_dataclass_with_custom_init.<locals>.ADataClass.__init__   	    DFr   Nr;   rS   r-   r.   r/   rU   r   r)   r   r   
ADataClassrp          	r   rv   r<   rh   r;   z custom __init__ is not supported)r   r1   r   pytestraises	TypeErrormatch)rv   r\   es      r   ,test_delayed_with_dataclass_with_custom_initr~      s~    [   ll1oG	y	! 6Qfj73456 GGMGG/0	6 6s   BBc                     t                G d d             } t        d | d      i      }d } t        |      |      }|j                         dk(  sJ y )Nc                       e Zd ZU ded<   ddZy)Ftest_delayed_with_dataclass_with_eager_custom_init.<locals>.ADataClassrS   r7   c                    || _         y r   rW   rr   s     r   r   zOtest_delayed_with_dataclass_with_eager_custom_init.<locals>.ADataClass.__init__   rs   r   Nrt   ru   r)   r   r   rv   r      rw   r   rv   rh   r<   rx   c                     | d   j                   S rj   rW   rY   s    r   r[   zItest_delayed_with_dataclass_with_eager_custom_init.<locals>.return_nested   rk   r   r   r   r   )rv   r]   r[   r^   s       r   2test_delayed_with_dataclass_with_eager_custom_initr      s\    [   &*q/23J #GM":.E==?ar   c                     t          G d d             fd} t        d | d      i      }d } t        |      |      }|j                         dk(  sJ y )Nc                  4    e Zd ZU ded<    ed      Zded<   y)Otest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.ADataClassrS   r7   Finitr;   Nr-   r.   r/   rU   r   r;   r)   r   r   rv   r          E"3"r   rv   c                (     |       }d|_         |S NrW      rx   r7   rh   rv   s     r   prep_dataclasszStest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.prep_dataclass       Ar   rh   r<   c                     | d   j                   S rj   rW   rY   s    r   r[   zRtest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.return_nested   rk   r   r   )r   r]   r[   r^   rv   s       @r   ;test_delayed_with_eager_dataclass_with_set_init_false_fieldr      sa    # # #
 &."345J #GM":.E==?ar   c                 6   t          G d d             t        j                  d      } fd}t        j                  t
              5 }t        j                   ||              d d d        j                  d       |j                  d       y # 1 sw Y   ,xY w)Nc                  4    e Zd ZU ded<    ed      Zded<   y)Itest_delayed_with_dataclass_with_set_init_false_field.<locals>.ADataClassrS   r7   Fr   r;   Nr   r)   r   r   rv   r      r   r   rv   r<   c                (     |       }d|_         |S r   rx   r   s     r   r   zMtest_delayed_with_dataclass_with_set_init_false_field.<locals>.prep_dataclass   r   r   z`init=False` are not supported)r   r1   r   ry   rz   
ValueErrorr|   )r\   r   r}   rv   s      @r   5test_delayed_with_dataclass_with_set_init_false_fieldr      s    # # # ll1oG
 
z	" .a^G,-. GGMGG-.	. .s   BBc                     t          G d d             } t        j                  d      }t        d | |      i      }d } t        |      |      }|j                         dk(  sJ y )Nc                  4    e Zd ZU ded<    ed      Zded<   y)Ktest_delayed_with_dataclass_with_unset_init_false_field.<locals>.ADataClassrS   r7   Fr   r;   Nr   r)   r   r   rv   r      r   r   rv   r<   rh   rW   c                     | d   j                   S rj   rW   rY   s    r   r[   zNtest_delayed_with_dataclass_with_unset_init_false_field.<locals>.return_nested   rk   r   )r   r1   r   r   )rv   r\   r]   r[   r^   s        r   7test_delayed_with_dataclass_with_unset_init_false_fieldr      sh    # # # ll1oG&*w"789J #GM":.E==?ar   c                 P   t        g d      } | d   j                         dk(  sJ | | z   j                         g dk(  sJ t        d      }| d | j                         ddgk(  sJ t        d      } | dz   j                         dk(  sJ d| z   j                         dk(  sJ | dz	  j                         dk(  sJ | dkD  j                         sJ | dz  j                         d	k(  sJ  G d
 d      }t         |             }t         |             }||z  j                         dk(  sJ y )Nr6   r:   r<   r   r6   )r6   r:   r<   r6   r:   r<   r:   
         d   c                      e Zd Zd Zy)test_operators.<locals>.dummyc                     y)Nr   r)   )r   others     r   
__matmul__z(test_operators.<locals>.dummy.__matmul__       r   N)r-   r.   r/   r   r)   r   r   dummyr      s    	r   r   r   rl   )r7   r;   r   r?   ds        r   test_operatorsr      s%   	AQ4<<>QE?? 2222
ARa5==?q!f$$$AE??"""E??"""F"""E??qD>>s"""  	AAE??!!!r   c                    t        d      } | j                  d      j                         g dk(  sJ | j                         j	                  dd      j                         j                  d      j                         dk(  sJ | j                  dd      j                  | j                  dd      j                  k(  sJ | j                  dd	
      }|j                  d	k(  sJ y )Nz	a b c d e )r7   r;   r?   r   r}   BAr:   Tpuretestdask_key_name)r   splitr   upperreplacecountrM   )r7   os     r   test_methodsr      s    A773<!%>>>>779S#&,,.44S9AACqHHH773T7"&&!''#D'*A*E*EEEE	6*A55F??r   c                 L   t        d      } | j                  j                  | j                  j                  k(  sJ | j                  j                         dk(  sJ | j                  j                         dk(  sJ | j                  | j                  z   j                         dk(  sJ y )N       @      ?r:   r6   r<   )r   real_keyr   imagrW   s    r   test_attributesr     s~    A66;;!&&++%%%66>>q   66>>q   FFQVVO$$&!+++r   c                     t        g d      } | j                  d      }t        |j                         j	                         D ch c]  }|d   	 c}vsJ y c c}w )Nr   r6   r   )r   indexgetattrr%   rL   )r7   r   vs      r   "test_method_getattr_call_same_taskr     sK    	A	
A)9)9);)B)B)DEA1Q4EEEEEs   Ac                 T   t        j                  d      } t        d      }t        j                  t              5  | j                  |       d d d        t        | j                  dgd            j
                  j                         | j                  d      k(  sJ y # 1 sw Y   SxY w)Nnumpyr6   f8dtype)ry   importorskipr   rz   r{   r   arrayr   )nprH   s     r   test_np_dtype_of_delayedr     s     
		W	%B
A	y	! 
288QCt8,-33;;=$OOO s   BB'c                 d   d }  t        j                  |       d      }|j                          t        j                  t
        d      5  |j                  d       d d d        t        j                  t
        d      5  |j                          d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)Nc                    | dz   S Nr6   r)   rH   s    r   r   z(test_delayed_visualise_warn.<locals>.inc"      1ur   r6   z/dask.delayed objects have no `visualise` methodr|   zdesk_graph.svg)	file_name)r1   r   r   ry   warnsUserWarning	visualise)r   zs     r   test_delayed_visualise_warnr     s     	S!AIIK	L
 0 	
./0 
L
  	
 0 0 s   
B B&B#&B/c                 |    t        g d       t        j                  t         fd       t        j                  t         fd       t        j                  t         fd       t        j                  t         fd       t        j                  t         fd       t        j                  t         fd       y )Nr   c                     t         dd      S )Nfoor6   )setattrrW   s   r   <lambda>z%test_delayed_errors.<locals>.<lambda>7  s    WQq%9 r   c                     t         dd      S )Nr6   r   )r	   rW   s   r   r   z%test_delayed_errors.<locals>.<lambda>8  s    WQ1%5 r   c                     d v S r   r)   rW   s   r   r   z%test_delayed_errors.<locals>.<lambda>:  s    Q!V r   c                     t               S r   listrW   s   r   r   z%test_delayed_errors.<locals>.<lambda>;      T!W r   c                 $     j                         S r   )_hiddenrW   s   r   r   z%test_delayed_errors.<locals>.<lambda>=  s    !))+ r   c                     t               S r   )boolrW   s   r   r   z%test_delayed_errors.<locals>.<lambda>?  r   r   )r   ry   rz   r{   AttributeErrorrW   s   @r   test_delayed_errorsr   4  sd    	A
MM)9:
MM)56
MM)^,
MM)_-
MM."56
MM)_-r   c                     t        g d      } | d   | d   z   }| d   j                  |j                  v sJ | j                  |j                  v sJ t        |j                        dk(  sJ y )Nr   r   r<   )r   rM   r1   len)r7   ress     r   test_common_subexpressionsr   B  sc    	A
A$1+CQ488sxx55CHHsxx=Ar   c                     t        ddt        dft        dfd      } t        j                  |       \  }t	        |j                  j                               ddgk(  sJ |j                  |j                  k7  sJ y )Nr;   r6   r7   r>   )r   r   r1   optimizesortedr   _layerr   )rH   x2s     r   test_delayed_optimizer   J  sd    1C:S#J?@AMM!ER"'',,.!c3Z///99r   c                     t        d      } t        d      } t        t              | |g      }|j                         dk(  sJ y )Nr6   r:   r<   )r   sumr   r>   s      r   
test_listsr   T  s<    
A
AaVA99;!r   c                 &   t        d      } | dz   }| |df}t        |      j                         dk(  sJ | |dg}t        |      j                         g dk(  sJ | |dh}t        |      j                         h dk(  sJ | d|dddi}t        |      j                         ddddk(  sJ t        |      |    j                         dk(  sJ | |dd}t        |      j                         dd	ddk(  sJ t        |      d   j                         dk(  sJ y )
Nr6   r<   r   >   r6   r:   r<   r7   r;   r?   r>   r:   rl   r7   r;   lits      r   test_literatesr   [  s'   
A	AAa)C3<!Y...a)C3<!Y...a)C3<!Y...c1c1c
"C3<!%====3<?""$+++
"C3<!111%====3<$$&!+++r   c                     t        d      } | dz   }| |df}t        |      j                  t        |      j                  k7  sJ t        |d      j                  t        |d      j                  k(  sJ y )Nr6   r<   Tr   )r   rM   r   s      r   test_literates_keysr  l  si    
A	AAa)C3<ws|/////3T"&&'#D*A*E*EEEEr   c                     t        d      } t        d      } t        t              | dg|dggd       d   }|j                         dk(  sJ y )Nr6   r:   r      c                    | d   S )Nr   r)   r   s    r   r   z)test_lists_are_concrete.<locals>.<lambda>w  s
    qt r   )rM   )r   maxr   r>   s      r   test_lists_are_concreter  t  sL    
A
Aq"g2w'^<Q?A99;"r   typc                   t        d      }t        d      } t        t              t         | ||g                  }|j                         }|dk(  sJ d } t        |      t         | ||g                  }|j                         dk(  sJ y )Nr6   r:   r<   c                    t        |       S r   )r   )seqs    r   r=   ztest_iterators.<locals>.f  s    3xr   )r   r   iterr   )r  r7   r;   r?   rH   r=   s         r   test_iteratorsr  |  s    
A
AT#q!f+&'A			A6M6 	
4QF$%A99;!r   c                 \   d }  t        |              }|dddg}t        |d      j                         }t        |      dk(  sJ |d   |u sJ |dd  |dd  k(  sJ | || |ff}t        |d      j                         }t        |t              sJ |d   | k(  sJ |d   |u sJ d| |f|g}t        |d      j                         }t        |t
              sJ |d   dk(  sJ |d   d   | k(  r
|d   d   |u sJ |d   |u sJ t        d      }t        |d      }|j                         dk(  sJ y )	Nc                     t        d      )Nzshouldn't have computed)r   )argss    r   failz!test_traverse_false.<locals>.fail  s    233r   r6   r:   r<   F)traverser   r   )r   r   r   
isinstancer+   r   )r  r7   rH   r   r;   s        r   test_traverse_falser    sq   4 	A 
Aq!A
!e
$
,
,
.Cs8q==q6Q;;qr7ae 
q4)A
!e
$
,
,
.Cc5!!!q6T>>q6Q;; 
T1IqA
!e
$
,
,
.Cc4   q6Q;;q6!9Qa//q6Q;; 	
AE"A99;!r   c                     t        t        d      dd      }  t        t        d      dd      }| j                  |j                  k(  sJ t        t              } |       j                   |       j                  k7  sJ y NTr   r6   r:   )r   r   rM   r
   )v1v2myrands      r   	test_purer    se    	 4	 A	&B	 4	 A	&B66RVVV_F8<<68<<'''r   c                 X   t        t              } t        j                  j	                  d      5   | dd      j
                   | dd      j
                  k(  sJ 	 d d d        t        j                  j	                  d      5   | dd      j
                   | dd      j
                  k7  sJ 	 d d d        t        t        d      } t        j                  j	                  d      5   | dd      j
                   | dd      j
                  k(  sJ 	 d d d        t        d      j
                  t        d      j
                  k7  sJ t        j                  j	                  d      5  t        d      j
                  t        d      j
                  k(  sJ 	 d d d        t        j                  j	                  d      5  t        dd      j
                  t        dd      j
                  k(  sJ 	 d d d        t        g d      }|j                  d      j
                  |j                  d      j
                  k7  sJ t        j                  j	                  d      5  |j                  d      j
                  |j                  d      j
                  k(  sJ |j                  dd      j
                  |j                  dd      j
                  k7  sJ 	 d d d        t        j                  j	                  d      5  |j                  dd      j
                  |j                  dd      j
                  k(  sJ 	 d d d        t        j                  j	                  d      5  |j                  j
                  |j                  j
                  k(  sJ |d   }||z   j
                  ||z   j
                  k(  sJ 	 d d d        y # 1 sw Y   mxY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   xY w# 1 sw Y   2xY w# 1 sw Y   xY w# 1 sw Y   y xY w)	NT)delayed_purer6   r:   Fr   r   r   )r   r   r1   configsetrM   r   )funcrh   elements      r   test_pure_global_settingr     sN   3<D	d	+ 0Aqz~~a///0 
e	, 0Aqz~~a///0 3T"D	e	, 0Aqz~~a///0 1:>>WQZ^^+++	d	+ 0qz~~///0 
e	, Fqt$((GAD,A,E,EEEEF 9D::a=

1 1 1111	d	+ Nzz!}  DJJqM$5$5555zz!%z(,,

15
0I0M0MMMMN 
e	, Lzz!$z'++tzz!$z/G/K/KKKKL 
e	, Bzz~~///q''!&&7W+<*A*AAAAB B=0 00 00 0
0 0F FN NL LB Bsa   *O*O'*O '.O->2O:A7P?>P&AP OO O*-O7:PPP P)c                    t        d dd      }  | d      }t        |      dk(  sJ |\  }t        |      dk(  sJ j                  J |j                  J t	        j
                  t        fd       t	        j
                  t        fd       t	        j
                  t        d	        t	        j
                  t        d
        t        t        d       }  | d      j                  J t	        j
                  t        fd       t	        j
                  t        fd       t        d dd      }  | d      }t        |      dk(  sJ |\  j                         dk(  sJ j                  J t	        j
                  t        fd       t        d dd      }  | d      }t        |      dk(  sJ |j                         t               k(  sJ y )Nc                    | |  fS r   r)   r   s    r   r   ztest_nout.<locals>.<lambda>  s    a!W r   r:   Tnoutr   r6   )r6   c                     t               S r   r   rW   s   r   r   ztest_nout.<locals>.<lambda>      SV r   c                     t               S r   r   rW   s   r   r   ztest_nout.<locals>.<lambda>  r   r   c                 $    t        t        d      S )Nr%  r$  r   r   r)   r   r   r   ztest_nout.<locals>.<lambda>  s    gc&; r   c                 $    t        t        d      S )NTr+  r,  r)   r   r   r   ztest_nout.<locals>.<lambda>  s    gc&= r   r+  c                     t               S r   r   rW   s   r   r   ztest_nout.<locals>.<lambda>  r   r   c                     t               S r   r'  rW   s   r   r   ztest_nout.<locals>.<lambda>  r(  r   c                    | fS r   r)   r   s    r   r   ztest_nout.<locals>.<lambda>  s    aT r   c                     t               S r   r'  rW   s   r   r   ztest_nout.<locals>.<lambda>  r(  r   c                    t               S r   r*   r   s    r   r   ztest_nout.<locals>.<lambda>  s    UW r   r   )
r   r   r   _lengthry   rz   r{   r   r   r+   )r  rH   r;   r7   s      @r   	test_noutr4    s   $148DQAq6Q;;DAq1a=G###9999
MM)^,
MM)_-
MM*;<
MM*=>3T"DQA99
MM)_-
MM)^,>5DQAq6Q;;DQ99;!99
MM)^,$148DQAq6Q;;99;%'!!!r   rH   r6   r:   )r6   r:   r)   c                    t        |       }t        | |      }t        |      t        t        |            cxk(  r|k(  sJ  J |j                         | k(  sJ y )Nr+  )r   r   r   r   )rH   lengthr   s      r   test_nout_with_tasksr7    sR    
 VFAq6Sa\+V+++++99;!r   c            	     d   dd} t        |       } |ddt        d      dg |dd            }|j                         dk(  sJ t        | d	      }t        d      dg} |dd| |dd            }|j                         dk(  sJ  |dd| |dd            j                  |j                  k(  sJ  |dd| |dd            j                  |j                  k7  sJ  |dd|d
      j                  |j                  k7  sJ  |dd|d
      j                   |dd|d
      j                  k7  sJ y )Nc                X    | |z   t        |      z   t        |j                               z   S r   )r   rL   )r7   r;   r?   kwargss       r   mysumztest_kwargs.<locals>.mysum  s$    1us1v~FMMO 444r   r6   r:   r<   r   )r?   fourr   Tr   r   )r)   )r   r   rM   )r;  dmysumtenr?   s       r   test_kwargsr?    s,   5 U^F
A'!*ava|
<C;;=BU&F	QA
A1
.C;;=B!Q!&A,/33sww>>>!Q!&A,/33sww>>>!Q!!$((CGG333!Q!!$((F1a11,E,I,IIIIr   c                 B   t        ddt        ddfdg d      }  t        t        d      | d      } t        t        d      |       } t        t        d      |       j                  |j                  k(  sJ |j                         d	k(  sJ t        |||       d
k(  sJ y )Nr6   r:   r7   r;   r>   Tr   )r   r   rK   r6   r:   r<   r   r   rK   )r<   rA  r   )r   r   r   r   rM   r   )rH   r   ns      r   test_custom_delayedrC    s    AAS#sO4oFA	 4	 I	.B$"A"73T"1%))QUU222::<----1b! BBBBr   c                 Z   t        j                  d      } t        j                  d      }| j                  d      j                  d      }|j	                  |d      } t        t              ||dg      }t        |t              sJ | j                  |j                         ||z   dz         sJ |j                         j                         ||z   dz   j                         k(  sJ |d   j                         ||z   dz   d   k(  sJ t        |      \  }}|j                  j                         |j                         z
  rJ |j                         |j                  j                         z
  }t        |      dk(  sJ t        |      }|j                         |k(  j                         sJ y )	Nr   
dask.arrayr   r   r   r   r   chunksr6   )r   r   )ry   r   arangereshape
from_arrayr   r   r  r   allcloser   r   r1   r   r   all)	r   daarrdarrvalrG   r   diffdelayed_arrs	            r   test_array_delayedrU  '  sk   			W	%B			\	*B
))C.
 
 
*C==V=,D
'#,T1~
&Cc7###;;s{{}cCi!m44477939q="5"5"7777t939q=$"7777T"ID#yy~~#((*,,,88:		((Dt9>>$-K!S(--///r   c                 R   t        j                  d      } t        j                  d      }| j                  d      j                  d      }|j	                  |j
                        }|j                  |d      }|j                  |d      }t        j                  g d      }|||||g} t        t              |D cg c]  }|j                          c}      }	|	j                         d|j                         z  d|j                         z  z   t        g d      z   k(  sJ y c c}w )	Nr   rE  r   rF  rG  rH  r   r:   )ry   r   rJ  rK  dotTrL  dbfrom_sequencer   r   r   )
r   rO  arr1arr2darr1darr2r;   r
  iouts
             r   test_array_bag_delayedra  =  s    			W	%B			\	*B99S>!!(+D88DFFDMM$vM.EMM$vM.E
#AueQ
'C
'#,-A-
.C;;=A
NQ^;c)nLLLL .s   =D$c                     t        t        dd      dd      } t        j                  t        j                  |             }| j
                  |j
                  k(  sJ | j                  |j                  k(  sJ | j                  |j                  k(  sJ t        d      } t        j                  t        j                  |             }| j
                  |j
                  k(  sJ | j                  |j                  k(  sJ | j                  |j                  k(  sJ | j                  |j                  k(  sJ | j                  } t        j                  t        j                  |             }| j                  j                  |j                  j                  k(  sJ | j                  j
                  |j                  j
                  k(  sJ | j                  |j                  k(  sJ | j                  |j                  k(  sJ y )Nr:   Tr#  r6   r   )r   divmodpickleloadsdumpsr1   r   r3  _nout_purer   _obj_attrrH   ys     r   test_delayed_picklablerm  K  so   *QT*1a0AV\\!_%A66QVV66QVV99		!!!AV\\!_%A66QVV66QVV77agg77agg	AV\\!_%A66;;!&&++%%%66;;!&&++%%%77agg66QVVr   c                 D    t        d      dz   } | j                  d       y )Nr6   r:   r   )bogus_keywordrl   r   s    r   #test_delayed_compute_forward_kwargsrp  b  s    
QAIIBIr   c                 B     t        t        j                        d       y )Nr   )r   bytesdecoder)   r   r   test_delayed_method_descriptorrt  g  s    GELL#r   c                     t        t        d      }  | dd      }|j                  |j                  t        ddfik(  sJ | j                  | j                  t        ik(  sJ | j	                         t        k(  sJ y r  )r   r   r1   rM   r   )r=   r   s     r   test_delayed_callablerv  k  sh    $A	!QA66aeec1a[))))66aeeS\!!!99;#r   c                 Z    t        t        d      }  | ddd      j                  dk(  sJ y )NTr   r6   r:   r   r   )r   r   r   )r=   s    r   test_delayed_name_on_callrx  t  s+    $AQ',,555r   c                      G d d      }  | d      }t        |      }|j                         |u sJ |j                  j                         dk(  sJ  |       j                         dk(  sJ y )Nc                      e Zd Zd Zd Zy)test_callable_obj.<locals>.Fooc                    || _         y r   rW   )r   r7   s     r   r   z'test_callable_obj.<locals>.Foo.__init__{  rs   r   c                     y)Nr:   r)   r!   s    r   __call__z'test_callable_obj.<locals>.Foo.__call__~  r   r   N)r-   r.   r/   r   r~  r)   r   r   Foor{  z  s    		r   r  r6   r:   )r   r   r7   )r  r   r=   s      r   test_callable_objr  y  sb      a&CA99;#33;;=A3;;=Ar   c                    | S r   r)   r   s    r   identityr    s    Hr   c                     t        t        d      } ddg dd}ddg dd} | |      j                   | |      j                  k(  sJ y )NTr   r6      r   )rH   rl  r   )r   r  r   )r  data1data2s      r   test_deterministic_namer    sH    8$'D"9-E"9-E;tE{/////r   c                      t        t        t        d      d      d      j                   t        t        t        d      d      d      j                  k7  sJ y )Nr   Tr   r:   r  )r   r   r   r   r)   r   r   test_sensitive_to_partialsr    sM    ,R t,Q/44/773#$/277	8	8r   c                 6   t        d      j                  j                  d      sJ t        dd      j                  j                  d      sJ t        dd      j                  dk(  sJ d }  t        |       d      j                  j                  d      sJ y )	Nr6   zint-Tr   Xr8   c                    | dz   S r   r)   r   s    r   myfuncz!test_delayed_name.<locals>.myfunc  r   r   r  )r   r   
startswithrM   )r  s    r   test_delayed_namer    s    1:??%%f---14 %%0088813$$+++ 76?1!!,,X666r   c                 >   t        j                  d       t        j                  d      } | j                  dd      }t        |g      }t	        |j
                        j                  |j
                        sJ d t        fd|j
                  D              sJ y )Nr   rE  r   r   rH  c                t    t        | t              r| d   } | j                  d      d   j                  dd      S )Nr   -_ )r  r+   r   r   )ss    r   rM   ztest_finalize_name.<locals>.key  s4    a!Awws|A&&sB//r   c              3  J   K   | ]  } |      j                           y wr   )isalpha).0krM   s     r   	<genexpr>z%test_finalize_name.<locals>.<genexpr>  s     0As1v~~0s    #)ry   r   onesr   r  r1   issubsetrN  )rO  rH   r   rM   s      @r   test_finalize_namer    s}    
 			\	*B
1AAqvv;'''0 00000r   c                 :   t        j                  d       t        j                  d      } ddlm} | j	                  dd      j                         j                         }|D cg c]  } t        t              |       }} ||d   j                         y c c}w )Nr   rE  r   )
_check_dskrF  r   rH  )
ry   r   dask.array.utilsr  r  
to_delayedflattenr   r   r1   )rO  r  r  rH   xss        r   test_keys_from_arrayr    sy    
 			\	*B+
#..088:A#$	%a,'#,q/	%B	%r!uzz 
&s   $Bc                     G d d      }  | d      }|j                  dd      j                         dk(  sJ | j                  |dd      j                         dk(  sJ |j                  dd      j                         dk(  sJ | j                  dd      j                         dk(  sJ |j                  dd      j                         dk(  sJ | j                  dd      j                         dk(  sJ t	        |j                   t
        j                        sJ t	        | j                  t
        j                        sJ t	        | j                  t              sJ y )	Nc                  Z    e Zd ZdZd Zed        Zeed               Ze	ed               Z
y)+test_delayed_decorator_on_method.<locals>.Ar   c                    || _         y r   BASE)r   bases     r   r   z4test_delayed_decorator_on_method.<locals>.A.__init__  s	    DIr   c                &    | j                   |z   |z   S r   r  )r   rH   rl  s      r   	addmethodz5test_delayed_decorator_on_method.<locals>.A.addmethod  s    99q=1$$r   c                &    | j                   |z   |z   S r   r  )rf   rH   rl  s      r   addclassz4test_delayed_decorator_on_method.<locals>.A.addclass  s     88a<!##r   c                    | |z   S r   r)   rk  s     r   	addstaticz5test_delayed_decorator_on_method.<locals>.A.addstatic  s     q5Lr   N)r-   r.   r/   r  r   r   r  classmethodr  r0   r  r)   r   r   r   r    sX    	 
	% 
	% 
		$ 
 
	$ 
		 
 
	r   r   r   r<   r   k         )r  r   r  r  r  types
MethodTyper   )r   r7   s     r    test_delayed_decorator_on_methodr    s1    ( 	
#A;;q!$$&#---;;q!Q'')S000::a##%+++::a##%+++;;q!$$&!+++;;q!$$&!+++ akk5#3#3444ajj%"2"2333 akk7+++r   c                     t        d      } t        | j                  t              sJ t        | j                  j                  t              sJ t        | j                  j                  j
                  t              sJ y )N{   )r   r  r7   r   r;   r?   r   s    r   test_attribute_of_attributer    sS    Aacc7###acceeW%%%acceeggw'''r   c                 >   t        j                  d       t        j                  d      } ddlm}  |g dd      } |g dd      } t	        d	       |      } t	        d
       |      }| j                  ||gd      }| j                  j                  ||       y )Npandaszdask.dataframer   )Series)r7   r;   r7   categoryr   )r7   r?   r7   c                    | S r   r)   r   s    r   r   z&test_check_meta_flag.<locals>.<lambda>      1 r   c                    | S r   r)   r   s    r   r   z&test_check_meta_flag.<locals>.<lambda>  r  r   F)verify_meta)ry   r   r  r  r   from_delayedutils	assert_eq)ddr  r7   r;   rO  rY  r?   s          r   test_check_meta_flagr    s    
!			-	.Bj1Aj1A		a	 B		a	 B
Re4AHHq!r   c                    | dz   S r   r)   r   s    r   modlevel_eagerr    s    q5Lr   c                    | dz   S r   r)   r   s    r   modlevel_delayed1r        q5Lr   Fr   c                    | dz   S r   r)   r   s    r   modlevel_delayed2r    r  r   r=   z#3369)reason)marksc                     | d      }t        j                  t        j                  |t         j                              }|j	                         dk(  sJ y Nr:   )protocolr<   )rd  re  rf  HIGHEST_PROTOCOLr   r=   r   s     r   test_pickler    s@     	
!AV\\!f.E.EFGA99;!r   c                     | d      }t        j                  t        j                  |t        j                              }|j                         dk(  sJ y r  )cloudpicklere  rf  rd  r  r   r  s     r   test_cloudpickler    sD     	
!A+++A8O8OPQA99;!r   c                    t        d      } | j                  j                  j                         | j                  hk(  sJ | j                  j
                  | j                  t               ik(  sJ | j                         | j                  fk(  sJ t        |       }|j                  j                  j                         | j                  |j                  hk(  sJ |j                  j
                  | j                  t               |j                  | j                  hik(  sJ |j                         |j                  fk(  sJ t        j                  dd|j                  i|g      }t        j                  t        d      5  t        d|       d d d        t        d|d      }|j                         dk(  sJ |j                  j                          y # 1 sw Y   GxY w)	Nr6   r   alias)dependenciesznot inr   )layerr   )r   r1   layersr   rM   r  r  __dask_layers__r  r   from_collectionsry   rz   r   r   validate)d1d2hlgexplicits       r   test_dask_layersr  '  sx   	B77>> RVVH,,,77BFFCE?222BFF9,,,	2	B77>> RVVRVV$444477BFFCE266BFF8#DDDDBFF9,,,

)
)%'2661BRTQU
VC	z	2  w51H##%111MM s   ?GGc                 8   t        j                  d      5  t        j                  ddt        dft        dfdg       } t        d|       }d d d        t        j                         t        u sJ t        |j                   j                        dk(  sJ t        |j                   j                  d         dk(  sJ |j                   j                  d   j                  ddik(  sJ t        j                  |      \  }t        |j                         t        u sJ t        |j                   j                        dk(  sJ t        |j                   j                  d         d	k(  sJ |j                   j                  d   j                  ddik(  sJ y # 1 sw Y   FxY w)
Nbarr  r;   r6   r7   r>   r<   r   r:   )r1   annotater   r  r   r   rE   r   r  r   r   )graphr   d_opts      r   %test_annotations_survive_optimizationr  :  s`   	5	!  //3*C:6

 C  <>)))qvv}}"""qvv}}S!"a'''66==))eU^;;; }}QHU

~---uzz  !Q&&&uzz  %&!+++::S!--%???'   s   4FFc                     t         d        } | j                  dk(  sJ | j                  dk(  sJ  | j                  dd      dk(  sJ y )Nc                    | |z   S )This is a docstringr)   rk  s     r   r   z7test_delayed_function_attributes_forwarded.<locals>.addR  s     1ur   r   r  r6   r:   r<   )r   r-   __doc____wrapped__)r   s    r   *test_delayed_function_attributes_forwardedr  Q  sV      <<5   ;;////3??1a A%%%r   )d
__future__r   rd  r  collectionsr   dataclassesr   r   	functoolsr   operatorr   r	   r
   typingr   r  ry   tlzr   r1   dask.bagbagrY  r   dask.delayedr   r   r   dask.highlevelgraphr   dask.utils_testr   r   markfilterwarningsrI   rO   r_   ra   re   parametrizerm   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r+   r  r  r  r  r   r4  r7  r?  rC  rU  ra  rm  rp  rt  rv  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  paramxfailr  r  r  r  r  r)   r   r   <module>r     s/   "   " (  !         7 7 .  ( AB& C&R
     $   !46F GH	  I	 1" $ */( "".,FP*. ,"F uc 23 4 F(%BP"D VVc1a["b)	J"C AB0 C0*M. 
6
071"(,V( 	 	 	e  &fkk.?.?w.?.OP&fkk.?.?w.?.OP '.
!#46G	H&@.&r   