
    bix                    0   d dl mZ d dlm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 d dl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mZ d	 Zd
 Zd Zd Zd Zd Z d Z!ejD                  jG                  dg d      d        Z$d Z%d Z&d Z'd Z(ejD                  jG                  ddejR                  ejT                  g      d        Z+d Z,d Z-ejD                  jG                  dg dg dg dg      d        Z.d  Z/ejD                  jG                  dg d!g d"g      ejD                  jG                  d#d$d%g      d&               Z0ejD                  jb                  d'        Z2d( Z3d) Z4d* Z5ejD                  jG                  d+d$d%g      d,        Z6d- Z7d. Z8d/ Z9d0 Z:d1 Z;d2 Z<d3 Z=d4 Z>d5 Z?d6 Z@ejD                  jG                  d7 ej                  d8d9       ej                  d:d;       ej                  d<d=      g      d>        ZBd? ZCejD                  jb                  ejD                  jG                  d@dAdBg      dC               ZDdD ZEdE ZFdF ZGejD                  jG                  dGdHdHgd$g      dI        ZHdJ ZIdK ZJdL ZKdM ZLdN ZMdO ZNdP ZOejD                  jG                  dQdRdS edTdUdV       edWdXdY      fg      dZ        ZPd[ ZQd\ ZRd] ZSd^ ZTd_ ZUejD                  jG                  d` eVg da      db eU       g      dc        ZW G dd de      ZXdf ZYejD                  jb                  ejD                  jG                  dgdhdig      dj               ZZejD                  jG                  dgdh ej                  diejD                  jb                  k      g      dl        Z[y)m    )annotations)datetimeN)config)tm)_meta_from_arraysorted_division_locations)	assert_eqget_string_dtype)Delayeddelayedc                    t        j                  ddgddggt         j                        } t        |       }t	        |t
        j                        sJ |d   j                  t         j                  k(  sJ |d   j                  t         j                  k(  sJ t        j                  |j                  t        j                  ddg             t        j                  ddgd	d
ggt         j                        } t        | ddg      }t	        |t
        j                        sJ |d   j                  t         j                  k(  sJ |d   j                  t         j                  k(  sJ t        j                  |j                  t        j                  ddg             t        j                  t              5  t        | g d       d d d        t         j                   j#                  d       t         j                   j%                  dd      } t'        j(                  | dddg      } t+        | j,                        dk(  sJ y # 1 sw Y   }xY w)N            dtyper         ?       @      @      @abcolumnsr   r   c*      2   	chunksizer      )nparrayint64r   
isinstancepd	DataFramer   r   assert_index_equalr   Indexfloat64pytestraises
ValueErrorrandomseedranddd
from_arraylen	divisionsxress     Z/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/dataframe/io/tests/test_io.pytest_meta_from_arrayr;      s   
1a&1a&!2A
1
Cc2<<(((q6<<288###q6<<288####++rxxA'78
3*sCj)<A
1sCj
1Cc2<<(((s8>>RZZ'''s8>>RZZ'''#++rxxc
';<	z	" 5O45 IINN2
		sAA
a2Sz:Aq{{q   5 5s   4I  I	c                    t        j                  g dt         j                        } t        |       }t	        |t
        j                        sJ |j                  t         j                  k(  sJ t        j                  g dt         j                        } t        | d      }t	        |t
        j                        sJ |j                  dk(  sJ |j                  t         j                  k(  sJ t        j                  g dt         j                        } t        | dg      }t	        |t
        j                        sJ |d   j                  t         j                  k(  sJ t        j                  |j                  t        j                  dg             t        j                   t"              5  t        | ddg       d d d        y # 1 sw Y   y xY w)N)r   r   r   r   r   r   r   r8   r   r   r   )r$   r%   r,   r   r'   r(   Seriesr   object_namer)   r   r*   r   r+   r-   r.   r/   r7   s     r:   test_meta_from_1darrayrA   /   sA   


3A
1
Cc299%%%99

"""
"**-A
1c
*Cc299%%%88s??99

"""
"**-A
1se
,Cc2<<(((s8>>RZZ'''#++rxx7	z	" 0S#J/0 0 0s   .GGc                    t        j                  t        d      D  cg c]	  } | | dz  f c} dt         j                  fdt         j                  fg      }t        |      }t        |t        j                        sJ |d   j                  t         j                  k(  sJ |d   j                  t         j                  k(  sJ t        j                  |j                  t        j                  ddg             t        |ddg      }t        |t        j                        sJ |d   j                  t         j                  k(  sJ |d   j                  t         j                  k(  sJ t        j                  |j                  t        j                  ddg             t        j                  t               5  t        |g d       d d d        y c c} w # 1 sw Y   y xY w)N
   r   r   r   r   r   )r$   r%   ranger,   r&   r   r'   r(   r)   r   r   r*   r   r+   r-   r.   r/   )ir8   r9   s      r:   test_meta_from_recarrayrF   E   se   
#Bi(!QV(#rzz1BS"((O0T	A 1
Cc2<<(((s8>>RZZ'''s8>>RXX%%%#++rxxc
';<
1sCj
1Cc2<<(((s8>>RZZ'''s8>>RXX%%%#++rxxc
';<	z	" 5O45 5 	)5 5s   G3GGc                    t        j                  d      j                  dd      } t        j                  | d      }t        |t        j                        sJ t        j                  |j                  t        j                  g d             |j                  dk(  sJ |j                         j                  | k(  j                         sJ t        j                  | dt!        d      	      }t        |t        j                        sJ t        j                  |j                  t        j                  g d
             |j                  dk(  sJ |j                         j                  | k(  j                         sJ t#        j$                  t&              5  t        j                  t        j(                  d             d d d        y # 1 sw Y   y xY w)N   rC   r   r   r"   r   r   r   r   r      	   abcr!   r   )rC   rC   rC   )shape)r$   arangereshaper3   r4   r'   r)   r   r*   r   r(   r+   r6   computevaluesalllistr-   r.   r/   ones)r8   ds     r:   test_from_arrayrX   Y   sE   
		&!!"a(A
a1%Aa&&&!))RXXi%89;;,&&&IIK!#((***
a1d5k:Aa&&&!))RXXo%>?;;,&&&IIK!#((***	z	" 3
bggL123 3 3s   *GGc                    t        j                  t        d      D  cg c]	  } | | dz  f c} ddg      }t        j                  |d      }t        |t        j                        sJ t        |j                        ddgk(  sJ |j                  d	k(  sJ |j                         j                  d
      |k(  j                         sJ y c c} w )NrC   r   i4)r   r[   r   r   rI   r   r   rK   Findex)r$   r%   rD   r3   r4   r'   r)   rU   r   r6   rR   
to_recordsrT   )rE   r8   rW   s      r:   !test_from_array_with_record_dtyper_   k   s    
uRy1!1a"f+1+{9STA
a1%Aa&&&		?sCj(((;;,&&&IIK"""/1499;;; 2s   C
c            
        t        d      } t        j                  t        | t        j
                  j                  t        |                   t        j                  dt        |                   }t        j                  |d      }d}t        |j                        |k(  sJ t        |j                        dk(  sJ t        |j                  d   t        |j                  d               sJ t!        ||       t        j                  |d	
      }d}t#        j$                  t&              5 }t        j                  |dd       d d d        |t)        j*                        v sJ t        |j                        |k(  sJ t        |j                        dk(  sJ t        |j                  d   t        |j                  d               sJ t!        ||       y # 1 sw Y   xY w)Naaaaaaabbbbbbbbccccccc)r   r   20120101startperiodsr\   r   r   r   rL   rI   z;Exactly one of npartitions and chunksize must be specified.r   )npartitionsr"   )rU   r(   r)   dictr$   r0   randnr5   
date_ranger3   from_pandasdaskr6   r'   typer]   r	   r-   r.   r/   strvalue)r   dfddfexpected_layersmsgerrs         r:   test_from_pandas_dataframert   u   sw   %&A	qBIIOOCF+,mm*c!f=
B ..Q
COsxx=O+++s}}"""cmmA&RXXa[(9:::b#
..q
)C
GC	z	" 7c
rqA67#cii.   sxx=O+++s}}"""cmmA&RXXa[(9:::b#7 7s   -GG"c                    t        j                  dg di      } dD ]  }t        j                  | |      }t	        |j                               dk(  sJ |j                  d   dk(  sJ |j                  d   dk(  sJ t        j                  | |      }t	        |j                               dk(  sJ |j                  d   dk(  sJ |j                  d   dk(  rJ  d	D ]  }d
D ]  }t        j                  ddg|z  i      } t        j                  | d|      }t        | |       t        j                  dg|z  dt              }t        j                  |d|      }t        ||         y )Nr8   r=   )r   r   rH   r   r   r   rI   )TF)r   r      rf   sort)r@   r   )
r(   r)   r3   rj   r5   rR   r6   r	   r>   int)ro   rE   r   ry   rp   sdss          r:   test_from_pandas_smallr}      sV   	sI&	'B 	$NN2q!199;1$$${{1~"""{{2!###NN2+199;1$$${{1~"""{{2!###	$   	AsQC!Gn-B..>Cb#		1#'37Aqt<Ba	    n)r   r   r   rw   c                    t        j                  g dt        d      dg d      }t        j                  ||       j
                  | k  sJ y )N)r   r   r   r   rw   r#   abdabdr8   y)rC      rH   (   r    <   r\   rf   )r(   r)   rU   r3   rj   rf   )r   ro   s     r:   (test_from_pandas_npartitions_is_accurater      s@    	 tH~6>V
B >>"!,88A===r~   c                 p   d} t        j                  t        j                  j	                  |       t        j
                  d|             }t        j                  |d      }t        |j                        dk(  sJ t        |j                        t        |j                        dz   k(  sJ t        |j                  d   t        |j                  d               sJ t        j                  ||j!                                t        j                  |d	      }t        |j                        dk(  sJ t        |j                        t        |j                        dz   k(  sJ t        |j                  d   t        |j                  d               sJ t        j                  ||j!                                y )
Nr   rb   rc   r\   r   r   r   rL   rI   )r(   r>   r$   r0   rh   ri   r3   rj   r5   rk   r6   r'   rl   r]   r   assert_series_equalrR   )r   r{   r|   s      r:   test_from_pandas_seriesr      s:   
A
		"))//!$BMM
TU,VWA	1	Brww<1r||BGGq 0000bll1otAGGAJ'78881bjjl+	Q	'Brww<1r||BGGq 0000bll1otAGGAJ'78881bjjl+r~   c                    t        j                  dg dig d      } t        j                  | dd      }|j                  rJ t        | |       t        j                  | dd      }|j                  rJ t        | |       y )	Nr8   r=   )r   r   r   r\   r   Frx   )r"   ry   )r(   r)   r3   rj   known_divisionsr	   ro   rp   s     r:   test_from_pandas_non_sortedr      sm    	sI&i	8B
..
7C""""b#
..qu
5C""""b#r~   c                     t        j                  ddgidg      } t        j                  | d      }|j                  dk(  sJ t        ||        y )Nr8   r   r\   r   )r   r   )r(   r)   r3   rj   r6   r	   r   s     r:   test_from_pandas_single_rowr      sF    	sQCj	,B
..
+C==F"""c2r~   c                 &   t        j                  g dt        t        d            d      } | j                  j                  d      | _        t        j                  | d      }t        | |       t        j                  | d      }t        | |       y )N)	z
2015-08-28z
2015-08-27z
2015-08-26z
2015-08-25z
2015-08-24z
2015-08-21z
2015-08-20z
2015-08-19z
2015-08-18rM   )DateValzdatetime64[ns]r   rI   )	r(   r)   rU   rD   r   astyper3   rj   r	   r   s     r:   $test_from_pandas_with_datetime_indexr      sr    	
 a>	

B  ggnn-.BG
..Q
Cb#
..q
)Cb#r~   
null_valuec                    t        j                  dg did| dg      }t        j                  t        d      5  t        j                  |dd	
       d d d        y # 1 sw Y   y xY w)Nr8   r=   CAr\   z!is non-numeric and contains nullsmatchr   Frx   )r(   r)   r-   r.   NotImplementedErrorr3   rj   )r   ro   s     r:   !test_from_pandas_with_index_nullsr      sS    	sI&sJ.D	EB	*2U	V 6
rqu56 6 6s   AA%c                    t        j                  dg dig d      } t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j                  | d	d
       d d d        t        j                  t        d      5  t        j                  | d       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr8   r=   r   r   r   r\   z$must be a pandas DataFrame or Seriesr   foozprovide npartitions as an intg@Frx   zprovide chunksize as an intgQE2@rI   )r(   r)   r-   r.   	TypeErrorr3   rj   ro   s    r:    test_from_pandas_with_wrong_argsr      s    	sI&i	8B	y(N	O 
u	y(G	H 8
rs78	y(E	F ,
rU+, ,	 8 8, ,s#   C2C.C'CC$'C0c                     t        j                  t        j                  j	                  ddd      t        d            } t        j                  | d      }t        |j                  t              j                               }|dgdz  k(  sJ y )	Nr   rC   rC   r   sizeABCDr   r   rI   )r(   r)   r$   r0   randintrU   r3   rj   map_partitionsr5   rR   )ro   rp   num_rowss      r:   test_from_pandas_chunksize_oner      sp    	bii''2G'<d6l	SB
..q
)CC&&s+3356H sRxr~   r]   )r   Br   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                    t        j                  t        d      | d      j                  d      }t	        j
                  |d      }|j                  dk(  sJ y )NrL   r   r]   r]   r   r   r   r   r   r   )r(   r)   rD   	set_indexr3   rj   r6   )r]   ro   rp   s      r:   'test_from_pandas_npartitions_duplicatesr     sI     
E!Hu5	6	@	@	IB
..
+C==0000r~   c                 f   t        j                  dd       t        j                  j	                  ddi      5  t        j                  g dg d      } t        j                  g d	g d
g ddg d      }t        j                  | d      }t        j                  |d      }d d d        t                t               t        j                  j	                  ddi      5  t        j                  | d      }t        j                  |d      }d d d        | j                  d      }|j                  j                  d      |_        |j                  ddi      }|j                  j                  d      |_        t        ||       t        ||       y # 1 sw Y   xY w# 1 sw Y   xY w)NpyarrowzRequires pyarrow strings)reasonzdataframe.convert-stringF)r   barrickybobbyr   r   r   rW   r\   r   r   r   r   )g      @g      @g      @g       @r8   r   zr   r   Tzstring[pyarrow]r   )r-   importorskiprk   r   setr(   r>   r)   r3   rj   r	   r   r]   )r{   ro   r|   rp   	s_pyarrow
df_pyarrows         r:   &test_from_pandas_convert_string_configr     s`   
	*DE	4e<	= 0II6>RS\\!)5
 '
 ^^A1-nnRQ/0 ab# 
