ó
¦–Õ\c           @   sq   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 S(   iÿÿÿÿ(   t   get_sync(   t   get(   t   Callback(   t   addc             sc   t  g ‰  d t f ‡  f d †  ƒ  Y}  |  ƒ   t i d d 6d ƒ Wd  QXˆ  d t k s_ t ‚ d  S(   Nt
   MyCallbackc              s   e  Z ‡  f d  †  Z RS(   c            s   t  ˆ  d <d  S(   Ni    (   t   True(   t   selft   dsk(   t   flag(    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   _start   s    (   t   __name__t
   __module__R	   (    (   R   (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyR   
   s   i   t   xi    (   t   FalseR   R    R   t   AssertionError(   R   (    (   R   s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   test_start_callback   s
    	
c             sc   t  g ‰  d t f ‡  f d †  ƒ  Y}  |  ƒ   t i d d 6d ƒ Wd  QXˆ  d t k s_ t ‚ d  S(   NR   c              s   e  Z ‡  f d  †  Z RS(   c            s@   t  ˆ  d <| d d k s  t ‚ t | d ƒ d k s< t ‚ d  S(   Ni    R   i   t   cache(   R   R   t   len(   R   R   t   state(   R   (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   _start_state   s    
(   R
   R   R   (    (   R   (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyR      s   i   R   i    (   R   R   R    R   R   (   R   (    (   R   s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   test_start_state_callback   s
    	
c       	      s}  t  g ‰  d t f ‡  f d †  ƒ  Y}  i d „  f d 6} y! |  ƒ   t | d ƒ Wd  QXWn( t k
 rƒ } t | t ƒ s„ t ‚ n Xˆ  d s” t ‚ t  ˆ  d <y! |  ƒ   t | d ƒ Wd  QXWn( t k
 ré } t | t ƒ sê t ‚ n Xˆ  d sú t ‚ d „  } i | f d 6} t  ˆ  d <y! |  ƒ   t | d ƒ Wd  QXWn( t k
 rh} t | t	 ƒ sit ‚ n Xˆ  d syt ‚ d  S(   NR   c              s   e  Z ‡  f d  †  Z RS(   c            s   t  ˆ  d <| s t ‚ d  S(   Ni    (   R   R   (   R   R   R   t   errored(   R   (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   _finish'   s    
(   R
   R   R   (    (   R   (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyR   &   s   c           S   s   d d S(   Ni   i    (    (    (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   <lambda>+   t    R   i    c           S   s   t  ƒ  ‚ d  S(   N(   t   KeyboardInterrupt(    (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   raise_keyboard?   s    (
   R   R   R    t	   Exceptiont
   isinstancet   ZeroDivisionErrorR   t   get_threadedt   BaseExceptionR   (   R   R   t   eR   (    (   R   s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   test_finish_always_called#   s2    	


	

c             së   d t  f d „  ƒ  Y}  |  ƒ  ‰  i t d d f d 6t d d f d 6‰ ‡  ‡ f d †  } |  ƒ  } i | d f d	 6t d	 d f d
 6} |  t | d
 ƒ Wd  QXt  j s­ t ‚ | j | k sÂ t ‚ ˆ  j ˆ k s× t ‚ t  j sç t ‚ d  S(   NR   c           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   | |  _  d  S(   N(   R   (   R   R   (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyR	   O   s    c         S   s   | |  j  k s t ‚ d  S(   N(   R   R   (   R   t   keyR   R   (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   _pretaskR   s    (   R
   R   R	   R#   (    (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyR   N   s   	i   i   R   i   t   yc            s2   t  j s t ‚ ˆ   t ˆ d ƒ |  SWd  QXd  S(   NR$   (   R   t   activeR   R   (   R   (   t   inner_callbackt	   inner_dsk(    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   nested_callY   s    t   at   b(   R   R   R   R%   R   R   (   R   R(   t   outer_callbackt	   outer_dsk(    (   R&   R'   s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   test_nested_schedulersL   s    		c           C   sC   t  j s t ‚ t  ƒ   t  j s) t ‚ Wd  QXt  j s? t ‚ d  S(   N(   R   R%   R   (    (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt$   test_add_remove_mutates_not_replacesk   s    
N(   t
   dask.localR    t   dask.threadedR   R   t   dask.callbacksR   t   dask.utils_testR   R   R   R!   R-   R.   (    (    (    s8   lib/python2.7/site-packages/dask/tests/test_callbacks.pyt   <module>   s   			)	