
    tf                        d dl mZ d dlZd dlZd dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZ d ddddd	d
dZd Zd Zd Zd Zd Zd Z G d de      Zd Zd Zd Zd Zd Zd Zy)    )annotationsN)finish_taskget_syncsortkeystart_state_from_dask)order)GetFunctionTestMixinaddinc               )f0f1f2f3f4f5f6c                    ddt         dft        ddfd} t        |       }dddddht               t               dhdt               dhd	hd	hdt               t               t               dgd	dhidhd	hd	hd
d	}||k(  sJ y )Nr   r   xzyr   r   r   wr   r   r   r   r   r   r   r   r   r   )	cachedependencies
dependentsfinishedreleasedrunningreadywaitingwaiting_data)r   r
   r   set)dskresultexpecteds      _/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/dask/tests/test_local.pytest_start_stater/      s    c
#sC
AC"3'F q!s	
  ESEFEE5#<"e3%se<H  X    c                 j    dt         dfi} ddi}t        | |      }|d   d   dhk(  sJ |d   dgk(  sJ y )Nbar   r"   r'   r   r   )r+   r!   r,   s      r.   test_start_state_looks_at_cacher5   $   sS    c

C!HE"3.F.!#&3%///'?se###r0   c                 J    ddt         dfd} t        |       }|d   ddik(  sJ y )Nr   r   r   r    r!   r4   )r+   r,   s     r.   test_start_state_with_redirectsr7   ,   s2    3*
-C"3'F'?sAh&&&r0   c                 <    t        dt        dfi      d   dgk(  sJ y )Nr   r   r'   )r   r    r0   r.   4test_start_state_with_independent_but_runnable_tasksr:   2   s$     #Qx1':seCCCr0   c                    dt         dfgg dt         dfd} t        |       }t        |d   j                               dgk(  sJ d|d	   v rd
|d	   v sJ dD ci c]  }|t	                }}|d   |k(  sJ |d   |k(  sJ y c c}w )Nr   r   )r   r   r      r   )r3   r2   cr!   r2   r3   r'   r=   abcr"   r#   )r   r   listkeysr*   )r+   statekdepss       r.   #test_start_state_with_tasks_no_depsrD   6   s    S!HLQx
@C!#&Eg##%&3%///%. SE'N%:::#$AsuH$D$ D((($&&& %s   Bc                 r   ddt         dft        ddfd} t        |       j                  }t	        |       }|d   j                  d       ddh|d	<   d}d}||d
   d<   t        | ||t               |       |dddddht               t               dhddhdhdht               dhdhdhddgi dhdhdd	k(  sJ y )Nr   r   r   r   r   r   r'   z
other-taskr&   r!   )r   r   r   r   )	r!   r"   r$   r%   r&   r#   r'   r(   r)   )r   r
   r   getr   remover   r*   )r+   r   rA   taskr,   s        r.   test_finish_taskrI   @   s    c
#sC
ACCjnnG!#&E	'N#\*E)DF E'N3T5#%1q!s	
 EE >ESEF"e3%0   r0   c                  "    e Zd Z ee      Zd Zy)TestGetAsyncc                >    | j                  t        dfdddd       y )Nr   r   r   r   r   )num_workers)rF   r   selfs    r.   test_get_sync_num_workersz&TestGetAsync.test_get_sync_num_workersa   s    Sz*CQ?r0   N)__name__
__module____qualname__staticmethodr   rF   rP   r9   r0   r.   rK   rK   ^   s    
x
 C@r0   rK   c                     i fd} t         j                  j                        5  t        | dfddd       d d d        y # 1 sw Y   y xY w)Nc                    dv sJ | dz   S )Nr   r   r9   )r   r!   s    r.   inc2z test_cache_options.<locals>.inc2h   s    e||1ur0   )r!   r   r   r   r   )daskconfigr*   r   )rW   r!   s    @r.   test_cache_optionsrZ   e   sI    E 