4d;	< 0^^A1-nnRQ/0 *+Ioo,,->?IOC!234J!''../@AJij#90 0&0 0s   A-F'/F'F$'F0r=   r   ry   TFc                    t        j                  dg di|      }|j                         }t        j                  |d|       }d|j
                  d<   t        ||       y )Nr   r=   r\   r   rx   d   )r   r   )r(   r)   copyr3   rj   ilocr	   )ry   r]   pdfexpectedro   s        r:   test_from_pandas_immutabler   2  sM     ,,Y'u
5CxxzH		6BCHHTNb(r~   c                     t        j                  d      } g d}| j                  t        d      |d      j	                  d      }t        j                  |d      }|j                  dk(  sJ y )	Ncudfr   rL   r   r]   r   r   r   )r-   r   r)   rD   r   r3   rj   r6   )r   r]   ro   rp   s       r:   +test_gpu_from_pandas_npartitions_duplicatesr   <  s\    v&D4E	eAh7	8	B	B7	KB
..
+C==0000r~   c                    t        j                  dd      } t        j                  t	        j                  d      g d      }t        j                  | g d      }t        ||       t        j                  | g d      }t        ||       y )NrC   r   r   r   chunksr   r   )	darV   r(   r)   r$   r3   from_dask_arrayr	   r4   )r8   r   ro   df2s       r:   test_DataFrame_from_dask_arrayr   F  sa    
'A
,,rwww'
AC			A	/Bb#
--?
3Cb#r~   c                     t        j                  dd      } | dz  } t        j                  t	        j                  d      dz  g d      }t        j                  | g d      }t        ||       y )Nr   r   r   r   r   r   )r   rV   r(   r)   r$   r3   r   r	   )r8   r   ro   s      r:   1test_DataFrame_from_dask_array_with_blockwise_opsr   P  sU    
'AFA
,,rwww'!+_
EC			A	/Bb#r~   c                    t        j                  dd      } t        j                  t	        j                  d      d      }t        j                  | d      }t        ||       t        j                  t	        j                  d            }t        j                  |       }t        ||       t        j                  |       }t        ||       y )NrC   r   r   r   r@   )	r   rV   r(   r>   r$   r3   r   r	   r4   )r8   pserserser2s       r:   test_Series_from_dask_arrayr   X  s    
1A99RWWR[s+D


Q
$Cc4 99RWWR[!D


Q
Cc4 ==Dc4r~   as_framec                   t        j                  t        j                  t	        d      t        d            d      }| r|j                         }t        j                  |j                  |j                        }t        ||       y )NrC   
abcdefghijr\   r   r   )r3   rj   r(   r>   rD   rU   to_framer   rS   r]   r	   )r   r{   results      r:   test_from_dask_array_indexr   i  sY    
ryyr$|2DESTUAJJL8Far~   c            	        t         j                  j                  dd      } t        j                  t
        d      5  t        j                  | t        j                  t        j                  d                   d d d        t        j                  t        j                  t        d            d	
      }t        j                  t        j                  t        d            d
      }t        j                  t
        d      5  t        j                  |j                  |j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NrC   rw   )r   r   zmust be an instancer   rC   r\      r   r   r   z".*index.*numbers of blocks.*4 != 2)r   r0   uniformr-   r.   r/   r3   r   r(   r+   r$   rP   rj   r>   rD   rS   r]   )r8   r   r   s      r:   !test_from_dask_array_index_raisesr   r  s    
		uT2A	z)>	? =
