ó
ßüÚ\c           @` sÇ  d  d l  m Z m Z m Z d  d l m 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 d  d l m Z d  d	 l m Z d  d
 l m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z m Z e d e d g  ƒ d „  ƒ Z e d e d d d i i d d 6d 6f d d i i d d 6d d 6d 6f g ƒ d „  ƒ Z e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z  e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z! e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z" e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z# e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z$ e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z% e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z& e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d „  ƒ Z' e d e d d d i i d  d 6d 6f d d i i d d 6d 6f g ƒ d! „  ƒ Z  e d e d d d i i d  d 6d d 6d 6f g ƒ d" „  ƒ Z( e d e d d d  i i d d 6d 6f g ƒ d# „  ƒ Z) e j* j+ d$ d% ƒ e d e d d d  i i d d 6d 6f d d  i i d d 6d 6f g ƒ d& „  ƒ ƒ Z, e d e d d2 g ƒ d' „  ƒ Z- e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d( „  ƒ Z. e j* j+ d$ d) ƒ e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d* „  ƒ ƒ Z/ e j* j0 d$ d+ ƒ e d e d d d i i d d 6d 6f d d i i d d 6d 6f g ƒ d, „  ƒ ƒ Z1 e j* j2 d- e j3 e d. e j* j0 d$ d/ ƒ ƒe j3 e4 d. e j* j5 e d$ d0 ƒƒg ƒ d1 „  ƒ Z6 d S(3   i    (   t   print_functiont   divisiont   absolute_import(   t   time(   t   delayedN(   t   gen(   t   Worker(   t   wait(   t   WINDOWS(   t   tokey(   t   inct   gen_clustert   slowinct   slowadd(   t   clientt   cluster_fixturet   loopt   st   at   bR   t   ncoresc      	   c` st  | j  s t ‚ | j s  t ‚ t | j | j d | j d i d d 6ƒ} t | j | j d | j d i d d 6d d 6ƒ} | | g V| j i i d | j 6d | j 6d 6i d | j 6d 6k sÉ t ‚ | j  i i d d 6| j 6i d d 6d d 6| j 6k st ‚ | j ƒ  V| j i i d | j 6d 6i  d 6k s?t ‚ | j  i i d d 6| j 6k set ‚ | j ƒ  Vd  S(   NR   t	   resourcesi   t   GPUi   t   DB(	   t   worker_resourcest   AssertionErrorR   R   t   ipt   portR   t   addresst   close(   t   cR   R   R   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_resources   s    +2A>-&s	   127.0.0.1i   i   t   AR   t   Bc      	   c` s/  |  j  t d d i d d 6ƒ} |  j  t d d i d d 6ƒ} |  j  t d d i d d 6ƒ} t | ƒ V| j | j k s€ t ‚ t | ƒ V| j | j k s£ t ‚ | j d | j g ƒ i d	 | j 6k sÑ t ‚ t | j | j	 d
 | j
 d i d d 6ƒV} t | ƒ V| j | j k s t ‚ | j ƒ  Vd  S(   Ni   R   i   R    i   R!   t   Ct   keyss	   no-workerR   i
   (   t   submitR
   R   t   keyt   dataR   t   get_task_statusR   R   R   R   R   (   R   R   R   R   t   xt   yt   zt   d(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_resource_submit&   s    .,c      	   c` s}   g  t  d ƒ D]% } |  j t | d i d d 6ƒ^ q } t | ƒ Vt | j ƒ d k s^ t ‚ t | j ƒ d k sy t ‚ d  S(   Ni   R   i   R    i    (   t   rangeR$   R
   R   t   lenR&   R   (   R   R   R   R   t   it   futures(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt    test_submit_many_non_overlappingB   s    8c         c` si   |  j  d g d | j ƒV\ } |  j t | d i d d 6ƒ} t | ƒ V| j | j d k se t ‚ d  S(   Ni   t   workersR   R    i   (   t   _scatterR   R$   R
   R   R&   R%   R   (   R   R   R   R   R(   t   future(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt	   test_moveQ   s    c      
   #` s‘   |  j  d g d ˆ  j ƒV\ } g  t d ƒ D]. } |  j t | | d i d d 6d d ƒ^ q, } t | ƒ Vt ‡  f d †  | Dƒ ƒ s t ‚ d  S(	   Ni   R2   i
   R   R    t   delaygš™™™™™©?c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R%   R&   (   t   .0t   f(   R   (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pys	   <genexpr>p   s    (   R3   R   R-   R$   R   R   t   allR   (   R   R   R   R   R(   R/   R0   (    (   R   s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_dont_work_steala   s    Ac         c` si   |  j  t t d ƒ d i d d 6ƒ} t | ƒ Vt | j ƒ d „  | Dƒ k sU t ‚ | j se t ‚ d  S(   Ni
   R   i   R!   c         S` s   h  |  ] } | j  ’ q S(    (   R%   (   R7   R8   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pys	   <setcomp>}   s   	 (   t   mapR
   R-   R   t   setR&   R   (   R   R   R   R   R0   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_maps   s    %%c         c` s¦   t  t ƒ d ƒ } t  t ƒ | ƒ } |  j | | g d i i d d 6| 6i d d 6| 6ƒ\ } } t | | g ƒ V| j | j k sŠ t ‚ | j | j k s¢ t ‚ d  S(   Ni   R   R    R!   (   R   R
   t   persistR   R%   R&   R   (   R   R   R   R   R(   R)   t   xxt   yy(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_persist   s    =i   c   
      c` sã   t  t ƒ d ƒ } t  t ƒ | ƒ } |  j | d i i d d 6| 6i d d 6| 6ƒ} t | ƒ V| j so t ‚ g  t d d ƒ D] } t  t ƒ | ƒ ^ q } |  j | d i d d 6ƒ}	 t |	 ƒ Vt | j ƒ d k sß t ‚ d  S(   Ni   R   R    R!   i
   i   (   R   R
   t   computeR   R&   R   R-   R.   (
   R   R   R   R   R(   R)   R@   R/   t   xst   xxs(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_compute”   s    1.c         c` sc   i t  d f d 6t  d f d 6} |  j | d d i i d d 6d 6d t ƒV} | d k s_ t ‚ d  S(   Ni   R(   R)   R   R    t   synci   (   R
   t   gett   FalseR   (   R   R   R   R   t   dskt   result(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_get«   s     -c         c` s®   t  t ƒ d ƒ } t  t ƒ | ƒ } |  j | | g d i i d d 6| | f 6ƒ\ } } t | | g ƒ V| j | j k s‚ t ‚ | j | j k sš t ‚ | j sª t ‚ d  S(   Ni   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_resources.pyt   test_persist_tuple¹   s    5i   i   c         c` s×   |  j  t t d ƒ d i d d 6d d ƒ} xj t | j ƒ t | j ƒ d k  r— t j d ƒ Vt | j ƒ d k sy t ‚ t | j ƒ d k s. t ‚ q. Wt	 | ƒ V| j
 | j k s» t ‚ | j
 | j k sÓ t ‚ d  S(	   Nid   R   i   R    R6   g{®Gáz”?g{®Gáz„?i   (   R;   R   R-   R.   R&   R   t   sleept	   executingR   R   t   total_resourcest   available_resources(   R   R   R   R   R0   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyR1   Í   s    +%c         c` sž   |  j  t t d ƒ d i d d 6d d 6d d ƒ} xB t | j ƒ d k  rv t j d ƒ Vt | j ƒ d k s5 t ‚ q5 Wt	 | ƒ V| j
 | j k sš t ‚ d  S(	   Ni   R   i   R    R!   R6   g{®Gáz”?g{®Gáz„?(   R;   R   R-   R.   R&   R   RM   RN   R   R   RO   RP   (   R   R   R   R0   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_minimum_resourceá   s    2c   	      c` sÐ   |  j  t t d ƒ d d ƒ} |  j  t t d ƒ d i d d 6ƒ} t ƒ  } t | ƒ Vt ƒ  } | | d k  sv t ‚ t | j ƒ } t | j	 ƒ } t
 | ƒ t
 | ƒ d	 k  s¶ t ‚ | j	 | j sÌ t ‚ d  S(
   Niè  R6   gš™™™™™¹?i
   R   i   R    i   i   (   R;   R   R-   R
   R   R   R   t   dictt   has_whatt
   processingR.   R   (	   R   R   R   R0   t   constrainedt   startt   endRS   RT   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_prefer_constrainedí   s    %		"t   reasont    c         #` sŸ   |  j  t t d ƒ d d d ˆ  j ƒ} |  j  t t d ƒ d i d d 6ƒ} t | ƒ Vt ‡  f d	 †  | Dƒ ƒ sy t ‚ t ‡ f d
 †  | Dƒ ƒ s› t ‚ d  S(   Nid   R6   gš™™™™™¹?R2   i   R   i   R    c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R%   R&   (   R7   R8   (   R   (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pys	   <genexpr>	  s    c         3` s!   |  ] } | j  ˆ  j k Vq d  S(   N(   R%   R&   (   R7   R8   (   R   (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pys	   <genexpr>
  s    (   R;   R   R-   R   R
   R   t   anyR   (   R   R   R   R   R0   RU   (    (   R   R   s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_balance_resourcesü   s
    	'%"c      	   c` s  | j  d d ƒ V| j d d k s* t ‚ | j d d k sC t ‚ | j | j i d d 6k sf t ‚ |  j t d d d d i d d 6ƒ} x% | j d d k r² t j	 d ƒ VqŽ W| j  d d ƒ V| j d d k sÝ t ‚ | j d d k sö t ‚ | j | j i d d 6k st ‚ d  S(   NR    i   i   R6   R   g{®Gáz„?i   (
   t   set_resourcesRO   R   RP   R   R   R$   R   R   RM   (   R   R   R   R4   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_set_resources  s    #%c         #` sÌ   t  j d ƒ } | j d d d ƒ} | j d „  ƒ } | j d „  ƒ } | j ƒ  } |  j | | g d i i d d	 6t | j ƒ  ƒ 6ƒ\ }	 }
 t |	 |
 g ƒ Vt	 ‡  f d
 †  | j ƒ  Dƒ ƒ sÈ t
 ‚ d  S(   Ns
   dask.arrayi
   t   chunksi   c         S` s   |  d S(   Ni   (    (   R(   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   <lambda>(  RZ   c         S` s   d |  S(   Ni   (    (   R(   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyR`   )  RZ   R   i   R    c         3` s$   |  ] } t  | ƒ ˆ  j k Vq d  S(   N(   R	   R&   (   R7   R%   (   R   (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pys	   <genexpr>0  s    (   i   (   t   pytestt   importorskipt   aranget
   map_blockst   sumR>   t   tuplet   __dask_keys__R   R9   R   (   R   R   R   R   t   daR(   R)   R*   t   wt   wwR@   (    (   R   s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_persist_collections  s    ;s.   Should protect resource keys from optimizationc   
      c` sÇ   t  j d ƒ } | j d d d ƒ} | j d „  ƒ } | j d „  ƒ } | j ƒ  } |  j | d i i d d	 6t | j ƒ  ƒ 6ƒVx> t t	 | j ƒ  ƒ D]' }	 d
 t
 | j |	 ƒ ƒ k s˜ t ‚ q˜ Wd  S(   Ns
   dask.arrayi
   R_   i   c         S` s   |  d S(   Ni   (    (   R(   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyR`   >  RZ   c         S` s   d |  S(   Ni   (    (   R(   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyR`   ?  RZ   R   i   R    RN   (   i   (   Ra   Rb   Rc   Rd   Re   RB   Rf   Rg   R;   R	   t   strt   storyR   (
   R   R   R   R   Rh   R(   R)   R*   Ri   R%   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_dont_optimize_out3  s    	.s    atop fusion seemed to break thisc      	   c` s”   t  j d ƒ } | j j d d d d d d d d	 ƒ } | j | j } |  j | d
 i i d d 6t | j ƒ 6ƒV| j	 s€ t
 ‚ | j	 s t
 ‚ d  S(   Ns   dask.dataframet   freqt   60st   partition_freqt   1dRV   s
   2000-01-01RW   s
   2000-01-31R   i   R    (   Ra   Rb   t   demot   make_timeseriesR(   R)   RB   Rf   t   daskt   logR   (   R   R   R   R   t   ddt   dfR*   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_full_collectionsH  s    	+t   optimize_grapht   markss*   don't track resources through optimizations   intermittent failurec   
      C` sÀ   t  j d ƒ } d „  } |  j | d | d g ƒ| j j d d d ƒd } | j d	 i i d d
 6t | j ƒ 6d | ƒ d „  } |  j | ƒ }	 |	 | d s§ t ‚ |	 | d s¼ t ‚ d  S(   Ns
   dask.arrayc         S` s   |  j  i d d 6  d  S(   Ni   R    (   R]   (   t   dask_worker(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyR8   m  s    R2   R   id   R_   i
   i   R   R    Rz   c         S` s   t  |  j ƒ S(   N(   R.   Rv   (   R|   (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   gv  s    (   i
   (   Ra   Rb   t   runt   randomRB   Rf   Ru   R   (
   R   Rz   R   R   R   Rh   R8   R(   R}   t   logs(    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   test_collections_get\  s    	-	(   s	   127.0.0.1i   (7   t
   __future__R    R   R   R   Ru   R   Ra   t   tornadoR   t   distributedR   t   distributed.clientR   t   distributed.compatibilityR   t   distributed.utilsR	   t   distributed.utils_testR
   R   R   R   R   R   R   R   R   R   t   TrueR   R,   R1   R5   R:   R=   RA   RE   RK   RL   RQ   RX   t   markt   skipR\   R^   Rk   Rn   t   xfailRy   t   parametrizet   paramRH   t   skipifR   (    (    (    s?   lib/python2.7/site-packages/distributed/tests/test_resources.pyt   <module>   s¢   ".3,,,,
,,,
,,?8/!,//		