o
    NrfZ                  
   @  s  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 dZ"ej#$ddd Z%dd Z&dd Z'eG dd dZ(eddG dd dZ)ej#*de(e)fdd Z+d d! Z,d"d# Z-d$d% Z.d&d' Z/d(d) Z0d*d+ Z1d,d- Z2d.d/ Z3d0d1 Z4d2d3 Z5d4d5 Z6d6d7 Z7d8d9 Z8d:d; Z9d<d= Z:d>d? Z;d@dA Z<dBdC Z=ej#*dDe>e?e@gdEdF ZAdGdH ZBdIdJ ZCdKdL ZDdMdN ZEej#*dOdPdQgdRedPdQfg dSgdTdU ZFdVdW ZGdXdY ZHej#$ddZd[ ZId\d] ZJd^d_ ZKd`da ZLdbdc ZMddde ZNdfdg ZOdhdi ZPdjdk ZQdldm ZRdndo ZSdpdq ZTdrds ZUdtdu ZVdvdw ZWdxdy ZXdzd{ ZYd|d} ZZed~d Z[edddd Z\ej#*deeZej]e[ej#j^dddej]e\ej#j^dddgdd Z_ej#*deeZe[e\gdd Z`dd Zadd Zbdd ZcdS )    )annotationsN)