1BHHRYYr]$;<= 	ryyr+;A
ryyr+;A	z)M	N 4
18817734 4= =
4 4s   >D9,E9EEc                 p   t        j                  dd      } t        j                  d      }t        j                  t
        d      5  t        j                  |        d d d        t        j                  t
        d      5  t        j                  |       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)N)r   r   r   r   r   zmore than 2D arrayr   )	r   rV   r$   r-   r.   r/   r3   r   r4   r   s     r:   #test_from_array_raises_more_than_2Dr   }  s    
	!$A
	A	z)=	> 
1 
z)=	> 
a   s   B B, B),B5c                 
   t        j                  dd      } t        j                  d      }t        j                  |       }t        j                  |      }t        ||       t        j                  |      }t        ||       y )Nr   r   r   r   	r   rV   r$   r3   r   r(   r)   r	   r4   r8   r   d1p1d2s        r:   'test_from_dask_array_compat_numpy_arrayr     s_    
'A
A			A	B	aBb"	q	Bb"r~   c                 |   t        j                  dd      } t        j                  t        d      5  t        j                  | dg       d d d        t        j                  d      }t        j                  t        d      5  t        j                  |dg       d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nr   r   r   znames must match widthr   r   r   )	r   rV   r-   r.   r/   r3   r   r$   r4   r   s     r:   (test_from_array_wrong_column_shape_errorr     s    
'A	z)A	B -
1se,- 	A	z)A	B (
a#'( (	- -( (s   B&B2&B/2B;c                 "   t        j                  dd      } t        j                  d      }t        j                  | g d      }t        j                  |g d      }t        ||       t        j                  |g d      }t        ||       y )Nr   r   r   r   r   r   r   s        r:   !test_from_array_with_column_namesr     sf    
'A
A			A	7B	a	1Bb"	q/	2Bb"r~   c                 
   t        j                  dd      } t        j                  d      }t        j                  |       }t        j                  |      }t        ||       t        j                  |      }t        ||       y )NrC   r   r   )	r   rV   r$   r3   r   r(   r>   r	   r4   r   s        r:   *test_from_dask_array_compat_numpy_array_1dr     s^    
1A
A			A	B	1Bb"	q	Bb"r~   c                 2   t        j                  dd      } t        j                  d      }t        j                  | d      }t        j                  |d      }t        ||       t        j                  | j                         d      }t        ||       y )NrC   r   r   r@   r   r   )
r   rV   r$   r3   r   r(   r>   r	   r4   rR   r   s        r:   $test_from_array_1d_with_column_namesr     sk    
1A
A			Av	.B	16	"Bb"	qyy{F	3Bb"r~   c                    t        j                  dd      } t        j                  d      }t        j                  | dg      }t        j                  |dg      }t        ||       t        j                  |dg      }t        ||       y )NrC   r   r   r@   r   r   r   s        r:   2test_from_array_1d_list_of_columns_gives_dataframer     sk    
1A
A			Ax	0B	a&	*Bb"	q6(	+Bb"r~   c                    t        j                  ddgddg      } t        j                  | d      }t	        j
                  |      }t        j                  |j                  t        j                  dd	g             t        |t        j                  |              t        t	        j
                  |d	dg
      t        j                  | d	dg
             y )N)r   r   )r   r   rZ   )r   objectr   )r   r   r   r   r   )r$   r%   r   r4   r3   r   r   r*   r   r(   r+   r	   r)   )r8   r   ro   s      r:   !test_from_dask_array_struct_dtyper    s    