u	% 2c{+S12 2 2s   AAc                 <    g d} t        | t              g dk(  sJ y )N)r   r   r   r   r   r   r   key)r   r^   r\   r]   )sortedr   )Ls    r.   test_sort_keyrc   p   s    +A!!%HHHHr0   c                 P    d } d| dfiddl m} fd}fd} |d||       y )	Nc                    | dz   S )Nr   r9   )r   s    r.   <lambda>ztest_callback.<locals>.<lambda>v   s
    !a% r0   r3   r   r   rF   c                J    | dk(  s| J |k(  sJ t        |t              sJ y )Nr3   
isinstancedict)r`   drA   r+   s      r.   start_callbackz%test_callback.<locals>.start_callbackz   s/    czS[((Cxx%&&&r0   c                \    | dk(  s| J |dk(  s|J |k(  sJ t        |t              sJ y )Nr3   r   ri   )r`   valuerl   rA   	worker_idr+   s        r.   end_callbackz#test_callback.<locals>.end_callback   s@    czS[((zU]**Cxx%&&&r0   )rm   rq   )dask.threadedrF   )frF   rm   rq   r+   s       @r.   test_callbackrt   u   s2    AA-C!'
' SlKr0   c                      G d dt               fd} ddlm} 	  |d| fid       J # $ rJ}dt        |      v sJ dt	        |      v sJ |j
                  d	k(  sJ |j                  d
k(  sJ Y d }~y d }~ww xY w)Nc                      e Zd Zd Zd Zy).test_exceptions_propagate.<locals>.MyExceptionc                     || _         || _        y N)r3   r2   )rO   r3   r2   s      r.   __init__z7test_exceptions_propagate.<locals>.MyException.__init__   s    DFDFr0   c                     y)NMy Exception!r9   rN   s    r.   __str__z6test_exceptions_propagate.<locals>.MyException.__str__   s    "r0   N)rQ   rR   rS   rz   r}   r9   r0   r.   MyExceptionrw      s    		#r0   r~   c                       dd      )Nr   r   r9   )r~   s   r.   rs   z$test_exceptions_propagate.<locals>.f   s    !Qr0   r   rg   r   r|   r3   r   r   )	Exceptionrr   rF   strdirr3   r2   )rs   rF   er~   s      @r.   test_exceptions_propagater      s    #i #  "S1$Ku #a&(((c!f}}ssaxxssaxx	s   + A:A A55A:c                     g fd} t        d      D ci c]	  }d|f| |f }}t        |      }d t        |      f|d<   t        |d       t        d      k(  sJ y c c}w )Nc                (    j                  |        y ry   append)irb   s    r.   r   ztest_ordering.<locals>.append   s    	r0   
   r   c                      y ry   r9   )argss    r.   rf   ztest_ordering.<locals>.<lambda>   s    r0   r   T)reverse)rangera   r?   r   )r   r   r+   x_keysrb   s       @r.   test_orderingr      sr    
A +0)
4QC8fa[ 
4C
4C[F"DL1CHS#q$'''' 5s   A!c                     t        j                  d       t        j                  d      } ddlm} g fd}| j                  j                  dd      }|j                  |j                        |j                  d	      z
  j                         }t        |j                               }t        |      }t        |j                         |j                  
      } ||      5  t!        ||d          d d d        |k(  sJ y # 1 sw Y   xY w)Nnumpyz
dask.arrayr   )Callbackc                (    j                  |        y ry   r   )r`   rX   rA   actual_orders      r.   track_orderz*test_complex_ordering.<locals>.track_order   s    C r0   )   r   )r   )sizechunks)axisr_   )pretaskr   )pytestimportorskipdask.diagnosticsr   randomnormaldotTmeanstdrk   __dask_graph__r   ra   r@   rF   r   )	dar   r   r   resr+   exp_order_dict	exp_orderr   s	           @r.   test_complex_orderingr      s    
 			\	*B)L! 			hx8A55:A&
+
+
-C
s!!#
$C3ZN~**,.2D2DEI	+	& %im$%9$$$% %s   $DD)
__future__r   r   rX   
dask.localr   r   r   r   
dask.orderr   dask.utils_testr	   r
   r   fib_daskr/   r5   r7   r:   rD   rI   rK   rZ   rc   rt   r   r   r   r9   r0   r.   <module>r      s    "   L L  : :1AQaqJ.$'D'<@' @2I
L&0(%r0   