namedtuple)	dataclassfield)partial)addsetitem)random)
NamedTuple)merge)compute)Delayeddelayedto_task_dask)HighLevelGraph)incc                   @  s@   e Zd ZeejjZdd Zdd Z	dd Z
dd Zd	d
 ZdS )Tuplec                 C  s   || _ || _d S N)_dask_keys)selfdskkeys r   `/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/dask/tests/test_delayed.py__init__   s   
zTuple.__init__c                 C     | j S r   r   r   r   r   r   __dask_tokenize__      zTuple.__dask_tokenize__c                 C  r   r   )r   r   r   r   r   __dask_graph__"   r    zTuple.__dask_graph__c                 C  r   r   r   r   r   r   r   __dask_keys__%   r    zTuple.__dask_keys__c                 C  s   t dfS )Nr   tupler   r   r   r   __dask_postcompute__(      zTuple.__dask_postcompute__N)__name__
__module____qualname__staticmethoddaskZthreadedgetZ__dask_scheduler__r   r   r!   r"   r%   r   r   r   r   r      s    r   z#ignore:The dask.delayed:UserWarningc                  C  s  t ddd} t ddd}t| |dg\}}|g dksJ t| |df\}}|tg dfks0J t|t| j|jks=J t| d|di\}}|tddgddggfksa|tddgddggfksaJ t|t| j|jksnJ tdg d	}|| |d}t|\}}||dddfksJ t|t| j|jksJ tt| |d\}}|tdddfksJ t|t| j|jksJ G d
d dt}t| \}}t||u sJ t|i ksJ t	ddt
ddfd	g d	}t|\}}||v sJ ||}|tg d	fksJ ||jks
J d S )N   aname   b   )r.   r2   r3   fr.   r2   cc                   @  s   e Zd ZdS )z"test_to_task_dask.<locals>.MyClassN)r'   r(   r)   r   r   r   r   MyClassF   s    r7   )r   r   r$   dictr   r+   r   slicetyper   r   popr   )r.   r2   taskr+   r4   xr7   r   r   r   test_to_task_dask,   s8   4
r>   c                  C  s   t t} | dd dksJ | ddd  dksJ | | ddd dks*J t d}| dks6J d|j v s?J | | |dd}|j|jv sOJ d S )Nr-   r1   r3      )r   r   r   r+   valueskey)Zadd2r.   r2   r   r   r   test_delayedV   s   rB   c                  C  sV   G dd dt } td}td| |di}dd }t||}| dks)J d S )Nc                   @     e Zd ZU ded< dS )z1test_delayed_with_namedtuple.<locals>.ANamedTupleintr.   Nr'   r(   r)   __annotations__r   r   r   r   ANamedTupled   s   
 rG   r3   r.   r.   c                 S  
   | d j S )Nr.   rH   objr   r   r   return_nestedj      
z3test_delayed_with_namedtuple.<locals>.return_nested)r
   r+   r   r   )rG   literal
with_classrL   finalr   r   r   test_delayed_with_namedtuplec   s   
rQ   c                   @  rC   )ANonFrozenDataClassrD   r.   NrE   r   r   r   r   rR   r      
 rR   T)frozenc                   @  rC   )AFrozenDataClassrD   r.   NrE   r   r   r   r   rU   w   rS   rU   clsc                 C  sB   t d}t d| |di}dd }t ||}| dksJ d S )Nr3   datarH   c                 S  rI   NrW   rH   rJ   r   r   r   rL      rM   z2test_delayed_with_dataclass.<locals>.return_nestedr   r   )rV   rN   rO   rL   rP   r   r   r   test_delayed_with_dataclass|   s
   rZ   c                  C  st   t  G dd d} td}tt}td| |di W d    n1 s)w   Y  |d |d d S )Nc                   @      e Zd ZU ded< dddZdS )z@test_delayed_with_dataclass_with_custom_init.<locals>.ADataClassrD   r.   r2   c                 S  
   || _ d S r   rH   r   r2   r   r   r   r      rM   zItest_delayed_with_dataclass_with_custom_init.<locals>.ADataClass.__init__Nr2   rD   r'   r(   r)   rF   r   r   r   r   r   
ADataClass      
 r`   r3   rW   r2   z custom __init__ is not supported)r   r+   r   pytestraises	TypeErrormatch)r`   rN   er   r   r   ,test_delayed_with_dataclass_with_custom_init   s   

rh   c                  C  sN   t  G dd d} td| ddi}dd }t||}| dks%J d S )Nc                   @  r[   )zFtest_delayed_with_dataclass_with_eager_custom_init.<locals>.ADataClassrD   r.   r2   c                 S  r\   r   rH   r]   r   r   r   r      rM   zOtest_delayed_with_dataclass_with_eager_custom_init.<locals>.ADataClass.__init__Nr^   r_   r   r   r   r   r`      ra   r`   rW   r3   rb   c                 S  rI   rX   rH   rJ   r   r   r   rL      rM   zItest_delayed_with_dataclass_with_eager_custom_init.<locals>.return_nestedr   r   r   )r`   rO   rL   rP   r   r   r   2test_delayed_with_dataclass_with_eager_custom_init   s   rj   c                    sV   t G dd d  fdd} td| di}dd }t||}| dks)J d S )	Nc                   @  (   e Zd ZU ded< eddZded< dS )zOtest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.ADataClassrD   r.   Finitr2   Nr'   r(   r)   rF   r   r2   r   r   r   r   r`         
 r`   c                       | d}d|_ |S NrH      rb   r.   rW   r`   r   r   prep_dataclass      
zStest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.prep_dataclassrW   r3   c                 S  rI   rX   rH   rJ   r   r   r   rL      rM   zRtest_delayed_with_eager_dataclass_with_set_init_false_field.<locals>.return_nestedri   )ru   rO   rL   rP   r   rt   r   ;test_delayed_with_eager_dataclass_with_set_init_false_field   s   rw   c                    sx   t G dd d td}  fdd}tt}t||  W d    n1 s+w   Y  |d |d d S )Nc                   @  rk   )zItest_delayed_with_dataclass_with_set_init_false_field.<locals>.ADataClassrD   r.   Frl   r2   Nrn   r   r   r   r   r`      ro   r`   r3   c                   rp   rq   rb   rs   rt   r   r   ru      rv   zMtest_delayed_with_dataclass_with_set_init_false_field.<locals>.prep_dataclassz`init=False` are not supported)r   r+   r   rc   rd   
ValueErrorrf   )rN   ru   rg   r   rt   r   5test_delayed_with_dataclass_with_set_init_false_field   s   