(H%k?-KLA
a%A			A	B"**bhhSz&:;b",,q/"
1sCj12<<CQT:3Vr~   c                    t        j                  t        j                  d      t        j                  dd      ddt        j                  t        j                  fft        j                  d      j
                        } t        j                  |       }t        |t        j                        sJ |j                  rJ t        |t        j                  t        j                  d            d       t        j                  j                  d      t        j                  j                  d	      d
}t        j                  |dt        j                  t        j                  fdft        j                        } t        j                  |       }t        |t        j                        sJ |j                  rJ t        |t        j                  | j!                               d       y )Nrw      ))r8   r   )r8   r   r8   r   F)check_indexr   r   rw   r   )r8   r   r   )r8   r   r   )r   )r   Arrayr$   rP   nanr   r3   r   r'   r>   r   r	   r(   r0   r,   r)   rR   )dxro   dsks      r:   #test_from_dask_array_unknown_chunksr    sG   	99Q<299Q+;<
&&"&&	
		!	
B 
		B	Bb"))$$$!!!!b"))BIIbM*> 		((0ryy?O?OPV?W
XC	#sbffbff-t4bjj	AB			B	Bb",,'''!!!!b",,rzz|,%@r~   zchunksizes, expected_divisions)r   r   r   r   )r   r   r   rw   rw   r   r   r   r   )r   r   r   r   rw   )r   r   r   r   )r   r   r   r   rw   c                    t        j                  t        j                  d      |       }t	        j
                  |      }|j                  |k(  sJ y )Nr#   r   )r   r4   r$   rP   r3   r   r6   )
chunksizesexpected_divisionsmonotonic_indexro   s       r:   !test_from_dask_array_empty_chunksr    s?     mmBIIaLDO			O	,B<<----r~   c                    t         j                  j                  d      t         j                  j                  d      d} t        j                  | dt         j                  t         j                  ft         j                  fft         j
                        }t        j                  t        d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr  r  r  r8   z Shape along axis 1 must be knownr   )r$   r0   r   r  r	  r,   r-   r.   r/   r3   r   )r  r
  s     r:   (test_from_dask_array_unknown_width_errorr    s    		((0ryy?O?OPV?W
XC	#sbffbff-y92::	FB	z)K	L 
2  s   0CCzarray_backend, df_backend)cupyr   )numpypandasc                .   t        j                  |       }t        j                  |      }t        j                  d| i      5  t	        j
                  d      }d d d        t        j                  |j                        sJ t        j                  |      }t        j                  |j                               }t        |j                  |j                        sJ t        |j                  |j                        sJ t        ||       y # 1 sw Y   xY w)Nzarray.backendrC   )r-   r   r   r   r   rV   r'   _metandarrayr3   r4   rR   r>   r	   )array_backend
