ó
¦–Õ\c           @   s	  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d „  Z d „  Z d „  Z  d	 „  Z! d
 „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ e j, j- e d d ƒd „  ƒ Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 e j, j- e d d ƒd  „  ƒ Z7 e j, j- e d d ƒd! „  ƒ Z8 d S("   iÿÿÿÿN(   t   PY2(   t   takes_multiple_argumentst   Dispatcht   random_state_datat   memory_reprt   methodcallert   Mt   skip_doctestt   SerializableLockt   funcnamet   ndeepmapt   ensure_dictt   extra_titlest
   asciitablet
   itemgettert   partial_by_ordert   has_keywordt   derived_from(   t   inc(   t   HighLevelGraphc          C   så   t  t ƒ s t ‚ t  t ƒ s% t ‚ d „  }  d t f d „  ƒ  Y} d t f d „  ƒ  Y} t  |  ƒ sl t ‚ t  | ƒ s t ‚ t  | ƒ s‘ t ‚ d „  } t  | ƒ s­ t ‚ d „  } t  | ƒ sÈ t ‚ t  | d t ƒsá t ‚ d  S(	   Nc         S   s   |  | | f S(   N(    (   t   at   bt   c(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   multi   s    t   Singularc           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   t   selfR   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   __init__   s    (   t   __name__t
   __module__R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR      s   t   Multic           B   s   e  Z d  „  Z RS(   c         S   s   d  S(   N(    (   R   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR      s    (   R   R   R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR      s   c           S   s   d  S(   N(    (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   f%   s    c          W   s   d  S(   N(    (   t   args(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   vararg*   s    t   varargs(   R   t   mapt   AssertionErrort   sumt   objectt   False(   R   R   R   R   R    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_takes_multiple_arguments   s    			c             s/  t  ƒ  ‰  ˆ  j t d „  ƒ ˆ  j t d „  ƒ ˆ  j t ‡  f d †  ƒ d „  }  ˆ  j t |  ƒ d t f d „  ƒ  Y} | ƒ  } ˆ  d ƒ d k s˜ t ‚ ˆ  j t ƒ d ƒ d k s¹ t ‚ ˆ  d	 ƒ d
 k sÑ t ‚ ˆ  | ƒ | k sé t ‚ ˆ  d d | f ƒ d d	 | f k st ‚ ˆ  j |  j k s+t ‚ d  S(   Nc         S   s   |  d S(   Ni   (    (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   <lambda>3   t    c         S   s   |  d S(   Ni   (    (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   4   R)   c            s   t  ‡  f d †  |  Dƒ ƒ S(   Nc         3   s   |  ] } ˆ  | ƒ Vq d  S(   N(    (   t   .0t   i(   t   foo(    s4   lib/python2.7/site-packages/dask/tests/test_utils.pys	   <genexpr>5   s    (   t   tuple(   R   (   R,   (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   5   R)   c         S   s   |  S(   s    My Docstring (    (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR   7   s    t   Barc           B   s   e  Z RS(    (   R   R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR.   =   s   i   i   g      ð?g        g       @(	   R   t   registert   intt   floatR-   R%   R#   t   dispatcht   __doc__(   R   R.   R   (    (   R,   s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_dispatch1   s    			!*c          C   sA   t  ƒ  }  |  j t d d „ ƒ |  d d d ƒd k s= t ‚ d  S(   Ni
   c         S   s   |  | S(   N(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   K   R)   i   R   i   i   (   R   R/   R0   R#   (   R,   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_dispatch_kwargsI   s    	c          C   si   t  ƒ  }  |  j t d „  ƒ |  j t d „  ƒ |  d d ƒ d k sJ t ‚ |  d d ƒ d k se t ‚ d  S(	   Nc         S   s   |  | S(   N(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   R   R)   c         S   s   |  | S(   N(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   S   R)   i   i   i   g      ð?g       @iÿÿÿÿ(   R   R/   R0   R1   R#   (   R,   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt(   test_dispatch_variadic_on_first_argumentP   s
    	c             s¶   t  ƒ  ‰  ˆ  j t d „  ƒ d d  l }  d „  ‰ ˆ  j d ƒ ‡  ‡ f d †  ƒ } ˆ  j |  j ƒ ˆ k sp t ‚ ˆ  |  j d ƒ ƒ |  j d ƒ k sš t ‚ ˆ  d ƒ d k s² t ‚ d  S(   Nc         S   s   |  S(   N(    (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   \   R)   iÿÿÿÿc         S   s   |  d S(   Ni   (    (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   foo_deca   s    t   decimalc             s#   d d  l  }  ˆ  j |  j ˆ ƒ d  S(   Niÿÿÿÿ(   R8   R/   t   Decimal(   R8   (   R,   R7   (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   register_decimald   s    i   i   (   R   R/   R0   R8   t   register_lazyR2   R9   R#   (   R8   R:   (    (   R,   R7   s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_dispatch_lazyY   s    		!*c          C   sÿ   d }  t  j j |  ƒ } d } t | |  ƒ } t | ƒ | k sE t ‚ t | | ƒ } xJ t | | ƒ D]9 \ } } | j d k s… t ‚ | | k j ƒ  sd t ‚ qd Wt d d ƒ } t d d ƒ d  } x5 t | | ƒ D]$ \ } } | | k j ƒ  sÓ t ‚ qÓ Wd  S(   Ni%   i'  ip  i
   iÒ  i   (   ip  (	   t   npt   randomt   RandomStateR   t   lenR#   t   zipt   shapet   all(   t   seedt   statet   nt   statest   states2t   s1t   s2(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_random_state_datao   s    c          C   sI   xB t  d d d d g ƒ D]( \ }  } t d |  ƒ | k s t ‚ q Wd  S(   Ns	   1.0 bytess   1.0 KBs   1.0 MBs   1.0 GBi   (   t	   enumerateR   R#   (   t   powert   mem_repr(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_memory_repr†   s    %c          C   sî   d d d d d g }  t  d ƒ } | |  d ƒ |  j d ƒ k sE t ‚ t  d ƒ | k s] t ‚ t j | k sr t ‚ t j t j | ƒ ƒ | k s– t ‚ d t t ƒ k s® t ‚ d t t  d ƒ ƒ k sÌ t ‚ d t	 t  d ƒ ƒ k sê t ‚ d  S(   Ni   i   i   t   count(
   R   RP   R#   R   t   picklet   loadst   dumpst   dirt   strt   repr(   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_method_caller‹   s    $$c          C   sj   d }  t  |  ƒ } | d k s$ t ‚ t  d  ƒ d k s< t ‚ d }  d } t  |  ƒ } | | k sf t ‚ d  S(   Ns!   >>> xxx
>>>
>>> # comment
>>> xxxsE   >>> xxx  # doctest: +SKIP
>>>
>>> # comment
>>> xxx  # doctest: +SKIPR)   s"   
>>> 1 + 2  # doctest: +ELLIPSES
3s)   
>>> 1 + 2  # doctest: +ELLIPSES, +SKIP
3(   R   R#   t   None(   t   examplet   rest   expected(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_skip_doctest˜   s    c          C   s(   d }  d } t  |  ƒ | k s$ t ‚ d  S(   NsR   

    Notes
    -----
    hello

    Foo
    ---

    Notes
    -----
    bar
    s^   

    Notes
    -----
    hello

    Foo
    ---

    Extra Notes
    -----------
    bar
    (   R   R#   (   RY   R[   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_extra_titles±   s    c          C   s7   t  d d g d d d d g ƒ }  |  d
 k s3 t ‚ d  S(   Nt   fruitt   colort   applet   redt   bananat   yellowt   tomatot   peart   greensŸ   +--------+--------+
| fruit  | color  |
+--------+--------+
| apple  | red    |
| banana | yellow |
| tomato | red    |
| pear   | green  |
+--------+--------+(   R`   Ra   (   Rb   Rc   (   Rd   Ra   (   Re   Rf   (   R   R#   (   RZ   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_asciitableÑ   s    c    	      C   s   t  ƒ  }  t  ƒ  } |   Wd  QX|   |  Wd  QXWd  QX|   |  j t ƒ sV t ‚ Wd  QXt j t j |  ƒ ƒ } t j t j |  ƒ ƒ } t j t j | ƒ ƒ } xZ |  | | | g D]F } x= |  | | | g D]) } |  | j t ƒ só t ‚ Wd  QXqÐ Wq· Wt j t j | ƒ ƒ } t j t j | ƒ ƒ } xh |  | | | g D]T } xK | | | g D]: } |  |  Wd  QXWd  QX|  |  Wd  QXWd  QXqZWqDWd  S(   N(   R   t   acquireR&   R#   RQ   RR   RS   (	   R   R   t   a2t   a3t   a4t   xt   yt   b2t   b3(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_SerializableLocká   s4    		$c          C   sˆ   t  d ƒ }  t  d ƒ } t  d ƒ } t  ƒ  } |  j | j k	 sE t ‚ |  j | j k s] t ‚ | j |  j | j | j f k s„ t ‚ d  S(   NR   R   (   R   t   lockR#   (   R   R   R   t   d(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt$   test_SerializableLock_name_collision  s    	c          C   sU   t  d ƒ }  |  j ƒ  s t ‚ |   |  j ƒ  s8 t ‚ Wd  QX|  j ƒ  sQ t ‚ d  S(   NR   (   R   t   lockedR#   (   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_SerializableLock_locked  s
    t   reasons    no blocking= keyword in Python 2c          C   sK   t  d ƒ }  |  j d t ƒ s$ t ‚ |  j d t ƒ s= t ‚ |  j ƒ  d  S(   NR   t   blocking(   R   Rh   t   TrueR#   R&   t   release(   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt&   test_SerializableLock_acquire_blocking  s    c          C   sË   d „  }  t  |  ƒ d k s! t ‚ t  t j |  d d ƒƒ d k sH t ‚ t  t j ƒ d k sc t ‚ t  d „  ƒ d k s~ t ‚ d t f d	 „  ƒ  Y} t  | ƒ d k s¬ t ‚ d t  | ƒ  ƒ k sÇ t ‚ d  S(
   Nc         S   s   d  S(   N(    (   R   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR,      s    R,   R   i   R$   c           S   s   d S(   Ni   (    (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR(   &  R)   t   lambdat   Fooc           B   s   e  Z RS(    (   R   R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR|   (  s   (   R	   R#   t	   functoolst   partialR   R$   R%   (   R,   R|   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_funcname  s    	'c          C   s[   t  j d ƒ }  |  j d „  ƒ } t | ƒ d k s9 t ‚ t | d ƒ ƒ d k sW t ‚ d  S(   Nt   toolzc         S   s   d  S(   N(    (   R   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR,   2  s    R,   i   (   t   pytestt   importorskipt   curryR	   R#   (   R€   R,   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_funcname_toolz/  s    c          C   sp   t  j d ƒ }  |  j t t t ƒ d „  ƒ } t | ƒ d k sE t ‚ t t j | d d ƒƒ d k sl t ‚ d  S(   Nt   multipledispatchc         S   s   d  S(   N(    (   R   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR,   =  s    R,   R   i   (   R   R‚   R2   R0   R	   R#   R}   R~   (   t   mdR,   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_funcname_multipledispatch:  s    c          C   s9  d }  t  d t |  ƒ d k s$ t ‚ d g }  t  d t |  ƒ d k sK t ‚ d d d g }  t  d t |  ƒ d d d g k s t ‚ d d g d d g g }  t  d t |  ƒ d d g d d g g k sÉ t ‚ d d g d d d g g d g g  g g }  t  d t |  ƒ d d g d d d g g d g g  g g k s5t ‚ d  S(	   Ni   i    i   i   i   i   i   i   (   R
   R   R#   (   t   L(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_ndeepmapE  s    	'0*c          C   sÐ   i d d 6}  t  |  ƒ |  k s% t ‚ t j d |  ƒ } t t  | ƒ ƒ t k sU t ‚ t  | ƒ |  k sm t ‚ d t f d „  ƒ  Y} | ƒ  } d | d <t t  | ƒ ƒ t k s´ t ‚ t  | ƒ |  k sÌ t ‚ d  S(   Ni   Rl   t   mydictc           B   s   e  Z RS(    (   R   R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyRŠ   ]  s   (   R   R#   R   t   from_collectionst   typet   dict(   Rr   t   hlgRŠ   R†   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_ensure_dictV  s    	
c          C   s|   d d d g }  t  d ƒ } | |  ƒ d k s3 t ‚ t j t j | ƒ ƒ } | |  ƒ d k sc t ‚ | j d k sx t ‚ d  S(   Ni   i   i   (   R   R#   RQ   RR   RS   t   index(   t   datat   gt   g2(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_itemgetterf  s    c           C   s.   t  d d t j d d g ƒd k s* t ‚ d  S(   Ni   t   functiont   otheri   i   i   (   i   i   (   R   t   operatort   addR#   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_partial_by_ordero  s    c          C   sŽ   d  d „ }  t |  d ƒ s! t ‚ t |  d ƒ s6 t ‚ t |  d ƒ sK t ‚ t j |  d d ƒ} t | d ƒ su t ‚ t | d ƒ sŠ t ‚ d  S(   Nc         S   s   d  S(   N(    (   R   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR,   t  s    R   R   R   i   (   RX   R   R#   R}   R~   (   R,   t   bar(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_has_keywords  s    s+   Docstrings not as easy to manipulate in Py2c             s0  d d d „  ƒ  Y‰  d d ‡  f d †  ƒ  Y}  d d ‡  f d †  ƒ  Y} |  j  j j ƒ  j d ƒ sf t ‚ d |  j  j k s~ t ‚ t d	 „  |  j  j j d
 ƒ d  Dƒ ƒ s­ t ‚ g  |  j  j j d
 ƒ D] } d | k rÃ | ^ qÃ \ } d | j ƒ  k sü t ‚ d | j ƒ  k st ‚ d | j  j k s,t ‚ d  S(   NR|   c           B   s   e  Z d  „  Z RS(   c         S   s   d S(   sÚ    A super docstring

            An explanation

            Parameters
            ----------
            a: int
                an explanation of a
            b: float
                an explanation of b
            N(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR   ‚  R)   (   R   R   R   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR|     s   R.   c              s   e  Z e ˆ  ƒ d  „  ƒ Z RS(   c         S   s   d  S(   N(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR     s    (   R   R   R   R   (    (   R|   (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR.     s   t   Zapc              s   e  Z e ˆ  ƒ d  „  ƒ Z RS(   c         S   s   d S(   s   extra docstringN(    (   R   R   (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyR   •  s    (   R   R   R   R   (    (   R|   (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyRœ   ”  s   s   A super docstrings   Foo.fc         s   s   |  ] } d  | k Vq d S(   t   inconsistenciesN(    (   R*   t   line(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pys	   <genexpr>œ  s    s   
i   s   b:s   not supportedt   dasks     extra docstring

(    (    (    (   R   R3   t   stript
   startswithR#   t   anyt   splitt   lower(   R.   Rœ   Rž   t   b_arg(    (   R|   s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   test_derived_from  s    !/7c          C   s˜   t  j d ƒ }  d |  j j j k s* t ‚ g  |  j j j j d ƒ D] } d | k rC | ^ qC \ } d | j ƒ  k s| t ‚ d | j ƒ  k s” t ‚ d  S(   Ns   dask.dataframeR   s   
s   axis :s   not supportedRŸ   (   R   R‚   t	   DataFramet   dropnaR3   R#   R£   R¤   (   t   ddRž   t   axis_arg(    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt    test_derived_from_dask_dataframe¥  s
    :(9   R}   R—   RQ   t   numpyR=   R   t   dask.compatibilityR    t
   dask.utilsR   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   t   dask.utils_testR   t   dask.highlevelgraphR   R'   R4   R5   R6   R<   RK   RO   RW   R\   R]   Rg   Rp   Rs   Ru   t   markt   skipifRz   R   R„   R‡   R‰   R   R”   R™   R›   R¦   R«   (    (    (    s4   lib/python2.7/site-packages/dask/tests/test_utils.pyt   <module>   sB   p											 		#		!									!&