ó
ßüÚ\c        (   @` s-  d  d l  m Z m Z m Z d  d l Z d  d l m 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 d  d l 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 „  Z  e	 j! j" d e j# d ƒ e j$ d ƒ e j% j% dS ƒ e j% j% dT ƒ d d d … d d … f e j% j% dU ƒ d d … d d d … f e j& e j% j% dV ƒ ƒ e j& e j% j% dW ƒ ƒ d d d … d d … f e j& e j% j% dX ƒ ƒ d d … d d d … f e j% j% d ƒ j' d ƒ e j% j% d ƒ j' d ƒ e j% j% d ƒ j' d ƒ e j( d ƒ j' d ƒ e j( d ƒ j' d ƒ e j( d ƒ j' d ƒ e j( d ƒ j' d ƒ e j( d ƒ j' d ƒ e j( d ƒ j' d ƒ e j$ e) e* e) g ƒ e j# d d d dY dZ g ƒ e j$ d g d d ƒe j$ d g d d ƒe j$ d g d e+ ƒe j# d d[ d d\ ƒ e j# d d] d d^ g ƒ e j# d d_ d e j, d` da g d# e* ƒƒ e j# d db d e j, dc dd g d# e) ƒƒ e j# d de d e j, df g d# e* ƒƒ e j# d dg d e j, dh g d# e* ƒƒ e j$ di g d dj d& e+ f g ƒe j- d' d g  e. d( ƒ D] Z/ d) e/ d* f ^ q4ƒe j- d' d d+ ƒe j- dk ƒ e j( d- ƒ d d d … e j# d dl ƒ j' d dm dn g ƒ g" ƒ d1 „  ƒ Z0 e	 j! j" d e j1 j2 d d. g d2 e) e* g d3 d4 d d ƒe j1 j2 d5 d6 g d2 e) e* g d3 d4 d d ƒe j1 j2 d5 d6 g d2 e) e* g d3 e j3 d d  ƒe j1 j2 d5 d6 g d2 e j1 j4 d3 e j3 d d  ƒe j1 j2 e) e* g d2 e j1 j4 d3 e) d d7 ƒe j1 j2 d d g d2 e) e* g d3 d8 d d9 ƒg ƒ d: „  ƒ Z5 d; „  Z6 d< „  Z7 d= „  Z8 e d> „  ƒ Z9 e	 j! j" d? do dp dq dr ds dt du dv dw dx g d- f dz d{ g d@ f d| d} g d f d€ d g d@ f g ƒ dG „  ƒ Z: e	 j! j; e j< d  dB k  dH dI ƒdJ „  ƒ Z= dK „  Z> e	 j! j? dL „  ƒ Z@ e dM e) dN dO ƒ dP „  ƒ ZA e	 j! j; e j< d  dB k  dH dI ƒdQ „  ƒ ZB dR „  ZC d S(‚   i    (   t   print_functiont   divisiont   absolute_importN(   t   crc32(   t   PY2(   t	   serializet   deserializet
   decompresst   dumpst   loadst   to_serializet   msgpack(   t   BIG_BYTES_SHARD_SIZE(   t   tmpfilet   nbytes(   t   slowt   gen_cluster(   t   itemsize(   t   maybe_compressc          C` s’   t  j d ƒ }  t |  ƒ \ } } | d s1 t ‚ t | ƒ d k sI t ‚ d | k rg t | | ƒ } n  t | | ƒ } | |  k j ƒ  sŽ t ‚ d  S(   Ni   t   typei   t   compression(   i   i   (   t   npt   onesR   t   AssertionErrort   lenR   R   t   all(   t   xt   headert   framest   result(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_serialize   s    R   i   i   t   f4s   >i8s   <i8s   M8[us]s   M8[ms]t   m8s   m8[s]t   c16t   c8t   shapet   dtypet   at   i4t   bt   abct   S3t   U3t   f8i    t   i1t   aligns   m8[us]i   t   siˆ  i   s   x%ds   <f8t   S32iè  i   i   t   totalt   nc         C` sÇ   t  |  ƒ \ } } d | k r0 t | | ƒ } n  t r< t n t } x) | D]! } t | t | f ƒ sI t ‚ qI Wt | | ƒ } t	 j
 j |  | ƒ |  j j s¨ |  j j rÃ |  j | j k sÃ t ‚ n  d  S(   NR   (   R   R   R   t   buffert
   memoryviewt
   isinstancet   bytesR   R   R   t   testingt   assert_equalt   flagst   c_contiguoust   f_contiguoust   strides(   R   R   R   t   buffer_interfacet   framet   y(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_dumps_serialize_numpy&   s    )t   maskt
   fill_valuei
   g      @g      @t   boolt   ct   Oc         C` s‹   t  t t |  ƒ g ƒ ƒ \ } |  j j | j j k s< t ‚ t j j |  j | j ƒ t j j |  j	 | j	 ƒ t j j |  j
 | j
 ƒ d  S(   N(   R	   R   R
   t   dataR$   R   R   R6   R7   R@   RA   (   R   R>   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt$   test_serialize_numpy_ma_masked_array\   s
    c          C` s@   t  t t t j j ƒ g ƒ ƒ \ }  |  t j j k s< t ‚ d  S(   N(   R	   R   R
   R   t   mat   maskedR   (   R>   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_serialize_numpy_ma_maskedu   s    $c          C` s   d d l  m }  t j d ƒ } | j } zY | |  _ t j d g d | ƒ} t | ƒ \ } } t | | ƒ } t j	 j
 | | ƒ Wd  |  ` Xd  S(   Ni    (   t   builtinss   numpy.core.test_rationali   R$   (   t	   six.movesRJ   t   pytestt   importorskipt   rationalR   t   arrayR   R   R6   R7   (   RJ   t   test_rationalRN   R   R   R   R>   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt'   test_dumps_serialize_numpy_custom_dtypez   s    		c          C` s«   t  d ƒ ™ }  t |  d ƒ  } Wd  QXt j |  d d
 d d d d ƒ} d | (t | ƒ \ } } d	 | k r t | | ƒ } n  t | | ƒ } t j j | | ƒ Wd  QXd  S(   Nt   npyt   wbR#   i   R$   R&   t   modet	   readwriteR   (   i   i   (	   R   t   openR   t   memmapR   R   R   R6   R7   (   t   fnt   fR   R   R   R>   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_memmapŒ   s    !c          C` sù   t  j d ƒ }  |  j ƒ  j d k  r( d  St j j d t t d d ƒ ƒ j d ƒ } | j	 t d k sm t
 ‚ t t | ƒ g ƒ } | j | j } } t | ƒ } ~ t | ƒ \ } | j | j f | | f k s× t
 ‚ t | ƒ | k sõ t
 d ƒ ‚ d  S(   Nt   psutilg    eÍÝAt   sizei   i   t   u1s   Arrays are unequal(   RL   RM   t   virtual_memoryR0   R   t   randomt   intR   t   viewR   R   R   R
   R$   R#   R   R	   (   R[   R   R   R$   R#   t   checksumR>   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt    test_dumps_serialize_numpy_large›   s    ,$s   dt,sizei   i   i   s   M8[s]id   i   iÈ   c         C` s%   t  t j |  ƒ ƒ | k s! t ‚ d  S(   N(   R   R   R$   R   (   t   dtR\   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_itemsize¬   s    t   reasons   numpy doesnt use memoryviewsc          C` sÎ   t  j d ƒ t j d d d ƒ}  t i t |  ƒ d 6ƒ } t t t | ƒ ƒ |  j k  s_ t	 ‚ t
 j | d d t d t ƒ} y d	 d  l } Wn t k
 r¡ n) Xt d
 „  | d d d Dƒ ƒ sÊ t	 ‚ d  S(   Nt   lz4i€–˜ R$   R&   R   i   t   rawt   use_listi    c         s` s   |  ] } | d  k Vq d S(   t   bloscN(    (   t   .0RC   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pys	   <genexpr>Ï   s    t   headersR   (   R   (   RL   RM   R   R   R   R
   t   sumt   mapR   R   R   R	   t   FalseRj   t   ImportErrorR   (   R   R   R   Rj   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_compress_numpyÂ   s    $c          C` sM   t  d d ƒ }  t |  ƒ \ } } | rI t | ƒ t |  ƒ k  sI t ‚ n  d  S(   Nt   0i@B (   R3   R   R   R   (   t   mvR   t
   compressed(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_compress_memoryviewÒ   s    c          C` s.  t  j d ƒ }  t j j d d d d ƒj d ƒ } t | ƒ \ } \ } d | k sZ t ‚ | | j k so t ‚ t j	 d ƒ } t | ƒ \ } \ } | d d g k s¬ t ‚ | | j k sÁ t ‚ t j	 d	 ƒ } t | ƒ \ } \ } d | k s÷ t ‚ t
 | t ƒ r*| j j j | j j k s*t ‚ n  d  S(
   NRj   i    iÿ   R\   i † t   uint8R   i@B id   (   RL   RM   R   R_   t   randintt   astypeR   R   RE   R   R4   R3   t   objt   ctypes(   Rj   R   R   RE   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt&   test_dont_compress_uncompressable_dataÙ   s    $t   clientt   timeouti<   c         c` s*   |  j  t j t d d d ƒ} | V} d  S(   Ni   R$   R]   (   t   submitR   R   R   (   RC   R.   R%   R'   R   R   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_dumps_large_bloscí   s    c          C` s  t  j d ƒ t  j d ƒ }  t j d d d ƒ} t |  j | j d d ƒƒ t |  j | j d d ƒƒ k  ss t ‚ t | ƒ \ } } g  | D] } t	 | ƒ d ^ qŒ } t | j
 d	 ƒ ƒ \ } } g  | D] } t	 | ƒ d ^ qÊ } t t t | ƒ ƒ t t t | ƒ ƒ k  st ‚ d  S(
   NRg   Rj   i@B R$   t   i8t   typesizei   i   R]   (   RL   RM   R   t   arangeR   t   compressRE   R   R   R   Ra   Rm   Rn   R   (   Rj   R   t   _R%   R=   t   aaR'   t   bb(    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt,   test_compression_takes_advantage_of_itemsizeó   s    $##c          C` sV   t  j d d d ƒ}  t |  ƒ \ } } t | d ƒ t t t | ƒ ƒ k sR t ‚ d  S(   Ni áõR$   t   u4t   lengths(   i áõ(   R   R   R   Rm   Rn   R   R   (   R   R   R   (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   test_large_numpy_array  s    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R%   R&   (   R'   s   M8[us](   i   (   R+   i    (   i   (   R   R+   i    (   i   (   R%   R,   (   R'   R+   (   i   (   R%   R,   (   R'   R+   (   i   (   R%   s   m8[us](   i   (   R%   R    (   i   R(   (   R   R&   (   i   iè  iè  (   i   i   (   R0   s   <f8(   R1   s   <f8(   R+   i   (   R&   i   (   R!   i   (   R'   i   (   R)   i   (   s   M8[us]i   (   s   M8[s]i   (   R*   i   (   R%   R&   (   R'   R+   (   R&   id   (   (   R&   id   i   (   R%   R&   id   (   R%   R&   i   (   R'   R+   iP   iX   (   R%   R&   iÈ   (   R'   R+   (D   t
   __future__R    R   R   t   syst   zlibR   t   numpyR   RL   t   distributed.compatibilityR   t   distributed.protocolR   R   R   R   R	   R
   R   t   distributed.protocol.utilsR   t   distributed.utilsR   R   t   distributed.utils_testR   R   t   distributed.protocol.numpyR   t    distributed.protocol.compressionR   R   t   markt   parametrizeR   RO   R_   t   asfortranarrayRx   R‚   t   TrueRo   t   objectR$   t   zerost   ranget   iR?   RG   t   masked_arrayt   nant   nomaskRF   RI   RQ   RZ   Rc   Re   t   skipift   version_infoRq   Ru   t   skipR{   R   R‡   RŠ   (    (    (    sD   lib/python2.7/site-packages/distributed/protocol/tests/test_numpy.pyt   <module>   s¨   4			((11**''!53	--	'	'	$?				!.	.