o
    Nrf

                     @  sh   d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 dd Zdd	 Zd
d Zdd Zdd ZdS )    )annotations)Callback)get_sync)get)addc                    b   dg G  fdddt } |   tddid W d    n1 s"w   Y   d du s/J d S )NFc                         e Zd Z fddZdS )z'test_start_callback.<locals>.MyCallbackc                   s   d d< d S NTr    selfdskflagr
   b/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/dask/tests/test_callbacks.py_start   s   z.test_start_callback.<locals>.MyCallback._startN)__name__
__module____qualname__r   r
   r   r
   r   
MyCallback       r   x   r   Tr   r   r   r
   r   r   test_start_callback	   s   r   c                    r   )NFc                      r   )z-test_start_state_callback.<locals>.MyCallbackc                   s0   d d< |d dksJ t |d dksJ d S )NTr   r   r   cache)len)r   r   stater   r
   r   _start_state   s   z:test_start_state_callback.<locals>.MyCallback._start_stateN)r   r   r   r   r
   r   r
   r   r      r   r   r   r   r   Tr   r   r
   r   r   test_start_state_callback   s   r    c               
     s  dg G  fdddt } ddd fi}z|   t|d W d    n1 s(w   Y  W n tyG } zt|ts=J W Y d }~nd }~ww  d sNJ d d< z|   t|d W d    n1 sfw   Y  W n ty } zt|ts{J W Y d }~nd }~ww  d sJ dd	 }d|fi}d d< z|   t|d W d    n1 sw   Y  W n ty } zt|tsJ W Y d }~nd }~ww  d sJ d S )
NFc                      r   )z-test_finish_always_called.<locals>.MyCallbackc                   s   d d< |sJ d S r	   r
   )r   r   r   Zerroredr   r
   r   _finish)   s   z5test_finish_always_called.<locals>.MyCallback._finishN)r   r   r   r!   r
   r   r
   r   r   (   r   r   r   c                   S  s   dd S )Nr   r   r
   r
   r
   r
   r   <lambda>-   s    z+test_finish_always_called.<locals>.<lambda>r   c                   S  s   t  N)KeyboardInterruptr
   r
   r
   r   raise_keyboardA   s   z1test_finish_always_called.<locals>.raise_keyboard)r   r   	Exception
isinstanceZeroDivisionErrorget_threadedBaseExceptionr$   )r   r   er%   r
   r   r   test_finish_always_called%   sJ   
r,   c                    s   G dd dt } |   tddftddfd fdd	}|  }|dftd
dfd}| t|d W d    n1 s<w   Y  t jrFJ |j|ksMJ  jksTJ t jrYJ d S )Nc                   @  s   e Zd Zdd Zdd ZdS )z*test_nested_schedulers.<locals>.MyCallbackc                 S  s
   || _ d S r#   r   r   r
   r
   r   r   P   s   
z1test_nested_schedulers.<locals>.MyCallback._startc                 S  s   || j v sJ d S r#   r-   )r   keyr   r   r
   r
   r   _pretaskS   s   z3test_nested_schedulers.<locals>.MyCallback._pretaskN)r   r   r   r   r/   r
   r
   r
   r   r   O   s    r   r      r      )r   yc                   s@   t jrJ   td|  W  d    S 1 sw   Y  d S )Nr2   )r   activer)   )r   Zinner_callbackZ	inner_dskr
   r   nested_callY   s   
$z+test_nested_schedulers.<locals>.nested_calla)r6   br7   )r   r   r)   r3   r   )r   r5   Zouter_callbackZ	outer_dskr
   r4   r   test_nested_schedulersN   s   
r8   c                   C  sH   t jrJ t   t jsJ W d    n1 sw   Y  t jr"J d S r#   )r   r3   r
   r
   r
   r   $test_add_remove_mutates_not_replacesj   s
   
r9   N)
__future__r   Zdask.callbacksr   Z
dask.localr   Zdask.threadedr   r)   Zdask.utils_testr   r   r    r,   r8   r9   r
   r
   r
   r   <module>   s    )