ó
ßüÚ\c        
   @` s  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 d  d l
 Z
 d  d l m Z m Z d  d l Z d  d l m Z d  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z d  d	 l m Z d  d l Z d  d
 l m Z m Z m Z m  Z  m! Z! d  d l" m# Z# m$ Z$ d  d l% m& Z& m' Z' d  d l( m  Z  d  d l) m Z d  d l* m+ Z+ d  d l, m- Z- m. Z. d  d l/ m0 Z0 d  d l1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< d  d l1 m= Z= m> Z> d  d l? m@ Z@ d ZA d ZB e d „  ƒ ZC e4 ƒ  d „  ƒ ZD e4 d eE d d” g ƒ d „  ƒ ZF e4 d eE ƒ d „  ƒ ZG e4 d eE ƒ d „  ƒ ZH e4 d eE d d• g d  ƒ d! „  ƒ ZI e4 d eE d d– g d  ƒ d" „  ƒ ZJ e4 d eE d d— g d  ƒ d# „  ƒ ZK e4 d eE d d˜ g d  ƒ d$ „  ƒ ZL e4 d eE d d™ g d  ƒ d% „  ƒ ZM e4 d eE d g  ƒ d& „  ƒ ZN e4 d g  ƒ d' „  ƒ ZO e4 ƒ  d( „  ƒ ZP e4 ƒ  d) „  ƒ ZQ e4 ƒ  d* „  ƒ ZR e4 d+ i d, d- 6ƒ d. „  ƒ ZS e4 d+ i d, d- 6d eE ƒ d/ „  ƒ ZT e4 ƒ  d0 „  ƒ ZU e4 d1 i d2 g d3 6ƒ d4 „  ƒ ZV d5 „  ZW e4 ƒ  d6 „  ƒ ZX e4 ƒ  d7 „  ƒ ZY e4 ƒ  d8 „  ƒ ZZ e4 d eE ƒ d9 „  ƒ Z[ e4 d eE d dš g ƒ d: „  ƒ Z\ e4 ƒ  d; „  ƒ Z] d< „  Z^ d= „  Z_ e4 ƒ  d> „  ƒ Z` e4 d eE d? e ƒ d@ „  ƒ Za e4 ƒ  dA „  ƒ Zb e4 d? e ƒ dB „  ƒ Zc e5 ƒ  dC „  ƒ Zd e5 ƒ  dD „  ƒ Ze e jf jg e jh ji dE ƒ dF dG ƒe4 d g  ƒ dH „  ƒ ƒ Zj e4 ƒ  dI „  ƒ Zk e4 d g  ƒ dJ „  ƒ Zl dK „  Zm e4 d eE ƒ dL „  ƒ Zn e4 d g  d eE ƒ dM „  ƒ Zo e4 d g  ƒ dN „  ƒ Zp e4 d eE dO dP ƒ dQ „  ƒ Zq e4 d eE ƒ dR „  ƒ Zr e4 d eE d d› g dS ƒ dT „  ƒ Zs e4 d eE d dœ g dS ƒ dU „  ƒ Zt e4 d eE ƒ dV „  ƒ Zu e< e jf jg e jh ji dE ƒ dF dG ƒe jf jg e jv d k  dF dX ƒe4 d eE d g  dO dY ƒ dZ „  ƒ ƒ ƒ ƒ Zw e< e> e4 d eE ƒ d[ „  ƒ ƒ ƒ Zx e< e> e4 d eE ƒ d\ „  ƒ ƒ ƒ Zy e4 d eE ƒ d] „  ƒ Zz e> e4 d eE d dž g d^ ƒ d_ „  ƒ ƒ Z{ e> e4 d eE d dŸ g d^ ƒ d` „  ƒ ƒ Z| e4 d eE ƒ da „  ƒ Z} e4 d eE ƒ db „  ƒ Z~ e4 d eE ƒ dc „  ƒ Z e4 d eE d d  g ƒ dd „  ƒ Z€ e4 d eE d g  ƒ de „  ƒ Z e4 d eE ƒ df „  ƒ Z‚ dg „  Zƒ e4 d eE ƒ dh „  ƒ Z„ e4 d eE ƒ di „  ƒ Z… e< e4 d eE d? e dO dj ƒ dk „  ƒ ƒ Z† e4 d eE dO dj ƒ dl „  ƒ Z‡ e4 d eE dO dj d? e ƒ dm „  ƒ Zˆ e4 d eE d d¡ g ƒ do „  ƒ Z‰ e5 ƒ  dp „  ƒ ZŠ e jf j‹ dF dq ƒ e4 d eE d g  ƒ dr „  ƒ ƒ ZŒ e4 d eE d d¢ g d  ƒ ds „  ƒ Z e5 ƒ  dt „  ƒ ZŽ e4 d eE du i dv dw 6ƒ dx „  ƒ Z e4 d eE du i dv dw 6ƒ dy „  ƒ Z e4 d eE ƒ dz „  ƒ Z‘ e4 d eE d? e ƒ d{ „  ƒ Z’ e4 d eE d d£ g dn ƒ d| „  ƒ Z“ e4 d eE ƒ d} „  ƒ Z” d~ „  Z• e4 d eE ƒ d „  ƒ Z– e jf j‹ dF d€ ƒ e4 d eE d d¤ g d  dO d ƒ d‚ „  ƒ ƒ Z— e4 d eE ƒ dƒ „  ƒ Z˜ e4 d eE ƒ d„ „  ƒ Z™ e4 d eE ƒ d… „  ƒ Zš e4 d eE ƒ d† „  ƒ Z› e4 d eE ƒ d‡ „  ƒ Zœ e4 d eE ƒ dˆ „  ƒ Z e4 ƒ  d‰ „  ƒ Zž e4 d eE d d¥ g du i i d dŠ 6d‹ 6ƒ dŒ „  ƒ ZŸ e4 d eE ƒ d „  ƒ Z  e4 d eE d+ i dŽ d 6ƒ d „  ƒ Z¡ e4 ƒ  d‘ „  ƒ Z¢ e4 d eE ƒ d’ „  ƒ Z£ e4 ƒ  d“ „  ƒ Z¤ d S(¦   i    (   t   print_functiont   divisiont   absolute_importN(   t   defaultdict(   t	   timedelta(   t   addt   mul(   t   sleep(   t   delayed(   t   merget   concatt   valmapt   firstt   frequencies(   t   gen(   t   Nannyt   Workert   Clientt   waitt   fire_and_forget(   t   connectt   rpc(   t	   Schedulert	   BANDWIDTH(   R   (   t   time(   t   dumps(   t   dumps_functiont
   dumps_task(   t   tmpfile(   t   inct   dect   gen_clustert   gen_testt   slowinct   slowaddt   slowdect   clustert   divt   varyingt   slow(   t   loopt   nodebug(   t   applys
   alice:1234s   bob:1234c           C` s   d S(   Ni    (    (    (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   <lambda>/   t    c         C` s‹   t  |  j t ƒ s t ‚ |  j t |  ƒ k s3 t ‚ t t |  j j ƒ  ƒ ƒ t |  ƒ k s` t ‚ t t |  j ƒ ƒ t |  ƒ k s‡ t ‚ d  S(   N(	   t
   isinstancet   addresst   strt   AssertionErrort   sumt   ncorest   valuest   reprt   len(   t   st   at   b(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_administration2   s    -t   clientR2   s	   127.0.0.1i   c         c` sæ   t  t ƒ d ƒ } t  t ƒ | ƒ } |  j | ƒ } t | g ƒ V| j | j j | j | j h k sm t	 ‚ t  t
 ƒ | | ƒ } |  j | ƒ } xN | j | j k s· | j | j rá | j | j j sÐ t	 ‚ t j d ƒ Vq” Wd  S(   Ni   g-Cëâ6?(   R   R   t   persistR   t   taskst   keyt   who_hast   workersR.   R0   R   R   R   (   t   cR6   R7   t   xt   yt   ft   zt   f2(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_respect_data_in_memory:   s    ,&c   
      c` sÈ   t  t ƒ d ƒ } t  t ƒ | ƒ } |  j | ƒ } t | ƒ VxI | j | j j sx | j | j k sx | j | j k r‰ t j	 d ƒ VqA Wt  t
 ƒ | ƒ } |  j | ƒ } | V}	 |	 d k sÄ t ‚ d  S(   Ni   g{®Gáz„?(   R   R   R;   R   R<   R=   R>   t   dataR   R   R   t   computeR0   (
   R@   R6   R7   R8   RA   RB   t   yyRD   t   zzt   result(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_recompute_released_resultsJ   s    :c   	      #` s  |  j  t t d d d ƒ ƒ d ˆ  j ƒ|  j  t t d d d ƒ ƒ d ˆ j ƒg V} t t t | Œ  ƒ ƒ } g  | D] } t t ƒ | ƒ ^ qt } |  j | ƒ } t	 | ƒ Vt
 ‡  f d †  | d  d  d … Dƒ ƒ t
 ‡ f d †  | d d  d … Dƒ ƒ } | d k st ‚ d  S(	   Ni    id   i   R?   i   c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R=   RG   (   t   .0RB   (   R7   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>g   s    c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R=   RG   (   RM   RB   (   R8   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>h   s    iP   (   t   scattert   listt   rangeR.   R
   t   zipR   R   R;   R   R1   R0   (	   R@   R6   R7   R8   t   xsRA   t   yst   y2st   nhits(    (   R7   R8   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt/   test_decide_worker_with_many_independent_leaves[   s    '.%)'i   c         c` s]   |  j  t d d | j | j g ƒ} t | ƒ V| j | j k sY | j | j k sY t ‚ d  S(   Ni   R?   (   t   submitR   R.   R   R=   RG   R0   (   R:   R6   R7   R8   R@   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt$   test_decide_worker_with_restrictionsn   s    $c         c` s|   |  j  d g d | j ƒV\ } |  j t | d | j | j g ƒ} t | ƒ V| j | j k sx | j | j k sx t ‚ d  S(   Ni   R?   (   RN   R.   RW   R   R   R=   RG   R0   (   R:   R6   R7   R8   R@   RA   RB   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt&   test_move_data_over_break_restrictionsu   s    $c         c` s«   |  j  d d d g g d | j ƒ|  j  d g d | j ƒg V\ \ } \ } |  j t d d | j | j g ƒ} t | ƒ V| j | j j | j | j h k s§ t	 ‚ d  S(   Ni   i   i   R?   (
   RN   R.   RW   R   R   R<   R=   R>   R?   R0   (   R:   R6   R7   R8   R@   RA   RB   RD   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_balance_with_restrictions}   s
    !+$c         c` sŒ   |  j  t d d d ƒ} x | j s5 t j d ƒ Vq W| j | j | j k sU t ‚ t j	 t j
 ƒ  t j t d d ƒ | ƒ VWd  QXd  S(   Ni   R?   s   127.0.0.5:9999g{®Gáz„?t   millisecondsi2   (   RW   R   R<   R   R   R=   t
   unrunnableR0   t   pytestt   raisest   TimeoutErrort   with_timeoutR   (   R:   R6   R7   R8   R@   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_no_valid_workers‰   s    c         c` s;   |  j  t d d d d t ƒ} | V} | d k s7 t ‚ d  S(   Ni   R?   s   127.0.0.5:9999t   allow_other_workersi   (   RW   R   t   TrueR0   (   R:   R6   R7   R8   R@   RA   RK   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt(   test_no_valid_workers_loose_restrictions•   s    c         c` s†   |  j  t d ƒ } x | j s/ t j d ƒ Vq W| j | j | j k sO t ‚ t j	 t j
 ƒ  t j t d d ƒ | ƒ VWd  QXd  S(   Ni   g{®Gáz„?R[   i2   (   RW   R   R<   R   R   R=   R\   R0   R]   R^   R_   R`   R   (   R:   R6   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_no_workers   s    c         c` s   |  j  d g  ƒ Vd  S(   NR?   (   t   retire_workers(   R6   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retire_workers_empty©   s    c      	   C` s®   |  j  d i t t d f ƒ d 6t t d f ƒ d 6d i g  d 6d g d 6d d g d d ƒ |  j sk t ‚ |  j sz t ‚ |  j d d ƒ |  j sš t ‚ |  j sª t ‚ d  S(	   NR<   i   RA   RB   t   dependenciest   keysR:   t   ident(   t   update_graphR   R   R<   R0   Rh   t   remove_client(   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_remove_client®   s    	,	c         c` s^   t  |  j ƒ I } | j ƒ  V} | d d k s5 t ‚ | d j ƒ  j d ƒ sT t ‚ Wd  QXd  S(   Nt   typeR   t   idt	   scheduler(   R   R.   t   identityR0   t   lowert
   startswith(   R6   R7   R8   t   rRj   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt    test_server_listens_to_other_opsÀ   s    c         C` sÇ   d „  t  d ƒ Dƒ } |  j d t t | ƒ d t | ƒ d d „  | Dƒ ƒ | j |  j k sc t ‚ |  j d | j ƒ | j |  j	 k sŽ t ‚ t
 |  j | j j ƒ t
 | ƒ k s¹ t ‚ |  j ƒ  d  S(   Nc         S` s#   i  |  ] } t  | f d  | “ q S(   s   x-%d(   R   (   RM   t   i(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>Ê   s   	 i   R<   Ri   Rh   c         S` s   i  |  ] } t  ƒ  | “ q S(    (   t   set(   RM   t   k(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>Î   s   	 R.   (   RP   Rk   R   R   RO   R.   t   stream_commsR0   t   remove_workerR2   R5   R?   t
   processingt   validate_state(   R6   R7   R8   t   dsk(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt!   test_remove_worker_from_schedulerÈ   s    	+t   configs   10 mss*   distributed.scheduler.events-cleanup-delayc         c` s  | j  |  j k s t ‚ | j  |  j k s0 t ‚ | j  |  j k sH t ‚ | j  |  j k s` t ‚ |  j d | j  ƒ | j  |  j k s‹ t ‚ | j  |  j k s£ t ‚ |  j ƒ  t ƒ  } x= | j  |  j k rõ t j d ƒ Vt ƒ  | d k  s¹ t ‚ q¹ W| j  |  j k st ‚ d  S(   NR.   g{®Gáz„?i   (	   R.   t   eventsR0   R2   Rz   R|   R   R   R   (   R6   R7   R8   t   start(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt    test_clear_events_worker_removalØ   s    
	c         c` sÊ   |  j  | j k s t ‚ | j |  j  ƒ |  j  | j k s@ t ‚ |  j  | j k sX t ‚ |  | j k sm t ‚ | j |  j  ƒ t ƒ  } x= |  j  | j k rÅ t j d ƒ Vt ƒ  | d k  s‰ t ‚ q‰ Wd  S(   Ng{®Gáz„?i   (   Ro   R€   R0   Rl   t   clientsR   R   R   (   R@   R6   R7   R8   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt    test_clear_events_client_removalì   s    	c      
   c` s"  t  |  j |  j d d ƒ} d | j d <d | j d <| Vd „  t d ƒ Dƒ } |  j d	 t t | ƒ d
 t | ƒ d d d d „  | Dƒ ƒ |  j	 d | j
 d
 t | j ƒ d | j d |  j ƒ |  j ƒ  | j |  j k sá t ‚ |  j | j d | j
 | j
 | j
 h k st ‚ | j ƒ  Vd  S(   NR2   i   i   s   x-5i   RB   c         S` s#   i  |  ] } t  | f d  | “ q S(   s   x-%d(   R   (   RM   Rv   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>  s   	 i
   R<   Ri   R:   Rh   c         S` s   i  |  ] } t  ƒ  | “ q S(    (   Rw   (   RM   Rx   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>  s   	 R.   t   servicest	   addresses(   R   t   ipt   portRG   RP   Rk   R   R   RO   t
   add_workerR.   R2   R…   R|   t	   host_infoR0   t   close(   R6   R7   R8   t   wR}   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_add_workerÿ   s     		+
2t   scheduler_kwargst   feedt   blocked_handlersc         c` s¥   d „  } t  |  j ƒ V} | j i d d 6t | ƒ d 6d d 6ƒ V| j ƒ  V} d | k sa t ‚ t | d t ƒ sz t ‚ d t | d ƒ k s– t ‚ | j	 ƒ  Vd  S(	   Nc         S` s   t  t |  j ƒ ƒ S(   N(   R   t   dictt   worker_info(   Rp   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   func  s    R   t   opt   functiong{®Gáz„?t   intervalt	   exceptions-   'feed' handler has been explicitly disallowed(
   R   R.   t   writeR   t   readR0   R-   t
   ValueErrorR4   R‹   (   R6   R7   R8   R“   t   commt   response(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt#   test_blocked_handlers_are_respected  s    	)c          C` sH   t  j j i d g d 6ƒ  t ƒ  }  Wd  QX|  j d g k sD t ‚ d  S(   Ns   test-handlers&   distributed.scheduler.blocked-handlers(   t   daskR   Rw   R   R   R0   (   R6   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt6   test_scheduler_init_pulls_blocked_handlers_from_config,  s    c         c` sŸ   d „  } t  |  j ƒ V} | j i d d 6t | ƒ d 6d d 6ƒ VxK t d ƒ D]= } | j ƒ  V} t |  j ƒ } t j	 | ƒ | k sO t
 ‚ qO W| j ƒ  Vd  S(   Nc         S` s   t  t |  j ƒ ƒ S(   N(   R   R‘   R’   (   Rp   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR“   4  s    R   R”   R•   g{®Gáz„?R–   i   (   R   R.   R˜   R   RP   R™   R‘   R’   t   cloudpicklet   loadsR0   R‹   (   R6   R7   R8   R“   R›   Rv   Rœ   t   expected(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt	   test_feed2  s    	)c   
      c` sù   d „  } d „  } d „  } t  |  j ƒ V} | j i d d 6t | ƒ d 6t | ƒ d 6t | ƒ d 6d	 d
 6ƒ Vx3 t d ƒ D]% } | j ƒ  V} | d k s{ t ‚ q{ W| j ƒ  Vt ƒ  }	 x: t	 |  d ƒ sô t
 j d	 ƒ Vt ƒ  |	 d k  s» t ‚ q» Wd  S(   Nc         S` s   d S(   Ni   (    (   Rp   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   setupD  s    c         S` s   | d k s t  ‚ d S(   Ni   t   OK(   R0   (   Rp   t   state(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR“   G  s    c         S` s   d |  _  d  S(   Nt   done(   t   flag(   Rp   R¦   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   teardownK  s    R   R”   R•   R¤   R©   g{®Gáz„?R–   i   R¥   R¨   (   R   R.   R˜   R   RP   R™   R0   R‹   R   t   hasattrR   R   (
   R6   R7   R8   R¤   R“   R©   R›   Rv   Rœ   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_feed_setup_teardownB  s&    				c         #` s«   t  j d ƒ } | j d ƒ ‰  ‡  f d †  } t |  j ƒ V} | j i d d 6t | ƒ d 6d d 6ƒ Vx3 t d	 ƒ D]% } | j ƒ  V} | t	 k ss t
 ‚ qs W| j ƒ  Vd  S(
   Nt   numpyi€–˜ c         ` s
   ˆ  } t  S(   N(   Rc   (   Rp   RB   (   RA   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR“   j  s    R   R”   R•   gš™™™™™©?R–   i   (   R]   t   importorskipt   onesR   R.   R˜   R   RP   R™   Rc   R0   R‹   (   R6   R7   R8   t   npR“   R›   Rv   Rœ   (    (   RA   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_feed_large_bytestringd  s    )c         c` s(  |  j  i d d 6d d 6d d 6ƒ V} d „  | j j ƒ  Dƒ d d d h k sS t ‚ t | j ƒ t | j ƒ Bd d d h k s„ t ‚ t | j | j ƒ i d d 6d d 6d d 6k sº t ‚ | d =| d =t ƒ  } xP t | j ƒ t | j ƒ Bd h k r#t j	 d ƒ Vt ƒ  | d	 k  sÔ t ‚ qÔ Wd  S(
   Ni   RA   i   RB   i   RD   c         S` s"   h  |  ] } | j  r | j ’ q S(    (   R>   R=   (   RM   t   ts(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <setcomp>|  s   	 g{®Gáz„?i   (
   RN   R<   R3   R0   Rw   RG   R	   R   R   R   (   R@   R6   R7   R8   t   dR   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_delete_datax  s    %.16	(c         c` sŠ   |  j  t d ƒ } | V| j | j k s/ t ‚ |  j | ƒ Vt ƒ  } x= | j | j k r… t j d ƒ Vt ƒ  | d k  sI t ‚ qI Wd  S(   Ni   g{®Gáz„?i   (	   RW   R   R=   RG   R0   t   _cancelR   R   R   (   R@   R6   R7   RA   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_delete‰  s    	c         c` sä  t  |  j ƒ V} t  |  j ƒ V} | j i d d 6d d 6ƒ V| j i d d 6d d 6ƒ V| j ƒ  V| j ƒ  Vt |  j ƒ d d h k s t ‚ | j i d d 6i t t d f ƒ d 6t t d f ƒ d	 6d
 6i g  d 6d g d	 6d 6d d 6d	 g d 6ƒ V| j i d d 6i t t d f ƒ d 6t t	 d d f ƒ d 6d
 6i g  d 6d g d 6d 6d d 6d g d 6ƒ V| j ƒ  V\ } | d d k sŽt ‚ | d d	 k s¤t ‚ | j ƒ  V\ } | d d k sÊt ‚ | d d k sàt ‚ d  S(   Ns   register-clientR”   R@   R:   RC   s   update-graphi   RA   RB   R<   Rh   Ri   i
   RD   s   key-in-memoryR=   (
   R   R.   R˜   R™   Rw   t   client_commsR0   R   R   R   (   R6   R7   R8   R@   RC   t   msg(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_filtered_communication—  s6    !-0c          C` sm   t  t ƒ }  t j |  ƒ d ƒ d k s- t ‚ t  t ƒ } |  | k sK t ‚ t  t ƒ } |  | k si t ‚ d  S(   Ni
   i   (   R   R   R    R¡   R0   R   (   R7   R8   R@   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_dumps_function¾  s    !c          C` sF  t  t d f ƒ }  t |  ƒ d d h k s0 t ‚ d d „ } t  t | d
 i d d 6f ƒ }  t j |  d ƒ d d ƒ d k sƒ t ‚ t j |  d ƒ d k s¢ t ‚ t j |  d	 ƒ i d d 6k sÈ t ‚ t  t | d f ƒ }  t j |  d ƒ d d ƒ d k st ‚ t j |  d ƒ d k s$t ‚ t |  ƒ d d h k sBt ‚ d  S(   Ni   R•   t   argsi   c         S` s   |  | S(   N(    (   RA   RB   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR+   Í  R,   i
   RB   i   t   kwargs(   i   (   i   (   i   (   i   (   R   R   Rw   R0   R*   R    R¡   (   R²   RC   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_dumps_taskÉ  s    (&(c         C` sá   |  j  d d „  t d ƒ Dƒ d g  t d ƒ D] } d | ^ q, d d d d „  t d ƒ Dƒ ƒ t d	 „  |  j j ƒ  Dƒ ƒ s„ t ‚ |  j d
 | j ƒ t |  j ƒ | j h k s¸ t ‚ t d „  |  j j ƒ  Dƒ ƒ sÝ t ‚ d  S(   NR<   c         S` s)   i  |  ] } t  t | f ƒ d  | “ q S(   s   x-%d(   R   R   (   RM   Rv   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>Ü  s   	 i   Ri   s   x-%dR:   Rh   c         S` s   i  |  ] } g  d  | “ q S(   s   x-%d(    (   RM   Rv   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys
   <dictcomp>ß  s   	 c         s` s'   |  ] } t  | j ƒ | j k Vq d  S(   N(   R5   R{   R2   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>â  s    R.   c         s` s'   |  ] } t  | j ƒ | j k Vq d  S(   N(   R5   R{   R2   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>ç  s    (	   Rk   RP   t   allR?   R3   R0   Rz   R.   Rw   (   R6   R7   R8   Rv   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_ready_remove_workerÙ  s    	#%!R   c         c` s§   |  j  t t d ƒ ƒ } t | ƒ V| j ƒ  Vt | j ƒ d k sI t ‚ x7 | j j ƒ  D]& } | j	 so t ‚ | j
 sY t ‚ qY W| j s“ t ‚ | j s£ t ‚ d  S(   Ni   i   (   t   mapR   RP   R   t   restartR5   R?   R0   R3   t	   occupancyR{   R<   Rh   (   R@   R6   R7   R8   t   futurest   ws(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_restartê  s    c         c` sÒ   |  j  d i d d 6ƒ V} | i d | j 6d | j 6k s@ t ‚ |  j  d i d d 6d | j g ƒ V} | i d | j 6k s‚ t ‚ |  j  d i d d 6d | j g ƒ V} | i d | j 6d | j 6k sÎ t ‚ d  S(   NR·   t   pingR”   t   pongR?   t   hosts(   t	   broadcastR.   R0   R‡   (   R6   R7   R8   RK   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_broadcastû  s    &&&c         c` sí   |  j  d i d d 6d t ƒ V} t d „  | j ƒ  Dƒ ƒ sB t ‚ |  j  d i d d 6d | j g d t ƒ V} t | ƒ d k s† t ‚ t | j ƒ  ƒ d | j k s« t ‚ |  j  d i d d 6d	 | j	 g d t ƒ V} | | k sé t ‚ d  S(
   NR·   Rq   R”   t   nannyc         s` s   |  ] } | d  d k Vq d S(   Rn   R   N(    (   RM   R²   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>
  s    R?   i   Ro   RÇ   (
   RÈ   Rc   R½   R3   R0   t   worker_addressR5   R   Ro   R‡   (   R6   R7   R8   t   result1t   result2t   result3(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_broadcast_nanny  s     "	#%,c       	   c` sÊ   t  d t ƒ }  |  j d ƒ t |  j |  j d d ƒV} |  j | j j d k sW t	 ‚ |  j
 d | j k ss t	 ‚ t j t ƒ , t |  j |  j d d ƒV} | j ƒ  VWd  QX| j ƒ  V|  j ƒ  Vd  S(   Nt   validatei    t   namet   alice(   R   Rc   R   R   R‡   Rˆ   R?   R.   RÑ   R0   t   aliasesR]   R^   Rš   R‹   (   R6   RŒ   t   w2(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_worker_name  s    c       	   c` s²  t  j j i d d 6ƒ “t d t ƒ }  |  j d ƒ t d |  j |  j ƒ t	 |  j
 |  j d d ƒ} t	 |  j
 |  j d d ƒ} t	 d	 |  j d d
 ƒ} | | | g V|  j d ƒ d k sÃ t ‚ |  j d ƒ d k sÞ t ‚ |  j d ƒ d k sù t ‚ |  j d ƒ d k st ‚ |  j d ƒ d k s/t ‚ |  j d ƒ d k sJt ‚ |  j | j ƒ | j k skt ‚ |  j d ƒ | j k s‰t ‚ |  j d ƒ | j k s§t ‚ |  j d
 ƒ | j k sÅt ‚ |  j d	 ƒ d	 k sàt ‚ |  j d ƒ | j
 k sþt ‚ |  j d ƒ | j
 k st ‚ |  j d
 ƒ | j
 k s:t ‚ |  j d ƒ d k sUt ‚ |  j d d t ƒd k svt ‚ |  j ƒ  Vg  | | | g D] } | j ƒ  ^ q‘VWd  QXd  S(   Nt   100mss!   distributed.comm.timeouts.connectRÐ   i    s
   scheduler:RÑ   RÒ   i{   s	   127.0.0.1t   charlies   127.0.0.1:8000s   tcp://127.0.0.1:8000s
   [::1]:8000s   tcp://[::1]:8000s   localhost:8000u   localhost:8000t   jimmys	   zzzt:8000t   resolves   tcp://zzzt:8000(   s   tcp://127.0.0.1:8000s   tcp://[::1]:8000(   s   tcp://127.0.0.1:8000s   tcp://[::1]:8000(   Rž   R   Rw   R   Rc   R   t   printR.   t   listen_addressR   R‡   Rˆ   t   coerce_addressR0   t   coerce_hostnamet   FalseR‹   (   R6   R7   R8   R@   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_coerce_address&  s<      !!t   wint   reasons#   file descriptors not really a thingc         c` s¡   t  j d ƒ } | j ƒ  } | j ƒ  } t |  j |  j ƒ V} | j ƒ  V| j ƒ  } t ƒ  } x= | j ƒ  | k rœ t	 j
 d ƒ Vt ƒ  | d k  s` t ‚ q` Wd  S(   Nt   psutilg{®Gáz„?i   (   R]   R­   t   Processt   num_fdsR   R‡   Rˆ   R‹   R   R   R   R0   (   R6   Râ   t   proct   beforeRŒ   t   duringR   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_file_descriptors_dont_leakO  s    	c      	   C` s¡   |  j  d i t t d f ƒ d 6t t d f ƒ d 6t t d f ƒ d 6d d g d i d d 6g  d 6g  d 6d	 d	 ƒ d |  j k sˆ t ‚ d |  j k s t ‚ d  S(
   NR<   i   RA   RB   i   RD   Ri   Rh   R:   (   Rk   R   R   R<   R0   Rh   (   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_update_graph_cullsc  s    		c         C` s]   |  j  d t d d d t ƒ t |  j ƒ } |  j  d t d t ƒ |  j |  j k sY t ‚ d  S(   NR.   R2   i   t   resolve_address(   R‰   RÒ   RÞ   R‘   R2   R0   (   R6   R2   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_add_worker_is_idempotents  s    c         C` s.   t  d |  d t ƒ } | j |  k s* t ‚ d  S(   NR(   RÐ   (   R   Rc   t   io_loopR0   (   R(   R6   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_io_loop{  s    c         #` sû   t  t ƒ d ƒ ‰ t  t ƒ ˆ ƒ } |  j | ƒ } t | g ƒ Vˆ  j sP t ‚ ˆ  j ˆ j ƒ } t ‡  f d †  | Dƒ ƒ s„ t ‚ t	 | ƒ t	 ˆ  j ƒ k  s¥ t ‚ t ‡ f d †  | Dƒ ƒ sÇ t ‚ t	 ˆ  j ˆ j | j ƒ ƒ t	 | ƒ k s÷ t ‚ d  S(   Ni   c         3` s   |  ] } | ˆ  j  k Vq d  S(   N(   t   transition_log(   RM   t   line(   R6   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>Š  s    c         3` s5   |  ]+ } ˆ  j  | d  k p, ˆ  j  | d k Vq d S(   i    iþÿÿÿN(   R=   (   RM   Rï   (   RA   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>Œ  s    (
   R   R   R;   R   Rî   R0   t   storyR=   R½   R5   (   R@   R6   R7   R8   RB   RC   Rð   (    (   R6   RA   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt
   test_story€  s    "!"c         c` sù   t  j t j ƒ ) | j d i d d 6d d d d ƒ VWd  QXt ƒ  } t  j t j ƒ  |  j d d d ƒVWd  QXt ƒ  | d	 k  sŒ t ‚ t | j | j	 d
 d ƒ} |  j d i d d 6d d ƒ | j
 ƒ  g V| j d d k sê t ‚ | j ƒ  Vd  S(   NRG   i   RA   R:   RÒ   t   timeoutgš™™™™™¹?i{   g      ø?R2   i   i   RB   i   (   R]   R^   R   R_   RN   R   R0   R   R‡   Rˆ   t   _startRG   R‹   (   R@   R6   R   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_scatter_no_workers‘  s    *	*c         c` sP   t  |  j |  j d d d d ƒV} |  j | j j d k sA t ‚ | j ƒ  Vd  S(   NR2   i   t   memory_limiti90  (   R   R‡   Rˆ   R?   R.   Rõ   R0   R‹   (   R6   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt!   test_scheduler_sees_memory_limits¢  s    "Rò   iè  c         c` sC  |  j  d g d | j ƒV\ } |  j  t t d ƒ ƒ g d | j ƒV\ } | j ƒ  | j g k sh t ‚ | j ƒ  V} t | ƒ | j g k s“ t ‚ | | j d | j k s³ t ‚ t | j ƒ | j g k sÔ t ‚ | j ƒ  g  k sì t ‚ | j | j j	 | j
 | j | j
 | j h k s%t ‚ | j ƒ  V} | s?t ‚ d  S(   Ni   R?   iè  R2   (   RN   R.   RO   RP   t   workers_to_closeR0   Rf   R2   R?   t   has_whatR<   R=   (   R@   R6   R7   R8   RA   RB   R?   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retire_workersª  s    + !9c         c` s  | j  d d d t ƒ Vt | j ƒ d k s2 t ‚ | j  d d d t ƒ Vt | j ƒ d k sd t ‚ | j  d d d t ƒ Vt | j ƒ d k s– t ‚ | j  d d d t ƒ Vt | j ƒ d k sÈ t ‚ x6 | j j d ƒ oì | j j d ƒ s t j d ƒ VqË Wd  S(   Nt   ni   t   close_workersi    t   closg{®Gáz„?(	   Rf   Rc   R5   R?   R0   t   statusRs   R   R   (   R@   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retire_workers_n¾  s    'i   c         '` sÕ   d ˆ  j  d <d ˆ  j  d <d ˆ  j  d <|  j t d d d g d d d d	 g ƒ} x7 t d
 „  ˆ  j j ƒ  Dƒ ƒ d k  rŠ t j d ƒ VqT Wˆ  j ƒ  } t	 ‡  f d †  | Dƒ ƒ s¹ t
 ‚ t | ƒ d k sÑ t
 ‚ d  S(   Ni   R7   R8   i   R@   R=   s   a-4s   b-4s   c-1c         s` s   |  ] } t  | j ƒ Vq d  S(   N(   R5   R{   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>×  s    i   gü©ñÒMbP?c         3` s    |  ] } ˆ  j  | j Vq d  S(   N(   R?   R{   (   RM   RŒ   (   R6   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>Û  s    (   t   task_durationR¿   R!   R1   R?   R3   R   R   R÷   R½   R0   R5   (   t   clR6   R?   RÂ   t   wtc(    (   R6   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_workers_to_closeÐ  s    *("c         '` sÔ  i d | d j  6d | d j  6d | d j  6d | d j  6‰  ‡  f d †  } t | j d | ƒ ƒ t d	 „  | Dƒ ƒ k s t ‚ |  j t d d
 d d | d j  ƒ} x' t | j ƒ d k  rÏ t j	 d ƒ Vq© Wt | j d | ƒ ƒ | d j  | d j  h k st ‚ ~ x' t | j ƒ d k r4t j	 d ƒ VqW|  j
 d d d | d j  ƒV} |  j
 d d d | d j  ƒV} |  j
 d d d | d j  ƒV} t | j d | ƒ ƒ | d j  | d j  h k sÐt ‚ d  S(   NR7   i    i   R8   i   i   c         ` s   ˆ  |  j  S(   N(   R.   (   RÃ   (   t   groups(    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR=   è  s    R=   c         s` s   |  ] } | j  Vq d  S(   N(   R.   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>ë  s    t   delaygš™™™™™É?R?   gü©ñÒMbP?id   iK   (   R.   Rw   R÷   R0   RW   R!   R5   t   rprocessingR   R   RN   (   R@   R6   R?   R=   t   futuret   avt   bvt   bv2(    (   R  s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_workers_to_close_groupedß  s$    4%8!!!c      	   c` su   |  j  t d d d d | j d t ƒ} t j d ƒ V| j d | j g ƒ Vt d „  | j j	 ƒ  Dƒ ƒ sq t
 ‚ d  S(   Nid   R  g      à?R?   Rb   gš™™™™™É?c         s` s   |  ] } | j  d  k Vq d S(   i    N(   t
   suspicious(   RM   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>	  s    (   RW   R!   R.   Rc   R   R   Rf   R½   R<   R3   R0   (   R@   R6   R7   R8   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt'   test_retire_workers_no_suspicious_tasks  s
    !i   s   intermittent failureið   c         c` s[  t  j d ƒ Vt j d ƒ } t j d ƒ } | j ƒ  } | j ƒ  } d } g  t | ƒ D]$ } t | j | j	 d | j
 ƒ^ qW V} x' t | j ƒ | k  r« t  j d ƒ Vq… W| j ƒ  }	 t  j d ƒ V| j ƒ  }
 |
 |	 | k sè t ‚ | j j d d d	 d ƒ } |  j | ƒ } t | ƒ V| j ƒ  } | |	 d | k sCt ‚ |  j | | j ƒ } t | ƒ V| j ƒ  } | | | k  s†t ‚ t  j d ƒ V| j ƒ  } | | | k  s¶t ‚ g  | D] } | j ƒ  ^ q½V| j j sçt ‚ |  j j sút ‚ | j s
t ‚ t ƒ  } xA | j ƒ  | | k rVt  j d ƒ Vt ƒ  | d k  st ‚ qWd  S(   Ngš™™™™™¹?Râ   s
   dask.arrayi   R(   gš™™™™™É?t   sizeiè  t   chunksi   i   i   g{®Gáz„?i   (   iè  iè  (   i   i   (   R   R   R]   R­   Rã   Rä   RP   R   R‡   Rˆ   R(   R5   R2   R0   t   randomR;   R   t   TR‹   R   t   opent   activeRy   R   (   R@   R6   Râ   t   daRå   t	   num_fds_1t   NRv   t   nanniest	   num_fds_2t	   num_fds_3RA   t	   num_fds_4RB   t	   num_fds_5t	   num_fds_6Rú   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_file_descriptors  sB    8	c         c` sÇ   |  j  t t d ƒ d d ƒ} x7 t d „  | j j ƒ  Dƒ ƒ d k  rW t j d ƒ Vq! Wd | j k  or d k  n s} t	 ‚ xC | | g D]5 } d | j
 | j j k  o´ d	 k  n sŠ t	 ‚ qŠ Wd  S(
   Niè  R  gš™™™™™É?c         s` s   |  ] } t  | j ƒ Vq d  S(   N(   R5   R>   (   RM   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>I  s    i
   g{®Gáz„?id   i2   i¼  (   R¿   R!   RP   R1   R<   R3   R   R   t   total_occupancyR0   R?   R.   RÁ   (   R@   R6   R7   R8   RÂ   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_learn_occupancyD  s    (%c         c` s{   |  j  t t d ƒ d d ƒ} x1 t d „  | j j ƒ  Dƒ ƒ sQ t j d ƒ Vq! Wd | j k  ol d k  n sw t	 ‚ d  S(   Niè  R  gš™™™™™É?c         s` s   |  ] } | j  Vq d  S(   N(   R>   (   RM   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>V  s    g{®Gáz„?id   (
   R¿   R!   RP   t   anyR<   R3   R   R   R  R0   (   R@   R6   R7   R8   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_learn_occupancy_2Q  s    "c         c` s˜   t  | _ d | j | j _ | j d 7_ |  j t t d ƒ d d ƒ} t	 | ƒ Vt
 | j ƒ d k  so t ‚ t d „  | j j ƒ  Dƒ ƒ s” t ‚ d  S(   Ni   id   R  g{®Gáz„?c         s` s   |  ] } | j  d  k Vq d S(   i    N(   RÁ   (   RM   RÃ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>h  s    (   RÞ   RÐ   R?   R.   RÁ   R  R¿   R!   RP   R   t   absR0   R½   R3   (   R@   R6   R7   R8   RÂ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_occupancy_cleardown\  s    	i   c         g` sX   |  j  t t d ƒ d d ƒ} t | ƒ Vd „  | j j ƒ  Dƒ d d h k sT t ‚ d  S(   Ni   R  gš™™™™™É?c         S` s   h  |  ] } t  | j ƒ ’ q S(    (   R5   Rø   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <setcomp>p  s   	 i    i   (   R¿   R!   RP   R   R?   R3   R0   (   R@   R6   R?   RÂ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_balance_many_workersk  s    c         g` sh   d | j  d j _ |  j t t d ƒ d d ƒ} t | ƒ Vd „  | j j ƒ  Dƒ d h k sd t	 ‚ d  S(   Ni áõt   stealingiZ   R  gš™™™™™É?c         S` s   h  |  ] } t  | j ƒ ’ q S(    (   R5   Rø   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <setcomp>y  s   	 i   (
   t
   extensionst   _pct   callback_timeR¿   R!   RP   R   R?   R3   R0   (   R@   R6   R?   RÂ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_balance_many_workers_2s  s    c         c` sŒ   |  j  t d d d d | j ƒ} t j d ƒ V|  j t t d ƒ d d ƒ} t | ƒ Vt d „  | j	 j
 ƒ  Dƒ ƒ s~ t ‚ | j ƒ  d  S(   Ni   R  gš™™™™™É?R?   gš™™™™™©?id   c         s` s1   |  ]' } | j  j ƒ  D] } | d  k Vq q d S(   g      à?N(   R{   R3   (   RM   RŒ   t   v(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>„  s    (   RW   R!   R.   R   R   R¿   RP   R   R  R?   R3   R0   R|   (   R@   R6   R7   R8   RA   RÂ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt%   test_learn_occupancy_multiple_workers|  s    !&c         c` s  d | j  d <|  j t d t t ƒ d | j ƒ} |  j t d t t d ƒ d | j ƒ} |  j t | | d d ƒ} x8 | j | j k s | j | j j	 r® t
 j d	 ƒ Vqw W| j | j } | j	 | j | j k sÞ t ‚ | j | j j | d k st ‚ t | ƒ V~ d  S(
   Ngü©ñÒMbP?R"   t   0R?   t   1g      ø?R  i   g{®Gáz„?(   Rÿ   RW   R   t   intR   R.   R"   R=   R<   t   processing_onR   R   R?   R0   R{   R   (   R@   R6   R7   R8   RA   RB   RD   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt'   test_include_communication_in_occupancyˆ  s    $()#c         c` sZ  t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} |  j | | g ƒ \ } } x1 t d „  | j j ƒ  Dƒ ƒ s– t j d ƒ Vqf Wt | j	 | j
 d d ƒ}	 |	 j | j d ƒ |	 Vt ƒ  }
 x' t | j ƒ d k  rü t j d ƒ VqÖ W| j d | j | j | j h ƒ i d	 | j 6d
 | j 6d | j 6k sKt ‚ |	 j ƒ  Vd  S(   Ni   R  gš™™™™™Ù?c         s` s   |  ] } | j  Vq d  S(   N(   R{   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>¡  s    g{®Gáz„?R2   i   Ri   t   releasedt   memoryR{   (   R   R!   R;   R  R?   R3   R   R   R   R‡   Rˆ   t   put_key_in_memoryR=   R   R5   t   get_task_statusR0   R‹   (   R@   R6   R7   R8   RA   RB   RD   RI   RJ   RŒ   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt(   test_worker_arrives_with_processing_data™  s"    "	$

c         c` sì   |  j  t d d d ƒ} x, t d ƒ D] } |  j  t | d d ƒ} q% Wt | ƒ V| j j j ƒ  t j d ƒ Vt	 ƒ  } t | d d ƒVt	 ƒ  } | | d k  s© t
 ‚ t d „  | j j ƒ  Dƒ ƒ } | i d d 6d d 6k sè t
 ‚ d  S(	   Ni   R  gš™™™™™¹?i
   Rò   c         s` s   |  ] } | j  Vq d  S(   N(   R¦   (   RM   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>È  s    R1  R0  (   RW   R!   RP   R   t   batched_streamR›   R‹   R   R   R   R0   R   R<   R3   (   R@   R6   R7   R  Rv   R   t   endt   states(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_worker_breaks_and_returns·  s    		c   	      c` s8  t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} |  j | | g ƒ \ } } x | j s€ t j d ƒ Vqf Wt | j | j d d ƒ} | j	 | j
 d ƒ | Vt ƒ  } x | j sÚ t j d ƒ VqÀ W| j d | j
 | j
 | j
 h ƒ i d | j
 6d	 | j
 6d
 | j
 6k s)t ‚ | j ƒ  Vd  S(   Ni   R  gš™™™™™Ù?g{®Gáz„?R2   i   Ri   R0  R1  R{   (   R   R!   R;   R<   R   R   R   R‡   Rˆ   R2  R=   R   R?   R3  R0   R‹   (	   R@   R6   RA   RB   RD   RI   RJ   RŒ   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_no_workers_to_memoryÌ  s"    	$

c   
      c` se  t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} |  j | | g d i d | | | f 6ƒ\ } } x | j s– t j d ƒ Vq| Wt | j | j d d d d ƒ}	 |	 j	 | j
 d	 ƒ |	 Vx' t | j ƒ d	 k  rù t j d ƒ VqÓ Wt j d
 ƒ V| j d | j
 | j
 | j
 h ƒ i d | j
 6d | j
 6d | j
 6k sVt ‚ |	 j ƒ  Vd  S(   Ni   R  gš™™™™™Ù?R?   RÒ   g{®Gáz„?R2   RÑ   i   g333333Ó?Ri   R0  R1  R{   (   R   R!   R;   R<   R   R   R   R‡   Rˆ   R2  R=   R5   R?   R3  R0   R‹   (
   R@   R6   R7   R8   RA   RB   RD   RI   RJ   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt%   test_no_worker_to_memory_restrictionsê  s"    1!$

c         C` s›   d  d „ } t ƒ  € \ } \ } } t | d d |  ƒU } | j | ƒ } | | d k sb t ‚ t j t ƒ  | j t d d ƒ Wd  QXWd  QXWd  QXd  S(   Nc         S` s   |  j  S(   N(   R.   (   t   dask_scheduler(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyRC     s    R.   R(   i   i    (	   t   NoneR$   R   t   run_on_schedulerR0   R]   R^   t   ZeroDivisionErrorR%   (   R(   RC   R6   R7   R8   R@   R.   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_run_on_scheduler_sync  s    c         c` s5   d  d „ } |  j | ƒ V} | | j k s1 t ‚ d  S(   Nc         S` s   |  j  S(   N(   R.   (   R;  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyRC     s    (   R<  t   _run_on_schedulerR.   R0   (   R@   R6   R7   R8   RC   Rœ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_run_on_scheduler  s    c         c` s   t  | j ƒ d k s t ‚ | j d | j ƒ Vt  | j ƒ d k sJ t ‚ | j | j k sb t ‚ t j d ƒ Vt  | j ƒ d k s‹ t ‚ d  S(   Ni   t   workeri   g      à?(   R5   R?   R0   t   close_workerR.   R   R   (   R@   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_close_worker  s    i   c         c` s„  t  | j ƒ d k s t ‚ | j j ƒ  s0 t ‚ | j } t ƒ  } | j d | ƒ Vt  | j ƒ d k sn t ‚ | | j k sƒ t ‚ t ƒ  } x7 | j ƒ  rÅ t j	 d ƒ Vt ƒ  | d k  s t ‚ q W| j
 d  k sÛ t ‚ xe t d ƒ D]W } t j	 d ƒ Vt  | j ƒ d k st ‚ | j ƒ  s*t ‚ | j
 d  k sè t ‚ qè Wx: | j d k rt j	 d ƒ Vt ƒ  | d k  sFt ‚ qFWd  S(	   Ni   RB  i   gš™™™™™¹?i   i
   t   closedgš™™™™™©?(   R5   R?   R0   t   processt   is_aliveRË   R   RC  R   R   t   pidR<  RP   Rý   (   R@   R6   R7   R8   t   a_worker_addressR   Rv   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_close_nanny+  s(    			c         c` sX   | j  d t ƒ V| j s! t ‚ x0 | j d k rS | j d k rS t j d ƒ Vq$ Wd  S(   NRû   RE  g{®Gáz„?(   Rf   Rc   R?   R0   Rý   R   R   (   R@   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retire_workers_closeJ  s    !c         c` s±   | | g } | j  d t d t ƒ V| j s3 t ‚ t ƒ  } xA t d „  | Dƒ ƒ r t j d ƒ Vt ƒ  | d k  s? t ‚ q? Wt d „  | Dƒ ƒ s t ‚ | j s­ t ‚ d  S(   NRû   t   removec         s` s   |  ] } | j  d  k Vq d S(   RE  N(   Rý   (   RM   Rú   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>Z  s    gš™™™™™©?i
   c         s` s   |  ] } | j  ƒ  Vq d  S(   N(   RG  (   RM   Rú   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>^  s    (   Rf   Rc   R?   R0   R   R  R   R   (   R@   R6   R7   R8   R  R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retire_nannies_closeR  s    	i   c      
   c` sŒ   g  } xW t  d ƒ D]I } |  j t | d d d d | d d ƒ} | j | ƒ t j d ƒ Vq Wt | d	 ƒ V| d
 j d k sˆ t ‚ d  S(   Ni   R  gš™™™™™¹?R=   s   inc-%02dt   fifo_timeoutg{®Gáz„?g{®Gáz”?iÿÿÿÿi
   t   finished(	   RP   RW   R!   t   appendR   R   R   Rý   R0   (   R@   R6   RŒ   RÂ   Rv   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_fifo_submissionb  s    (c          c` s™   t  ƒ   }  t d |  ƒ } | j d ƒ t |  ƒ  } t j | ƒ } Wd  QX| d | j k se t ‚ t d |  d | j	 d t
 ƒ V} Wd  QX| j ƒ  Vd  S(   Nt   scheduler_filei    R.   R(   t   asynchronous(   R   R   R   R  t   jsont   loadR.   R0   R   R(   Rc   R‹   (   t   fnR6   RC   RG   R@   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_scheduler_filem  s    %R,   c         c` s¡   t  j j i d d 6ƒ ‚ | j d d d d d i  d i  ƒ |  j t t d	 ƒ ƒ } t j d
 ƒ V| j	 sr t
 ‚ t d „  | j j ƒ  Dƒ ƒ s— t
 ‚ Wd  QXd  S(   NRÖ   s!   distributed.comm.timeouts.connectR.   s   127.0.0.1:5738R2   i   t   nbytesRŠ   i
   g333333Ó?c         s` s   |  ] } | j  d  k Vq d S(   s	   no-workerN(   R¦   (   RM   R±   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>‚  s    (   Rž   R   Rw   R‰   R¿   R   RP   R   R   R?   R0   R½   R<   R3   (   R@   R6   RÂ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_non_existent_workerz  s    "c      	   g` sµ   |  j  t d d d ƒ} t | ƒ Vg  t d ƒ D]$ } |  j  t | d d d t ƒ^ q0 } t j d ƒ Vt | ƒ Vt d „  | Dƒ ƒ s± t g  | D] } t	 | j
 ƒ ^ q“ ƒ ‚ d  S(	   Ni   R  i    i   gš™™™™™¹?t   pureg      à?c         s` s   |  ] } | j  Vq d  S(   N(   RG   (   RM   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>  s    (   RW   R!   R   RP   RÞ   R   R   R½   R0   t   sortedRG   (   R@   R6   R?   R  Rv   RÂ   RŒ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_correct_bad_time_estimate…  s    7c          c` s  t  j d ƒ d d l m }  d } xÊ d d f d d g D]³ \ } } i |  d | f 6} t d
 | ƒ } | j | ƒ Vt | j d j j	 j
 j ƒ  ƒ } t | t ƒ rÅ | j ƒ  d | k sá t ‚ n | j ƒ  d | k sá t ‚ | j ƒ  Vq9 Wd } x d d d	 g D] } i |  d | f 6} t d
 | ƒ } | j | ƒ Vt | j d j j	 j
 j ƒ  ƒ } | j ƒ  d d k szt ‚ | j ƒ  VqWd  S(   Nt   bokehi    (   t   BokehSchedulers   tcp://0.0.0.0s   ::s   0.0.0.0s   tcp://127.0.0.1s	   127.0.0.1s   tcp://127.0.0.1:38275R…   (   s   ::s   0.0.0.0(   s   tcp://127.0.0.1s	   127.0.0.1(   s   tcp://127.0.0.1:38275s	   127.0.0.1(   s	   127.0.0.1i    (   R]   R­   t   distributed.bokeh.schedulerR^  R   R   R   R…   t   servert   _httpt   _socketsR3   R-   t   tuplet   getsocknameR0   R‹   (   R^  Rˆ   t   urlR¢   R…   R6   t   sock(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_service_hosts“  s.    	""t   worker_kwargsid   t   profile_cycle_intervalc         #` sã   t  ƒ  d ‰ |  j t t d ƒ d d d | j ƒ} t | ƒ Vt j d ƒ V| j d d ƒ V} t  ƒ  d ‰  | sy t	 ‚ t
 ‡  ‡ f d	 †  | d
 Dƒ ƒ s¢ t	 ‚ t
 d „  | d
 d  Dƒ ƒ sÆ t	 ‚ | d
 d d sß t	 ‚ d  S(   Ni   i
   R  gš™™™™™©?R?   gš™™™™™É?Ri  gš™™™™™¹?c         3` s1   |  ]' \ } } ˆ | k  o& ˆ  k  n Vq d  S(   N(    (   RM   t   tt   count(   t   nowR   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>À  s    t   countsc         s` s1   |  ]' \ } } d  | k o& d k  n Vq d S(   i    i   N(    (   RM   Rj  Rk  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>Á  s    i   iÿÿÿÿ(   R   R¿   R!   RP   R.   R   R   R   t   get_profile_metadataR0   R½   (   R@   R6   R7   R8   RÂ   t   meta(    (   Rl  R   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_profile_metadata¶  s    ')$c         c` s»   t  ƒ  d } |  j t t d ƒ d d ƒ} |  j t t d ƒ d d ƒ} t | | ƒ V| j d d ƒ V} t | d ƒ d d	 h k s t ‚ t	 | d
 ƒ t	 | d d ƒ k s· t ‚ d  S(   Ni   i
   R  gš™™™™™©?Ri  gš™™™™™¹?Ri   R!   R#   Rm  (
   R   R¿   R!   RP   R#   R   Rn  Rw   R0   R5   (   R@   R6   R7   R8   R   RA   RB   Ro  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_profile_metadata_keysÅ  s    "c   	      c` sÁ   t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} |  j | ƒ } t | ƒ t j d ƒ V| j d t ƒ V| j d k s­ t	 ‚ | j
 s½ t	 ‚ d  S(   Ni   R  gš™™™™™©?t   forcet	   cancelled(   R   R!   RH   R   R   R   t   cancelRc   Rý   R0   R<   (	   R@   R6   R7   R8   RA   RB   RD   RŒ   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_cancel_fire_and_forgetÑ  s    
c         c` s?   |  j  t j d ƒ } t | ƒ Vd t | j ƒ k s; t ‚ d  S(   Ni    t   exit(   RW   t   sysRv  R   R/   R€   R0   (   R@   R6   R7   R8   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_log_tasks_during_restartà  s    c         #` s  |  j  t d d d ƒV|  j t t d ƒ d d ƒ} |  j t t d d ƒ d d d ˆ  j ƒ} x7 t | j ƒ t | ƒ t | ƒ k  r˜ t j d ƒ Vqb Wx! | D] } | j	 d	 | j
 ƒ q  Wt | ƒ Vt ‡ f d
 †  | Dƒ ƒ d k sð t ‚ t ‡  f d †  | Dƒ ƒ d k st ‚ d  S(   NiÿÿÿÿR  gš™™™™™¹?i   i
   i   R?   gü©ñÒMbP?R=   c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R=   RG   (   RM   R  (   R8   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>÷  s    i   c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R=   RG   (   RM   R  (   R7   (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>ø  s    i   (   RW   R!   R¿   RP   R.   R5   R<   R   R   t
   rescheduleR=   R   R1   R0   (   R@   R6   R7   R8   RA   RÂ   R  (    (   R7   R8   s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_rescheduleç  s    *((c         c` sY   |  j  t d ƒ } t | ƒ V| j j d | j g ƒ V} | i d | j 6k sU t ‚ d  S(   Ni   Ri   R1  (   RW   R   R   Rp   R3  R=   R0   (   R@   R6   R7   R8   R  RK   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_get_task_statusû  s    c          C` s•   d d l  m }  t ƒ  } | j } |  j d ƒ t | j ƒ d k sJ t ‚ | j d } d | j | ƒ k sr t ‚ t	 d „  | j Dƒ ƒ s‘ t ‚ d  S(   Ni    (   t   loggert   foo123i   iÿÿÿÿs   distributed.schedulerc         s` s   |  ] } | j  d  k Vq d S(   R}  N(   R·   (   RM   R·   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pys	   <genexpr>  s    (
   t   distributed.schedulerR|  R   t   _deque_handlert   infoR5   t   dequeR0   t   formatR  (   R|  R6   t   deque_handlerR·   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_deque_handler  s    		c   	      c` s•  t  d ƒ t  d ƒ d g } |  j t | ƒ d d ƒ} | V} | d k sO t ‚ | j | j j d k sn t ‚ | j | j k s† t ‚ |  j t | ƒ d d d t ƒ} | V} | d k sÀ t ‚ | j | j j d	 k sß t ‚ | j | j k s÷ t ‚ |  j t | ƒ d d d t ƒ} t	 j
 t  ƒ  } | V} Wd  QX| j d ƒ |  j t | ƒ d d	 d t ƒ} t	 j
 t  ƒ  } | V} Wd  QX| j d ƒ d  S(
   Nt   onet   twoi*   t   retriesi   i   i   RZ  i    (   R>  RW   R&   R0   R<   R=   R‡  t
   exceptionsRÞ   R]   R^   t   match(	   R@   R6   R7   R8   Rº   R  RK   t   exc_infot   res(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_retries  s&    !!!s)   second worker also errant for some reasoni   c      	   c` sÍ   t  j j i d d 6ƒ ® t j d ƒ } |  j | j j d d | j ƒ} t | ƒ V|  j	 | d | j | j g ƒV|  j t
 | d | j ƒ} x | j s­ t j d ƒ Vq“ W| j ƒ  t | ƒ VWd  QXd  S(   Nt   1ss!   distributed.comm.timeouts.connectR¬   i€–˜ R?   gü©ñÒMbP?(   Rž   R   Rw   R]   R­   RW   R  R.   R   t	   replicateR5   R<   R   R   R‹   (   R@   R6   t   w1RÔ   t   w3R¯   RA   RB   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_mising_data_errant_worker+  s    ! 
c   	      c` sš   t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} | j ƒ  } t | ƒ Vt | j ƒ } | j ƒ  } t | ƒ Vt j d ƒ Vt | j ƒ | k s– t ‚ d  S(   Ni   t   dask_key_nameRA   RB   gš™™™™™¹?(	   R   R   R;   R   RO   Rî   R   R   R0   (	   R@   R6   R7   R8   RA   RB   RI   t   oldt   yyy(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt    test_dont_recompute_if_persisted<  s    c   
      c` s¸   t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} | j ƒ  } t | ƒ V| j d d ƒ } | j ƒ  }	 t |	 ƒ Vt j d ƒ V| j d d ƒ | k s´ t ‚ d  S(   Ni   R’  RA   RB   RD   gš™™™™™¹?(   R   R   R;   R   Rð   R   R   R0   (
   R@   R6   R7   R8   RA   RB   RD   RI   R“  RJ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt"   test_dont_recompute_if_persisted_2M  s    c         c` sÍ   t  t ƒ d d d ƒ} t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | | d d ƒ} | j ƒ  } t | ƒ Vt | j ƒ }	 | j ƒ  }
 t |
 ƒ Vt j d ƒ Vt | j ƒ |	 k sÉ t	 ‚ d  S(	   Ni   R’  RA   i   RB   RD   RŒ   gš™™™™™¹?(
   R   R   R   R;   R   RO   Rî   R   R   R0   (   R@   R6   R7   R8   RA   RB   RD   RŒ   t   wwR“  t   www(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt"   test_dont_recompute_if_persisted_3_  s    c         c` só   t  t ƒ d d d ƒ} t  t ƒ | d d ƒ} t  t ƒ | d d ƒ} | j ƒ  } t | ƒ V| j d ƒ } x( | j d j d k r˜ t j d ƒ Vqq Wt	 j | | ƒ \ }	 }
 t |	 |
 g ƒ V| j d ƒ } t
 | ƒ t
 | ƒ k sï t ‚ d  S(   Ni   R’  RA   RB   RD   R1  g{®Gáz„?(   R   R   R;   R   Rð   R<   R¦   R   R   Rž   R5   R0   (   R@   R6   R7   R8   RA   RB   RD   RI   R“  R”  t   zzzt   new(    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt"   test_dont_recompute_if_persisted_4q  s    c         c` sœ   |  j  t d d d ƒ} |  j  t | d d ƒ} |  j  t | d d ƒ} ~ t | | g ƒ V~ x! d | j k r‚ t j d ƒ Vqb Wd | j k s˜ t ‚ d  S(   Ni   R=   RA   RB   RD   g{®Gáz„?(   RW   R   R   R   R<   R   R   R0   (   R@   R6   R7   R8   RA   RB   RD   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_dont_forget_released_keys†  s    c   	      c` s   t  t ƒ d d d ƒ} t  t ƒ | d d d ƒ} | j ƒ  } t | ƒ Vt | j ƒ } | j ƒ  } t | ƒ Vt j d ƒ Vt | j ƒ | k s™ t	 ‚ d  S(   Ni   R’  RA   i    RB   gš™™™™™¹?(
   R   R   R%   R;   R   RO   Rî   R   R   R0   (	   R@   R6   R7   R8   RA   RB   RI   R“  R”  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_dont_recompute_if_erred•  s    c         c` sd   |  j  ƒ  Vt ƒ  } xI | j d k s5 | j d k r_ t j d ƒ Vt ƒ  | d k  s t ‚ q Wd  S(   NRE  g{®Gáz„?i   (   R‹   R   Rý   R   R   R0   (   R6   R7   R8   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt%   test_closing_scheduler_closes_workers¦  s
    	!t   At	   resourcesc         c` sÂ   |  j  t d d i d d 6ƒ} x | j s< t j d ƒ Vq" W| j ƒ  Vx | j re t j d ƒ VqK W| j | j j d s„ t ‚ | j	 i d d 6k s  t ‚ |  j  t
 d d i d d 6ƒVd  S(   Ngš™™™™™É?R¡  i   R   g{®Gáz„?(   RW   R   t	   executingR   Rt  R?   R.   t   used_resourcesR0   t   available_resourcesR   (   R@   R6   RŒ   R  (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt)   test_resources_reset_after_cancelled_task°  s    c         c` s¸   d „  } d „  } d „  } d „  } |  j  | d d ƒ} |  j  | | d d ƒ}	 |  j  | |	 d d ƒ}
 |
 V|  j  | |
 d d	 ƒ} ~
 t j d
 ƒ V|  j  | |	 d d ƒ} | Vd  S(   Nc           S` s   d S(   Nt   foo(    (    (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR¦  Æ  s    c         S` s   |  d S(   Nt   bar(    (   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR§  É  s    c         S` s   |  d S(   Nt   baz(    (   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR¨  Ì  s    c         S` s   t  d ƒ |  d S(   Ngš™™™™™¹?t   qux(   R   (   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR©  Ï  s    
R=   RŒ   RA   RB   RD   gš™™™™™¹?(   RW   R   R   (   R@   R6   R7   R8   R¦  R§  R¨  R©  RŒ   RA   RB   RD   RC   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_gh2187Ä  s    				t   200mss"   distributed.scheduler.idle-timeoutc         c` s    |  j  t d ƒ } | V| j d k s, t ‚ t ƒ  } x! | j d k rX t j d ƒ Vq8 Wt ƒ  | d k  sr t ‚ | j d k s‡ t ‚ | j d k sœ t ‚ d  S(   Ni   RE  g{®Gáz„?i   (   RW   R!   Rý   R0   R   R   R   (   R@   R6   R7   R8   R  R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_idle_timeoutÞ  s    	c         C` sY   |  j  | j j ƒ  } | j | j k s. t ‚ t j | ƒ } t | ƒ d k  sU t ‚ d  S(   Niè  (   R?   R.   t   cleanR0   t   pickleR   R5   (   R6   R7   R8   RÃ   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_workerstate_cleanî  s    c         c` s:   |  j  d „  ƒ } | Vd | j | j j k s6 t ‚ d  S(   Nc           S` s   d S(   Ni   (    (    (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyR+   ø  R,   R-  (   RW   R<   R=   Rn   R0   (   R@   R6   R7   R8   RA   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_result_typeö  s    c         c` s?   |  j  d t ƒ V| j d k s& t ‚ | j d k s; t ‚ d  S(   NRû   RE  (   R‹   Rc   Rý   R0   (   R6   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   test_close_workersþ  s    (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   i   i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (   s	   127.0.0.1i   (¥   t
   __future__R    R   R   R    R®  t   collectionsR   t   datetimeR   RT  t   operatorR   R   Rw  R   R   Rž   R   t   toolzR	   R
   R   R   R   t   tornadoR   R]   t   distributedR   R   R   R   R   t   distributed.coreR   R   R~  R   R   t   distributed.clientt   distributed.metricst   distributed.protocol.pickleR   t   distributed.workerR   R   t   distributed.utilsR   t   distributed.utils_testR   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   t   dask.compatibilityR*   RÒ   t   bobRÁ   R9   Rc   RF   RL   RV   RX   RY   RZ   Ra   Rd   Re   Rg   Rm   Ru   R~   R‚   R„   R   R   RŸ   R£   R«   R°   R³   Rµ   R¸   R¹   R¼   R¾   RÄ   RÉ   RÏ   RÕ   Rß   t   markt   skipift   platformRs   Rè   Ré   Rë   Rí   Rñ   Rô   Rö   Rù   Rþ   R  R
  R  t   version_infoR  R  R   R"  R#  R(  R*  R/  R4  R8  R9  R:  R?  RA  RD  RJ  RK  RM  RQ  RW  t   xfailRY  R\  Rg  Rp  Rq  Ru  Rx  Rz  R{  R„  RŒ  R‘  R•  R–  R™  Rœ  R  Rž  RŸ  R¥  Rª  R¬  R¯  R°  R±  (    (    (    s?   lib/python2.7/site-packages/distributed/tests/test_scheduler.pyt   <module>   s  ((L!%%%%%"	"!'		)		%%"	-3	((!		'$!!
%#%%%		.
/%