ry   c                  C  sV   t G dd d} td}td| |di}dd }t||}| dks)J d S )Nc                   @  rk   )zKtest_delayed_with_dataclass_with_unset_init_false_field.<locals>.ADataClassrD   r.   Frl   r2   Nrn   r   r   r   r   r`      ro   r`   r3   rW   rH   c                 S  rI   rX   rH   rJ   r   r   r   rL      rM   zNtest_delayed_with_dataclass_with_unset_init_false_field.<locals>.return_nested)r   r+   r   r   )r`   rN   rO   rL   rP   r   r   r   7test_delayed_with_dataclass_with_unset_init_false_field   s   
rz   c                  C  s   t g d} | d  dksJ | |   g dksJ t d}| d |  ddgks.J t d} | d  dks<J d|   dksFJ | d?  dksPJ | dk sXJ | d  d	ksbJ G d
d d}t | }t | }||  dks}J d S )Nr-   r1   r3   r   r-   )r-   r1   r3   r-   r1   r3   r1   
         d   c                   @  s   e Zd Zdd ZdS )ztest_operators.<locals>.dummyc                 S     dS )Nrr   r   )r   otherr   r   r   
__matmul__      z(test_operators.<locals>.dummy.__matmul__N)r'   r(   r)   r   r   r   r   r   dummy   s    r   rr   rY   )r.   r2   r   r6   dr   r   r   test_operators   s   

r   c                  C  s   t d} | d g dksJ |  dd d dks$J | jdddj| jdddjks6J | jdd	d
}|jd	ksDJ d S )Nz	a b c d e )r.   r2   r6   r   rg   BAr1   TpuretestZdask_key_name)r   splitr   upperreplacecountrA   r.   or   r   r   test_methods   s   &$r   c                  C  s\   t d} | jj| jjksJ | j dksJ | j dks J | j| j  dks,J d S )N       @      ?r1   r-   r3   )r   real_keyr   imagrH   r   r   r   test_attributes  s
   r   c                  C  s8   t g d} | d}tdd |  D vsJ d S )Nr{   r-   c                 S  s   h | ]}|d  qS )r   r   ).0vr   r   r   	<setcomp>      z5test_method_getattr_call_same_task.<locals>.<setcomp>)r   indexgetattrr!   r@   r   r   r   r   "test_method_getattr_call_same_task  s   
"r   c                  C  sr   t d} td}t t | | W d    n1 sw   Y  t| jdgddj | dks7J d S )Nnumpyr-   Zf8dtype)rc   importorskipr   rd   re   r   arrayr   )npr=   r   r   r   test_np_dtype_of_delayed  s   
,r   c                  C  s   dd } t | d}|  tjtdd |jdd W d    n1 s'w   Y  tjtdd |  W d    d S 1 sCw   Y  d S )Nc                 S     | d S Nr-   r   r=   r   r   r   r   "  r&   z(test_delayed_visualise_warn.<locals>.incr-   z/dask.delayed objects have no `visualise` methodrf   zdesk_graph.svg)	file_name)r+   r   r   rc   ZwarnsUserWarningZ	visualise)r   zr   r   r   test_delayed_visualise_warn  s   
"r   c                     s   t g d tt fdd tt fdd tt fdd tt fdd tt fdd tt fdd d S )	Nr{   c                        t  ddS )Nfoor-   )setattrr   rH   r   r   <lambda>7      z%test_delayed_errors.<locals>.<lambda>c                     r   )Nr-   r   )r   r   rH   r   r   r   8  r   c                     s   d v S r   r   r   rH   r   r   r   :      c                        t  S r   listr   rH   r   r   r   ;  r   c                     s      S r   )Z_hiddenr   rH   r   r   r   =  r   c                     r   r   )boolr   rH   r   r   r   ?  r   )r   rc   rd   re   AttributeErrorr   r   rH   r   test_delayed_errors4  s   r   c                  C  sV   t g d} | d | d  }| d j|jv sJ | j|jv s J t|jdks)J d S )Nr{   r   r3   )r   rA   r+   len)r.   resr   r   r   test_common_subexpressionsB  s
   r   c                  C  sT   t ddtdftdfd} t| \}t|j ddgks J |j|jks(J d S )Nr2   r-   r.   r5   )r   r   r+   optimizesortedr   Z_layerr   )r=   x2r   r   r   test_delayed_optimizeJ  s   r   c                  C  s4   t d} t d}t t| |g}| dksJ d S )Nr-   r1   r3   )r   sumr   r5   r   r   r   
test_listsT  s   r   c                  C  s   t d} | d }| |df}t | dksJ | |dg}t | g dks(J | |dh}t | h dks9J | d|dddi}t | ddddksOJ t ||   dks[J | |dd}t | dd	ddksoJ t |d  dks{J d S )
Nr-   r3   r{   >   r-   r1   r3   r.   r2   r6   r5   r1   rY   r.   r2   Zlitr   r   r   test_literates[  s   


r   c                  C  sV   t d} | d }| |df}t |jt |jksJ t |ddjt |ddjks)J d S )Nr-   r3   Tr   )r   rA   r   r   r   r   test_literates_keysl  s
   
$r   c                  C  sH   t d} t d}t t| dg|dggdd dd }| dks"J d S )Nr-   r1   r|      c                 S  s   | d S )Nr   r   r   r   r   r   r   w  r   z)test_lists_are_concrete.<locals>.<lambda>rA   )r   maxr   r5   r   r   r   test_lists_are_concretet  s   $r   typc                 C  sp   t d}t d}t tt| ||g}| }|dksJ dd }t |t| ||g}| dks6J d S )Nr-   r1   r3   c                 S  s   t | S r   r   )seqr   r   r   r4     r&   ztest_iterators.<locals>.f)r   r   iterr   )r   r.   r2   r6   r=   r4   r   r   r   test_iterators|  s   r   c                  C  sN  dd } t |  }|dddg}t |dd }t|dksJ |d	 |u s'J |dd  |dd  ks5J | || |ff}t |dd }t|tsKJ |d	 | ksSJ |d |u s[J d| |f|g}t |dd }t|tsqJ |d	 dksyJ |d d	 | kr|d d |u sJ |d |u sJ t d}t |dd}| dksJ d S )
Nc                  W  s   t d)Nzshouldn't have computed)rx   )argsr   r   r   fail  r&   z!test_traverse_false.<locals>.failr-   r1   r3   F)traverserr   r   )r   r   r   
isinstancer$   r   )r   r.   r=   r   r2   r   r   r   test_traverse_false  s*   
$r   c                  C  sT   t tdddd} t tdddd}| j|jksJ t t}| j| jks(J d S NTr   r-   r1   )r   r   rA   r	   )Zv1Zv2Zmyrandr   r   r   	test_pure  s
   r   c                  C  s  t t} tjjdd | ddj| ddjksJ W d    n1 s$w   Y  tjjdd | ddj| ddjks?J W d    n1 sIw   Y  t tdd} tjjdd | ddj| ddjksjJ W d    n1 stw   Y  t djt djksJ tjjdd t djt djksJ W d    n1 sw   Y  tjjdd t dddjt dddjksJ W d    n1 sw   Y  t g d}|dj|djksJ tjjdd) |dj|djksJ |jdddj|jdddjksJ W d    n	1 sw   Y  tjjdd |jdddj|jdddjks7J W d    n	1 sBw   Y  tjjdd% |jj|jjksZJ |d }|| j|| jkskJ W d    d S 1 sww   Y  d S )	NT)Zdelayed_purer-   r1   Fr   r{   r   )r   r   r+   configsetrA   r   )funcrW   elementr   r   r   test_pure_global_setting  s@   "(($r   c                    s  t dd ddd} | d}t|dksJ |\ }t |dks"J  jd u s)J |jd u s0J tt fdd tt fd	d ttd
d  ttdd  t td d} | d  jd u seJ tt fdd tt fdd t dd ddd} | d}t|dksJ |\   dksJ  jd u sJ tt fdd t dd ddd} | d}t|dksJ | t	 ksJ d S )Nc                 S  s
   | |  fS r   r   r   r   r   r   r     s   
 ztest_nout.<locals>.<lambda>r1   Tnoutr   r-   )r-   c                     r   r   r   r   rH   r   r   r     r   c                     r   r   r   r   rH   r   r   r     r   c                   S     t tddS )Nr   r   r   r   r   r   r   r   r     r   c                   S  r   )NTr   r   r   r   r   r   r     r   r   c                     r   r   r   r   rH   r   r   r     r   c                     r   r   r   r   rH   r   r   r     r   c                 S  s   | fS r   r   r   r   r   r   r         c                     r   r   r   r   rH   r   r   r     r   c                 S  s   t  S r   r#   r   r   r   r   r     r   r   )
r   r   r   _lengthrc   rd   re   rx   r   r$   )r   r=   r2   r   rH   r   	test_nout  s6   r   r=   r-   r1   )r-   r1   r   c                 C  sP   t | }t| |d}t |t t|  kr|ksJ  J | | ks&J d S )Nr   )r   r   r   r   )r=   lengthr   r   r   r   test_nout_with_tasks  s   (r   c                  C  s
  ddd} t | }|ddt ddg|ddd}| d	ks J t | d
d}t ddg}|dd||ddd}| d	ks?J |dd||dddj|jksPJ |dd||dddj|jksaJ |dd|ddj|jksoJ |dd|ddj|dd|ddjksJ d S )Nr   c                 [  s   | | t | t |  S r   )r   r@   )r.   r2   r6   kwargsr   r   r   mysum  s   ztest_kwargs.<locals>.mysumr-   r1   r3   r   )r6   fourr|   Tr   rr   )r   )r   r   rA   )r   Zdmysumtenr6   r   r   r   test_kwargs  s   
"",r   c                  C  s   t ddtddfdg d} ttdd| d}ttdd| }ttdd| j|jks-J | d	ks5J t||| d
ks?J d S )Nr-   r1   r.   r2   r5   Tr   )rr   r~   r?   r-   r1   r3   rr   r~   r?   )r3   r   r{   )r   r   r   r   rA   r   )r=   r   nr   r   r   test_custom_delayed  s   r   c            	      C  s  t d} t d}| dd}|j|dd}tt||dg}t|ts)J | 	|
 || d s7J | 
 || d  ksGJ |d 
 || d d ksWJ t|\}}|j |  rhJ | |j  }t|dksyJ t|}|
 |k sJ d S )	Nr   
dask.arrayr   r|   r|   r~   r~   chunksr-   )r   r   )rc   r   arangereshape
from_arrayr   r   r   r   Zallcloser   r   r+   r   r   all)	r   daZarrdarrvalr<   r   diffZdelayed_arrr   r   r   test_array_delayed'  s   

  r   c            	      C  s   t d} t d}| dd}||j}|j|dd}|j|dd}tg d}|||||g}t	t
dd	 |D }| d
|
  d
|
   t
g d ksWJ d S )Nr   r   r   r   r   r   r{   c                 S  s   g | ]}|  qS r   r   )r   ir   r   r   
<listcomp>G  r   z*test_array_bag_delayed.<locals>.<listcomp>r1   )rc   r   r   r   dotTr   dbZfrom_sequencer   r   r   )	r   r   Zarr1Zarr2Zdarr1Zdarr2r2   r   outr   r   r   test_array_bag_delayed=  s   

4r  c                  C  s  t tddddd} tt| }| j|jksJ | j|jks"J | j|jks*J t d} tt| }| j|jks>J | j|jksFJ | j|jksNJ | j	|j	ksVJ | j
} tt| }| jj|jjkskJ | jj|jjksuJ | j|jks}J | j|jksJ d S )Nr1   Tr   r-   r   )r   divmodpickleloadsdumpsr+   r   r   Z_noutZ_purer   _objZ_attrr=   yr   r   r   test_delayed_picklableK  s"   r  c                  C  s   t dd } | jdd d S )Nr-   r1   r|   )Zbogus_keywordrY   r   r   r   r   #test_delayed_compute_forward_kwargsb  s   r  c                   C  s   t tjd d S )N    )r   bytesdecoder   r   r   r   test_delayed_method_descriptorg  s   r  c                  C  sX   t tdd} | dd}|j|jtddfiksJ | j| jtiks"J |  tks*J d S r   )r   r   r+   rA   r   )r4   r   r   r   r   test_delayed_callablek  s
   
r  c                  C  s(   t tdd} | ddddjdksJ d S )NTr   r-   r1   r   r   )r   r   r   )r4   r   r   r   test_delayed_name_on_callt  s   r  c                  C  sV   G dd d} | d}t |}| |u sJ |j dks J |  dks)J d S )Nc                   @  s   e Zd Zdd Zdd ZdS )ztest_callable_obj.<locals>.Fooc                 S  r\   r   rH   )r   r.   r   r   r   r   {  rM   z'test_callable_obj.<locals>.Foo.__init__c                 S  r   )Nr1   r   r   r   r   r   __call__~  r   z'test_callable_obj.<locals>.Foo.__call__N)r'   r(   r)   r   r  r   r   r   r   Fooz  s    r  r-   r1   )r   r   r.   )r  r   r4   r   r   r   test_callable_objy  s   r  c                 C     | S r   r   r   r   r   r   identity  r   r  c                  C  sH   t tdd} ddg dd}ddg dd}| |j| |jks"J d S )NTr   r-      r{   )r=   r  r   )r   r  r   )r   Zdata1Zdata2r   r   r   test_deterministic_name  s   r  c                   C  s8   t ttddddjt ttddddjksJ d S )Nr|   Tr   r1   r   )r   r   r   r   r   r   r   r   test_sensitive_to_partials  s   r  c                  C  sf   t djds
J t dddjdsJ t dddjdks!J dd } t | djd	s1J d S )
Nr-   zint-Tr   Xr/   c                 S  r   r   r   r   r   r   r   myfunc  r&   z!test_delayed_name.<locals>.myfuncr  )r   r   
startswithrA   )r  r   r   r   test_delayed_name  s
   r   c                    sj   t d t d} | jddd}t|g}t|j|js!J dd  t fdd	|jD s3J d S )
Nr   r   r|   r~   r   c                 S  s(   t | tr	| d } | dd ddS )Nr   -_ )r   r$   r   r   )sr   r   r   rA     s   
ztest_finalize_name.<locals>.keyc                 3  s    | ]	} |  V  qd S r   )isalpha)r   kr   r   r   	<genexpr>  s    z%test_finalize_name.<locals>.<genexpr>)rc   r   onesr   r   r+   issubsetr   )r   r=   r   r   r   r   test_finalize_name  s   


 r*  c                  C  sV   t d t d} ddlm} | jddd  }dd	 |D }||d j d S )
Nr   r   r   )
_check_dskr   r~   r   c                 S  s   g | ]}t t|qS r   )r   r   )r   r=   r   r   r   r     s    z(test_keys_from_array.<locals>.<listcomp>)rc   r   Zdask.array.utilsr+  r(  Z
to_delayedflattenr+   )r   r+  r  Zxsr   r   r   test_keys_from_array  s   

r-  c                  C  s   G dd d} | d}| dd dksJ |  |dd dks$J |dd dks0J | dd dks<J |dd dksHJ | dd dksTJ t|j tjs]J t| jtjsfJ t| jtsnJ d S )	Nc                   @  sD   e Zd ZdZdd Zedd Zeedd Ze	edd	 Z
d
S )z+test_delayed_decorator_on_method.<locals>.Ar|   c                 S  r\   r   BASE)r   baser   r   r   r     rM   z4test_delayed_decorator_on_method.<locals>.A.__init__c                 S     | j | | S r   r.  )r   r=   r  r   r   r   	addmethod  s   z5test_delayed_decorator_on_method.<locals>.A.addmethodc                 S  r1  r   r.  )rV   r=   r  r   r   r   addclass  s   z4test_delayed_decorator_on_method.<locals>.A.addclassc                 S     | | S r   r   r  r   r   r   	addstatic     z5test_delayed_decorator_on_method.<locals>.A.addstaticN)r'   r(   r)   r/  r   r   r2  classmethodr3  r*   r5  r   r   r   r   r     s    
r   r   r3   rr   k         )r2  r   r3  r5  r   types
MethodTyper   )r   r.   r   r   r    test_delayed_decorator_on_method  s   r=  c                  C  sB   t d} t| jtsJ t| jjtsJ t| jjjtsJ d S )N{   )r   r   r.   r   r2   r6   r   r   r   r   test_attribute_of_attribute  s   r?  c                  C  s   t d t d} ddlm} |g ddd}|g ddd}td	d
 |}tdd
 |}| j||gdd}| j|| d S )Npandaszdask.dataframer   )Series)r.   r2   r.   categoryr   )r.   r6   r.   c                 S  r  r   r   r   r   r   r   r         z&test_check_meta_flag.<locals>.<lambda>c                 S  r  r   r   r   r   r   r   r     rC  F)Zverify_meta)rc   r   r@  rA  r   Zfrom_delayedutilsZ	assert_eq)ddrA  r.   r2   r   r  r6   r   r   r   test_check_meta_flag  s   

rF  c                 C  r   r   r   r   r   r   r   modlevel_eager  r&   rG  c                 C  r   r   r   r   r   r   r   modlevel_delayed1     rH  Fr   c                 C  r   r   r   r   r   r   r   modlevel_delayed2  rI  rJ  r4   z#3369)reason)Zmarksc                 C  s2   | d}t t j|t jd}| dksJ d S Nr1   )protocolr3   )r  r  r	  HIGHEST_PROTOCOLr   r4   r   r   r   r   test_pickle  s   	rP  c                 C  s2   | d}t t j|tjd}| dksJ d S rL  )cloudpickler  r	  r  rN  r   rO  r   r   r   test_cloudpickle  s   rR  c                  C  s"  t d} | jj | jhksJ | jj| jt iksJ |  | jfks&J t| }|jj | j|jhks8J |jj| jt |j| jhiksIJ | |jfksSJ t	j
dd|ji|gd}tjtdd td| W d    n1 svw   Y  td|dd}| dksJ |j  d S )	Nr-   r   alias)dependenciesznot inr   )layerr   )r   r+   layersr   rA   rT  r   Z__dask_layers__rH  r   from_collectionsrc   rd   rx   r   validate)Zd1Zd2ZhlgZexplicitr   r   r   test_dask_layers'  s   "rZ  c                  C  s  t jdd tddtdftdfdg } td| }W d    n1 s%w   Y  t|j tu s3J t|j jdks=J t|j jd dksIJ |j jd j	ddiksVJ t 
|\}t|j tu seJ t|j jdksoJ t|j jd d	ks{J |j jd j	ddiksJ d S )
NbarrV  r2   r-   r.   r5   r3   r   r1   )r+   Zannotater   rX  r   r   r:   r   rW  r   r   )graphr   Zd_optr   r   r   %test_annotations_survive_optimization:  s"   r]  c                  C  s@   t dd } | jdksJ | jdksJ | dddksJ d S )Nc                 S  r4  )This is a docstringr   r  r   r   r   r   R  r6  z7test_delayed_function_attributes_forwarded.<locals>.addr   r^  r-   r1   r3   )r   r'   __doc____wrapped__)r   r   r   r   *test_delayed_function_attributes_forwardedQ  s
   
ra  )d
__future__r   r  r;  collectionsr   dataclassesr   r   	functoolsr   operatorr   r   r	   typingr
   rQ  rc   Ztlzr   r+   Zdask.bagZbagr  r   Zdask.delayedr   r   r   Zdask.highlevelgraphr   Zdask.utils_testr   r   markfilterwarningsr>   rB   rQ   rR   rU   ZparametrizerZ   rh   rj   rw   ry   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r   r*  r-  r=  r?  rF  rG  rH  rJ  paramZxfailrP  rR  rZ  r]  ra  r   r   r   r   <module>   s    

)
	


#	("

	
	+