df_backend	array_libdf_libdarrddf1ddf2s          r:   test_from_array_dispatchingr"    s     ##M2I  ,F	_m4	5 wwr{djj)"3"3444==D==(Ddjj&--000djj&--000dD s   DDc                 r   t        j                  g dg ddt        j                  g dd            } t        j                  | d      }|j                         j                         t        | j                  d	            k(  sJ |j                  d
      j                         t        | j                  d
            k(  sJ |j                  d      j                         ddddddddddddgk(  sJ |j                  d
d      j                         ddddddddddddddddgk(  sJ |j                  j                  d
      j                         t        | j                  j                               k(  sJ |j                  j                         j                         t        | j                        k(  sJ |j                  j                  d
d      j                         ddiddiddiddigk(  sJ |j                  j                  d      j                         ddiddiddiddigk(  sJ y )Nr   r   r   r   rw   r   r   r   r   r   indr   r\   r   FTrg   formatr   r   r   r   r   rW   rw   r   )r]   r8   r   r   r   r   r8   )r(   r)   r+   r3   rj   to_bagrR   rU   
itertuplesr8   items)r   rp   s     r:   test_to_bagr,    s,   
"6hh+%8	A ..A
C::<!T!,,u*=%>>>>::d##%all4.@)AAAA::V:$,,.	3    ::d6:*224Ca(Ca(Ca(Ca(	9    55<<%%'4		+<<<<55<<>!!#tACCy00055<<V<,446	c
	c
	c
	c
	;    55<<v<&..0	c
	c
	c
	c
	5   r~   c            	        ddl m}  ddlm} t	        j
                  t        j                  g dg ddt        j                  g dd	      
      d      }|j                  d      }t        ||      sJ t         | |j                   |j                  df      |j                  d          t         | |j                   |j                  df      |j                  d          y )Nr   )get)Bagr   r$  r   r%  r&  r   r\   r   r   framer'  r   )rk   r.  dask.bagr/  r3   rj   r(   r)   r+   r)  r'   r	   r@   
partitions)r.  r/  rp   bagdfs       r:   test_to_bag_framer4  =  s    
..
&\:((/e<	
 C JJgJ&EeS!!!c%**uzz1o.q0ABc%**uzz1o.q0ABr~   c                    t        j                  d       ddlm}  t	        j
                  g dg ddt	        j                  g dd	      
      }t        j                  |d      } | |j                         |j                         d       y )N
dask.arrayr   r	   r   r$  r   r%  r&  r   r\   r   F
check_type)
r-   r   dask.array.utilsr	   r(   r)   r+   r3   rj   r^   )r	   ro   rp   s      r:   test_to_recordsr;  R  sf    
%*	"6hh+%8
B ..Q
C
)er~   lengthsr   c                   t        j                  d       ddlm} t	        j
                  g dg ddt	        j                  g dd	      
      }t        j                  |d      }|j                  |       } ||j                         |d       t        |t        j                        sJ d}|j                  |k(  sJ y )Nr6  r   r7  r   r$  r   r%  r&  r   r\   r   r<  Fr8  ))r   r   )r-   r   r:  r	   r(   r)   r+   r3   rj   r^   r'   r   r  r   )r<  r	   ro   rp   r   expected_chunkss         r:   test_to_records_with_lengthsr@  a  s    
%*	"6hh+%8
B ..Q
C^^G^,Fbmmov%8fbhh'''O==O+++r~   c                    t        j                  d       t        j                  g dg ddt        j                  g dd            } t        j                  | d	      }t        j                  t              5  |j                  g d
       t        j                  d       d d d        t        j                  t              5  |j                  d       t        j                  d       d d d        y # 1 sw Y   SxY w# 1 sw Y   y xY w)Nr6  r   r$  r   r%  r&  r   r\   r   )r   r   r   r>  z3 != 2rw   zUnexpected value)r-   r   r(   r)   r+   r3   rj   r.   r/   r^   failr   s     r:   test_to_records_raisesrC  v  s    
%	"6hh+%8
B ..Q
C	z	" y)H 
z	" (q!&'( (	 ( (s   :*C6(D6C?Dc                 D   t        j                  t        j                  j	                  d      t        d            } | j                  d d | j                  dd | j                  dd | j                  dd g}t        d	      D cg c]  } t        |j                        |       }}|d
   j                         }d }d g dfD ]  }t        j                  |||      }t        ||        t        |j                  |      j                               g dk(  sJ |j                  |d uk(  sJ t        j                  |D cg c]  }|j                    c}|j                   |      }	t        |	| j                          t        |	j                  |      j                               g dk(  sJ |j                  |d uk(  rJ  | j"                  D 
cg c]  }
|
df }}
t        t        j                  ||      |        t        t        j                  |D cg c]  }|j                    c}d      | j                          t%        j&                  t(              5  t        j                  ||g d       d d d        t%        j&                  t(              5 }t        j                  ||j                         j                          d d d        t+        j,                        j/                  d      sJ y c c}w c c}w c c}
w c c}w # 1 sw Y   xY w# 1 sw Y   PxY w)Nr   r   abcd)datar   r   r   r#   rC   r   r   c                @    t        j                  t        |       g      S N)r(   r>   r5   r8   s    r:   <lambda>z#test_from_delayed.<locals>.<lambda>  s    ryy#a&* r~   )r   r   r   r#   rC   )metar6   r   f8rK  )r   rL  )r   r   r   r#   z)Metadata mismatch found in `from_delayed`)r(   r)   r$   r0   normalrU   r   rD   r   __getitem__rR   r3   from_delayedr	   r   r   r   r   r-   r.   r/   rm   rn   
startswith)ro   partsrE   dfsrK  my_lenr6   rp   rW   r{   r   meta2es                r:   test_from_delayedrW    s   	299+++94<	PBWWRa["''!A,!bggamDE27(
;Q%75$$%a(
;C
;q6>>D*F,- 	>	ooc	B#rC&&v.6689\III""y'<===OO#.QQSS.TVVyQ!RTTA$$V,4467<GGG""y'<===	> !#

+1aY+E+booc.3booC0qqss0{CRTTJ	z	" @
$,?@ 
z	" 4a
$&&)1134qww<""#NOOO3 < /
 ,0@ @4 4s0   "K6K;
L LL
0L
LLc                    ddl m}  t        d      D cg c]4  } t        t        j
                        t        j                  d            6 }}t        j                  |      }|j                         }|j                         D cg c]  }|d   	 }} | |j                  |      }|j                  |       |j                         }|j                  dk(  sJ y c c}w c c}w )Nr   )optimize_blockwiser   )r   r   )keys)rM   r   )dask.blockwiserY  rD   r   r(   r)   r$   rV   r3   rP  to_dask_array__dask_keys__rk   cullrR   rO   )	rY  rE   rS  rp   arrkrZ  r  r   s	            r:   test_from_delayed_to_dask_arrayra    s    
 2;@8
Da 72<< 1
DC
D
//#
C



C ++-.QAaD.D.
SXXD
1CHHTN[[]F<<6!!! E /s   9CC c                    t        j                  g dt        d      D  cg c]  } t        | dz  | dz  dz          c} t        d            t        j                  g dt        d      g      }t        j                   t        fd             g|      }t        j                  t              5 }|j                         j                  d	
       d d d        d}|t        j                        v sJ y c c} w # 1 sw Y   *xY w)N)(1)(2)dateentvalr   rw   )r   rF  r]   )re  rf  rg  rc  rd  )r   rF  c                      S rH   r   s   r:   rJ  z3test_from_delayed_misordered_meta.<locals>.<lambda>  s    2 r~   rM  sync)	schedulerzRThe columns in the computed data do not match the columns in the provided metadata)r(   r)   rD   r3   rP  r   r-   r.   r/   reset_indexrR   rm   rn   )rE   misordered_metarp   inforr   ro   s        @r:   !test_from_delayed_misordered_metaro    s    	4/4Qx8!eAE1q519%8Ah
B ll4E!H:O //.7:.01
HC	z	" 4d!!F!34	  #djj/!!!% 94 4s   C9
4!C>>Dc                    t        j                  g dg dd      } t        j                  | d      }|j	                         \  }}t        |t              sJ t        |t              sJ t        |j                         | j                  d d        |j                  j                         }|j	                         }t        |t              sJ t        |j                         |       y )Nr   )rC   r   rH   r   r   r   r   )r(   r)   r3   rj   
to_delayedr'   r   r	   rR   r   r8   sum)ro   rp   r   r   r8   r
  s         r:   test_to_delayedrs    s    	L/?@	AB
..
+C >>DAqa!!!a!!!aiik2772A;' 			A	
Bb'"""bjjlAr~   c                    t        j                  dt        t        d            i      } t	        j
                  | d      }|dz   j                  d d }|j                         d   }t        |j                        dk  sJ |j                  d      d   }t        |j                  d      |j                                t        |j                  d      |j                                |j                  j                         }|j                         }|j                  d      }t        |j                         |j                                y )	Nr8   r   r   r   r   r   F)optimize_graph)r(   r)   rU   rD   r3   rj   locrq  r5   rk   r	   get_partitionrR   r8   rr  )ro   rp   r!  rW   r   r8   r
  dx2s           r:   test_to_delayed_optimize_graphry    s    	sDrO,	-B
..
,C!G==!D 	!Aqvv;		.q	1Bd  #QYY[1d  #RZZ\2 	

A	
B
,,e,
,CbjjlCKKM*r~   c                    t        j                  dd      } t        j                  t        j                  ddd      t        t        d            d      }t        j                  |d	
      j                  d      }t        j                  | |j                  d      }|j                  j                  |j                  j                  k(  sJ |j                  j                  |j                  j                  k(  sJ t        j                  t        j                  ddd      t        t        d            d      }t        j                  |d	
      j                  d      }t        j                  | |j                  d      }|j                  j                  |j                  j                  k(  sJ |j                  j                  |j                  j                  k(  sJ y )Nr   r   r   z
2019-01-01rC   1min)re   freq)re  val1r   r   re  val2)r]   r   r   r   g?)idxr}  r  )r   rV   r(   r)   ri   rU   rD   r3   rj   r   r   r]   r   r@   r$   rP   )r8   ro   rp   r!  s       r:    test_from_dask_array_index_dtyper    sL   
d#A	MM,HrO	

B ..
+
5
5f
=Casyy&AD99??djj.....99>>TZZ__,,,	bii1c2DrOL	MB
..
+
5
5e
<Casyy&AD99??djj.....99>>TZZ__,,,r~   valsr   r   )r   r   i  rC   r   i  r      c                    dd}| d   df| d   dfg}t        j                  ||d      }t        j                  | d   | d   | d   | d   gg d      }|j                  t        |      k(  sJ t        ||       y )	Nr   c                J    | \  }}t        j                  |g|z  |g|z        S )Nr\   r(   r>   )inputr   rn   r]   s       r:   funcz"test_from_map_simple.<locals>.func  s*     uyy%4w~>>r~   r   r   r   )r   r   r   r   r\   r   )r3   from_mapr(   r>   rf   r5   r	   )r  r  iterabler   expects        r:   test_from_map_simpler    s    ? a!tAwl+H
++dH1
-CYY	a$q'47DG,F ??c(m+++c6r~   c                    d } t        j                  dd      t        j                  dd      gt        j                  ddgd      t        j                  ddgd      gf}t        j                  g dd      }t        j                  dt        j                  g dd      i|      }t        j                  | g| }t        ||       y )	Nc                6    t        j                  d| |z   i      S Naddr(   r)   r   s     r:   rJ  z%test_from_map_multi.<locals>.<lambda>4  s    eQU^4 r~   r   r&   r   r   r   r   r   r  )r   r   r   r   r\   r$   rP   r%   r(   r)   r3   r  r	   )r  	iterablesr]   r  rp   s        r:   test_from_map_multir  1  s     5D	1G	$bii&AB	1a&	("((Aq6*IJI HH\1E\\5"((<w"GHPUVF
++d
'Y
'Cc6r~   c                 D   d } t        j                  dd      t        j                  dd      g}t        j                  g dd      }t        j                  dt        j                  g dd      i|      }t        j                  | |dd	g
      }t        ||       y )Nc                <    t        j                  d| |z   |z   i      S r  r  r   s      r:   rJ  z$test_from_map_args.<locals>.<lambda>C  s    2<<A	(:; r~   r   r&   r   r  r  )rw   r#   rw   r#   r\   r   )argsr  )r  r  r]   r  rp   s        r:   test_from_map_argsr  @  sz     <D		!7+RYYq-HIHHH\1E\\5"((<w"GHPUVF
++dHAq6
2Cc6r~   c                     d } ddg}d}t        j                  | ||      }t        j                  g dg d      }|j                  |k(  sJ t        ||       y )	Nc                d    t        j                  | d   gdz  t        | d   | d   dz               S )Nr   r   r   r\   )r(   r>   rD   rI  s    r:   rJ  z)test_from_map_divisions.<locals>.<lambda>O  s.    RYY!vzqtQqTAX1FG r~   )r   r   )r   r   r   r   r   )r6   )r   r   r   r   r  r\   )r3   r  r(   r>   r6   r	   )r  r  r6   r   r  s        r:   test_from_map_divisionsr  L  s]     HD(#HI
++dH	
:CYYF
 ==I%%%c6r~   c                    t               } dd}ddg}t        j                  dg dig d      }t        j                  dt        j                  dg| 	      i      j                  d d }t        j                  |||d
      }t        |j                  |       t        ||       t        j                  dt        j                  dg| 	      i      j                  d d }t        j                  |||d
      }t        |j                  |       t        j                  |||dd
      }t        |j                  |       t        |j                         |       y )Nr   c                <    t        j                  d| g|z  i      }|S )Nr8   r  )r8   r{   ro   s      r:   r  z test_from_map_meta.<locals>.funca  s    \\3a.)	r~   r   r   r8   )r   r   r   r   r  r\   r   r   )rK  r{   r   F)rK  enforce_metadatar{   r  )
r
   r(   r)   r>   r   r3   r  r	   r  rR   )string_dtyper  r  r  rK  rp   s         r:   test_from_map_metar  \  s    $%L SzH\\3 45\JF <<bii\BCDII"1MD
++dH41
5Cciic6 <<bii\BCDII"1MD
++dH41
5Ccii ++dH4%1
MCciickkmV$r~   c               #  :   K   t        g d      E d {    y 7 w)Nr   r   r   )	enumerateri  r~   r:   
_generatorr  {  s     )))s   r  r  ))r   r   )r   r   )r   r   c                    d }t        j                  ||       }t        j                  g dg d      }t	        |j                         |       y )Nc                N    | d   dz   }| d   }t        j                  |g|z        S )Nr   r   r  )tr   r8   s      r:   r  z+test_from_map_other_iterables.<locals>.func  s-    taxaDyy!t$$r~   )r   r   r   r   r   r   r   r   r   r   r   r   r\   )r3   r  r(   r>   r	   rR   )r  r  rp   r  s       r:   test_from_map_other_iterablesr    s?    %
 ++dH
%CYY& F ckkmV$r~   c                  2    e Zd ZU g Zded<   ddZd ZddZy)MyFuncz	list[str]	projectedNc                    || _         y rH  r   selfr   s     r:   __init__zMyFunc.__init__  s	    r~   c                    t        |      S rH  )r  r  s     r:   project_columnszMyFunc.project_columns  s    gr~   c                    | j                   xs |}|d   dz   }|d   }t        j                  |g|z  dg|z  d      }||S t        j                  j                  |       ||   S )Nr   r   rC   r  )r   r(   r)   r  r  extend)r  r  r   colsr   r8   ro   s          r:   __call__zMyFunc.__call__  sl    ||&wtaxaD\\d
"=><I%$xr~   rH  )__name__
__module____qualname__r  __annotations__r  r  r  ri  r~   r:   r  r    s    Iyr~   r  c                    t        j                  t               t        g d      dd      } t	        j
                  g ddgdz  dg d	
      }t        | d   |d          t        t        j                        dhk(  sJ t        | |       y )NrJ   myfuncT)labelr  )r   r   r   r   r   r   rC   r#   r  r  r\   r   )	r3   r  r  r  r(   r)   r	   r   r  )rp   r  s     r:   test_from_map_column_projectionr    s    
 ++)	C \\#	
 !F c#hs$v SE)))c6r~   backendr  r   c                >   t        j                  |       }t        j                  d| i      5  g dg dd}|j	                  |      }t        j                  |d      }t        ||       |j                  |d      }t        ||       d d d        y # 1 sw Y   y xY w)Nzdataframe.backendr   )rC   r  r      )r   r   r   r   )r-   r   r   r   r)   r3   	from_dictr	   )r  _librF  r   gotgot_classmethods         r:   test_from_dict_backendsr    s     w'D	('2	3 
-!(89>>$' ll4Q/(C  --!-<(O,
- 
- 
-s   ABB)marksc                    t        j                  |       }|j                  g d      }t        |d      \  }}|g dk(  sJ |g dk(  sJ y )N)r   r   r   r   r   r   rJ   r  )r-   r   r>   r   )r  r  seqr6   	locationss        r:   )test_sorted_division_locations_duplicatesr    sO     w'D
++l
#C4SaHIy	!!!	!!!r~   )\
__future__r   r   r  r$   r  r(   r-   rk   
dask.arrayr%   r   dask.dataframe	dataframer3   r   dask.dataframe._compatr   dask.dataframe.io.ior   r   dask.dataframe.utilsr	   r
   dask.delayedr   r   r;   rA   rF   rX   r_   rt   r}   markparametrizer   r   r   r   r   NaTNAr   r   r   r   r   r   gpur   r   r   r   r   r   r   r   r   r   r   r   r   r  r  paramr  r  r"  r,  r4  r;  r@  rC  rW  ra  ro  rs  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  ri  r~   r:   <module>r     s   "         % L < )!00,5(3$<00 l+> ,>, 0 bffbee'<=6 >6,  00011D 9i"89$/ 0 : 1 1" dE]3 44(		A, $\?3\?3\?3.. *+	 
"#LC* aVTN3, 4,(("P>"0"0"+&-2 
	$A	r2 67,	 %>*
 /"&%%$ (. Xv$67- 8 - ,&,,vV[[__EF""r~   