
    >ie`j                    >   d dl mZ d dlZd dlZd dlmZ d dlZd dlZ	d dl
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 d d
lmZmZmZ e
j        j         Z!d Z"e
j        #                    e ed          k    d          d             Z$d Z%d Z&d Z'd Z(e
j        #                    e ed          k    d          e
j        j)        d                         Z*d Z+e
j        #                    e ed          k    d          e
j        ,                    dg d          e
j        ,                    dg d          d                                     Z-d Z.d Z/e
j        ,                    d e	j0        g dg dd g d!"          ej1        f e	j2        g dd#$          ej3        fg          d%             Z4d& Z5e
j        #                    e ed          k    d          d'             Z6d( Z7d) Z8d* Z9d+ Z:d, Z;d- Z<d. Z=d/ Z>d0 Z?d1 Z@dS )2    )annotationsN)sleep)Version)
PY_VERSION)tm)optimize_dataframe_getitem)	assert_eq)DataFrameIOLayer)dependency_depthtmpdirtmpfilec                 z   t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          d          5 }|                    |d	           t          j        |d	          }t          j
        | |d d                     d d d            n# 1 swxY w Y   t          d          5 }|j                            |d	           t          j        |d	          }t          j        | j        |d d                     d d d            n# 1 swxY w Y   t	          j        | d
          }t          d          5 }|                    |d	           t          j        |d	          }t          j
        | |d d                     d d d            n# 1 swxY w Y   t          d          5 }|                    |d	d          }|                                 t          j        |d	          }t          j
        | |d d                     d d d            d S # 1 swxY w Y   d S )Ntablesabcd            xy      ?       @      @      @indexr   h5/datar   Fcompute)pytestimportorskippd	DataFrameddfrom_pandasr   to_hdfread_hdfr   assert_frame_equalr   assert_series_equalr'   )dfr   fnoutrs        @lib/python3.11/site-packages/dask/dataframe/io/tests/test_hdf.pytest_to_hdfr7      s   
!!!	"""66>R>R>R
 
 
B 	r1A	 *"	Wk"g&&
b#aaa&)))* * * * * * * * * * * * * * *
 
 -"	

2wk"g&&
rtSV,,,- - - - - - - - - - - - - - -
 	r1A	 *"	Wk"g&&
b#aaa&)))* * * * * * * * * * * * * * * 
 *"HHR%H00			k"g&&
b#aaa&)))	* * * * * * * * * * * * * * * * * *sL   A	B--B14B1AD&&D*-D*A	F**F.1F.AH00H47H4z3.11z@segfaults due to https://github.com/PyTables/PyTables/issues/977)reasonc                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          j        g dg d	dg d
          }t	          j        |d          }t          d          5 }|                    |d           t	          j        |d          }t          | |           d d d            n# 1 swxY w Y   t          d          5 }|                    |d           t	          j        |d          }t          ||           d d d            n# 1 swxY w Y   t          d          5 }|                    |dd            t	          j        |d          }t          | |           t          j        |d          }t          j        || j        d d                    t          j        |d          }t          j        || j        dd                     d d d            n# 1 swxY w Y   t          d          5 }t          j        |          5 }|                    |d           d d d            n# 1 swxY w Y   t	          j        |d          }t          ||           d d d            n# 1 swxY w Y   t          d          5 }|                    |d           t	          j        |d          dg         }t          |j        |                                          }d |j        D             d         }|j        |         }	t%          |	t&                    sJ |	j        dgk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   r   r   r   r   efghijklmnopr   r   r   r               	   
                     r   r   r    r!   g      @g      @g      @g       @g      "@g      $@g      &@g      (@g      *@g      ,@g      .@g      0@rS   r$   /data*/data_*c                    d| dz   z  S Nr   r    r?   s    r6   <lambda>z,test_to_hdf_multiple_nodes.<locals>.<lambda>|   s    q1u     name_functionz/data_az/data_aar   )keysc                <    g | ]}|                     d           |S )zread-hdf)
startswith).0keys     r6   
<listcomp>z.test_to_hdf_multiple_nodes.<locals>.<listcomp>   s)    HHHS^^J-G-GHHHHr\   r   )r(   r)   r*   r+   r,   r-   r   r.   r/   r	   r   r0   ilocHDFStorer   dask__dask_keys__layers
isinstancer
   columns)
r2   r   df16r   r3   r4   hdfdskreadsubgraphs
             r6   test_to_hdf_multiple_nodesrq   9   s   
 !!!	"""66>R>R>R
 
 
B 	r1A<  $ IHH'	
 	
*
 
 
-( ( (DR 	tR  A 
 "	Xk"h''"c               
 "	Xk"h''$               
 0"	Y.E.EFFFk"i(("ck"i((
c272A2;///k"j))
c27122;///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 "[__ 	$HHS(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$k"h''$	               
 )"	Xk"h''.(8I8I8K8KLLLHHszHHHK:d#($455555C5((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   <CCC.<D66D:=D:B-H		HH#J8IJI	J"I	#(JJJ1B$M##M'*M'c                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          j        g dg d	dg d
          }t	          j        |d          }t                      5 }t          j        	                    |d          }|
                    |d           t	          j        |d          }t          | |           d d d            n# 1 swxY w Y   t                      5 }t          j        	                    |d          }|
                    |d           t	          j        |d          }t          ||           d d d            n# 1 swxY w Y   t                      5 }t          j        	                    |d          }t          j        	                    |d          }|
                    |d           |
                    |d           t	          j        ||gd          }t          t          j        || g          |           d d d            n# 1 swxY w Y   t                      5 }t          j        	                    |d          }|
                    |dd            t	          j        |d          }t          | |           t          j        t          j        	                    |d          d          }t          j        || j        d d                    t          j        t          j        	                    |d          d          }t          j        || j        dd                     d d d            n# 1 swxY w Y   t#          d          5 }t          j        |          5 }	|
                    |	d           d d d            n# 1 swxY w Y   t	          j        |d          }t          | |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   r:   rG   rT   rS   	data_*.h5r%   z	data_1.h5z	data_2.h5c                    d| dz   z  S rX   rY   rZ   s    r6   r[   z,test_to_hdf_multiple_files.<locals>.<lambda>   s    cQUm r\   r]   z	data_a.h5z
data_aa.h5r$   rU   )r(   r)   r*   r+   r,   r-   r   ospathjoinr.   r/   r	   concatr   r0   re   r   rf   )
r2   r   rl   r   dnr3   r4   fn1fn2rm   s
             r6   test_to_hdf_multiple_filesr|      s   
!!!	"""66>R>R>R
 
 
B 	r1A<  $ IHH'	
 	
*
 
 
-( ( (DR 	tR  A 
 RW\\"k**	Wk"g&&"c	               
 RW\\"k**	Wk"g&&$	               
 .Rgll2{++gll2{++	g	gk3*g..")T2J''---. . . . . . . . . . . . . . . 
 	0RW\\"k**	W,C,CDDDk"g&&"ck"',,r;77AA
c272A2;///k"',,r<88'BB
c27122;///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 
 "[__ 	$HHS(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$k"h''"c	                 s   AC33C7:C7AE44E8;E8B(IIID	M//M36M3	O>O5O>O	O>O		(O>>PPc                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          d          5 }|                    |d	           |                    |d
d           t	          j        |d
          }t          t	          j
        | | g          |           d d d            n# 1 swxY w Y   t	          j        | d          }t          d          5 }|                    |d	           |                    |d
d           t	          j        |d
          }t          | |           d d d            n# 1 swxY w Y   t	          j        | d          }t          d          5 }|                    |d	           |                    |d
d           t	          j        |d
          }t          t	          j
        | | g          |           d d d            n# 1 swxY w Y   t	          j        | d          }t          d          5 }|                    |d	           |                    |d
d           t	          j        |d
          }t          | |           d d d            n# 1 swxY w Y   t	          j        | d          }t          d          5 }|                    |d           |                    |d	           |                    |d
dd           t	          j        |d
          }t          t	          j
        | | g          |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   r$   z/data2rU   r   modewr   z/data1Fr   append)r(   r)   r*   r+   r,   r-   r   r.   r/   r	   rx   )r2   r   r3   r4   s       r6    test_to_hdf_modes_multiple_nodesr      sL   
!!!	"""66>R>R>R
 
 
B
 	r1A	 ,"	X	XC(((k"h''")RH%%s+++	, , , , , , , , , , , , , , , 	r1A	 "	X	XC(((k"h''"c	               	r1A	 ,"	X	XC(((k"h''")RH%%s+++	, , , , , , , , , , , , , , , 	r1A	 "	X	XC(((k"h''"c	               	r1A	 ,"	X	X	XC666k"h''")RH%%s+++, , , , , , , , , , , , , , , , , ,s_   A(CCC;AEE"E
A(G>>HH-AJJJ<A?MMMc                 H   t          j        d           t          j        g dg ddg d          } t	          j        | d          }t                      5 }t          j        	                    |d          }|
                    t          j        	                    |d	          d
           |
                    |d
d           t	          j        |d          }t          t	          j        | | g          |           d d d            n# 1 swxY w Y   t	          j        | d          }t                      5 }t          j        	                    |d          }|
                    t          j        	                    |d	          d
           |
                    |d
d           t	          j        |d
          }t          t	          j        | | g          |           d d d            n# 1 swxY w Y   t	          j        | d          }t                      5 }t          j        	                    |d          }|
                    t          j        	                    |d          d
           |
                    |d
d           t	          j        |d
          }t          | |           d d d            n# 1 swxY w Y   t	          j        | d          }t                      5 }t          j        	                    |d          }|
                    t          j        	                    |d          d
           |
                    |d
dd           t	          j        |d
          }t          t	          j        | | g          |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   data*data2r%   r   r~   rU   r   data1r   Fr   )r(   r)   r*   r+   r,   r-   r   ru   rv   rw   r.   r/   r	   rx   )r2   r   ry   r3   r4   s        r6    test_to_hdf_modes_multiple_filesr   $  s   
!!!	"""66>R>R>R
 
 
B
 	r1A	 ,RW\\"g&&	b'**G444	W3'''k"h''")RH%%s+++, , , , , , , , , , , , , , , 	r1A	 ,RW\\"g&&	b'**G444	W3'''k"g&&")RH%%s+++, , , , , , , , , , , , , , , 	r1A	 RW\\"g&&	b'**G444	W3'''k"g&&"c               	r1A	 ,RW\\"g&&	b'**G444	W3u555k"g&&")RH%%s+++, , , , , , , , , , , , , , , , , ,sL   B&D		DD7B&G))G-0G-BJ55J9<J9#B'NNNc                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t                      5 }t          j        	                    |d          }|
                    |d	d
          }t          |j                  dk    sJ 	 ddd           n# 1 swxY w Y   t                      5 }|
                    |dd
          }t          |j                  dk    sJ 	 ddd           n# 1 swxY w Y   t                      5 }|
                    |d	d
          }t          |j                  d|j        z   k    sJ 	 ddd           dS # 1 swxY w Y   dS )zNtesting dask link levels is correct by calculating the depth of the dask graphr   r:   rG   r   rT   r"   rS   r   r%   Fr&   r   NrU   r   r   )r(   r)   r*   r+   r,   r-   r   ru   rv   rw   r.   r   rg   r   npartitions)rl   r   ry   r3   r   s        r6   test_to_hdf_link_optimizationsr   O  sU   
!!!<  $ IHH'	
 	
*
 
 
-( ( (DR 	tR  A 
 -RW\\"g&&HHR%H00''1,,,,,- - - - - - - - - - - - - - - 
 -bHHR5H11''1,,,,,- - - - - - - - - - - - - - - 
 =bHHR%H00''1q}+<<<<<<= = = = = = = = = = = = = = = = = =s7   AB77B;>B;3DDD);E22E69E6c                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }d }t                      5 }|                    |d	|
          }|                    |d           t	          j	        |d          }t          | |           d d d            n# 1 swxY w Y   t                      5 }t          j                            |d          }|                    |d	|
          }|                    |d           t	          j	        |d          }t          | |           d d d            d S # 1 swxY w Y   d S )Nr   r:   rG   r   rT   r"   rS   c                h    | j         d         dk     r t          dd| j         d         z
  z             | S )Nr   rM   g?)re   r   rZ   s    r6   delayed_nopz,test_to_hdf_lock_delays.<locals>.delayed_nop  s3    6!9r>>#afQi()))r\   r   )axismetarU   r   r%   )r(   r)   r*   r+   r,   r-   r   applyr.   r/   r	   r   ru   rv   rw   )rl   r   r   r3   r4   ry   s         r6   test_to_hdf_lock_delaysr     s    !!!<  $ IHH'	
 	
*
 
 
-( ( (DR 	tR  A   
 bGGKaaG00	Xk"h''$	               
 RW\\"g&&GGKaaG00	Wk"g&&$                 s&   AB::B>B>A4EEEc                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t                      5 }t          j        t                    5  t          j
                            |d          }|                    |d	           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t                      5 }t          j        |          5 }t          j        t                    5  |                    |d
           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   rs   rV   z	/data_*_*)r(   r)   r*   r+   r,   r-   r   raises
ValueErrorru   rv   rw   r.   r   rf   )r2   r   ry   r3   rm   s        r6   test_to_hdf_exceptionsr     s   
!!!	"""66>R>R>R
 
 
B 	r1A 
 $R]:&& 	$ 	$b+..BHHR###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
 +b[__ 	+z** + +k***+ + + + + + + + + + + + + + +	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	++ + + + + + + + + + + + + + + + + +s   C17B4(C4B8	8C;B8	<CCC$E%9ED6*E6D::E=D:>EE%E	E%E	E%%E),E)	scheduler)syncthreads	processesr   )r   r   rM   c                0   t          j        d           t          j        g dg ddg d          }t	          j        ||          }t          d          5 }|                    |d	| 
           t          j        |d	          }t          ||           d d d            n# 1 swxY w Y   t                      5 }t          j                            |d          }|                    |d	| 
           t	          j        |d	          }t          ||           d d d            n# 1 swxY w Y   t          d          5 }|                    |d| 
           t	          j        |d          }t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r:   rG   r   rT   r"   r   r$   r%   r   rs   rU   )r(   r)   r*   r+   r,   r-   r   r.   r/   r	   r   ru   rv   rw   )r   r   r2   r   r3   r4   ry   s          r6   test_to_hdf_schedulersr     sc    !!!	  $ IHH'	
 	
*
 
 
-(
 (
 (
BR 	r{333A 
 "	W	222k"g&&"c               
 RW\\"k**	W	222k"g&&"c	               
 "	X333k"h''"c                 s7   >B##B'*B'<AD&&D*-D* >FFFc                 4   t          j        d           t          j        dddgi          } t	          j        | d          }t          d          5 }|                    |dd	d
           t          j        |d          }t          j
        | |           d d d            n# 1 swxY w Y   t          d          5 }|                    |ddd
           t          j        |d          }t          j
        | |           d d d            d S # 1 swxY w Y   d S )Nr   Ar   aaaar   r   r$   foo4tabler   )formatmin_itemsizet)r(   r)   r*   r+   r,   r-   r   r.   r/   r   r0   )r2   ddfr3   df2s       r6   test_to_hdf_kwargsr   8  s   
!!!	sS&M*	+	+B
.
+
+
+C	 '"

2vgA
>>>k"f%%
b#&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
 '"

2vc
:::k"f%%
b#&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's&   AB""B&)B&<ADDDc                 J   t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          d          5 }t          j        t          d	
          5  |	                    |dt                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t                      5 }t          j                            |d          }|                    |t                     d d d            d S # 1 swxY w Y   d S )Nr   r:   rG   r   rT   r"   rS   r$   z2To preserve order between partitions name_functionmatchrU   r]   z
data_*.csv)r(   r)   r*   r+   r,   r-   r   warnsUserWarningr.   strr   ru   rv   rw   to_csv)rl   r   r3   ry   s       r6   test_to_fmt_warnsr   H  s   
!!!<  $ IHH'	
 	
*
 
 
-( ( (DR 	tR  A 
 6"\S
 
 
 	6 	6 HHRH555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 
 (RW\\"l++	3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sH   B54BB5B"	"B5%B"	&B55B9<B9=DDDzdata, comparer   r   r   r   r"   r   )namec                   t          j        d           t          d          5 }|                     |d           	 t	          j        |ddd           J # t          $ r}d	t          |          v sJ Y d }~nd }~ww xY w	 d d d            n# 1 swxY w Y   t          d          5 }|                     |dd
           t	          j        |ddd          }|j        dk    sJ  ||	                                |             |t	          j        |ddddd          	                                t          j        |ddd                     t          t	          j        |dd          j                  t          t	          j        |dd          j                  k    sJ 	 d d d            n# 1 swxY w Y   t          d          5 }|                                 }|                    |dd
           t	          j        |dddd          }|j        dk    sJ  ||	                                |           d d d            d S # 1 swxY w Y   d S )Nr   r$   r%   datar   r5   	chunksizer   Fzformat='table'r   r   r   r   )r   startstopr   r   r   r~   T)r   sorted_indexr   )r(   r)   r   r.   r,   r/   	TypeErrorr   r   r'   r*   sortedrg   
sort_index)r   comparer3   r;   r   sorted_datas         r6   test_read_hdfr     s>    !!!	 ."B   	.KFac::::L 	. 	. 	.#s1vv---------	.-. . . . . . . . . . . . . . . 
 
"B000KGqs;;;}!!!!		T"""KGqLLLTTVVKG11555	
 	
 	

 bk"gC888=>>&KG#...3C
 C
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 *"oo''2ww777KGqt#NNN}!!!!		[)))* * * * * * * * * * * * * * * * * *sZ   BA
A= A83B8A==BBB'C>F22F69F6A1I

IIc                 x   t          j        d           t          j        g dg ddg d          } t	          d          5 }|                     |dd	
           t          j        |d          5  t          j        |ddd           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zXTest that we can read from a file that's already opened elsewhere in
    read-only mode.r   r   r   r   r   r"   r$   r%   r   r   r5   r~   r   r   N)	r(   r)   r*   r+   r   r.   rf   r,   r/   r2   r3   s     r6   test_read_hdf_multiply_openr     sS    !!!	"""66>R>R>R
 
 
B 
 <"
		"gg	...[#&&& 	< 	<KGqs;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<< < < < < < < < < < < < < < < < < <s6   /B/2BB/B	B/B	B//B36B3c                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          d          5 }|                    |d	           t	          j        |d	d
          }|j	        |j	        k    sJ |j
        |j
        k    sJ t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r:   rG   r   rT   r"   rS   r$   rU   T)r   )r(   r)   r*   r+   r,   r-   r   r.   r/   r   	divisionsr	   )r2   r   r3   r5   s       r6   test_read_hdf_multipler     sA   
 !!!	  $ IHH'	
 	
*
 
 
-(
 (
 (
BR 	r2A	 "	XKH4888}----{ak))))!Q                 s   A"CCCc                    t          j        d           t          j        g dg ddg d          } t	          d          5 }|                     |dd	
           t          j        t          d          5  t          j	        |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j	        |dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j	        |dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r$   r%   r   r   znumber of rowsr   rM   )r   zis above or equal to)r   zpositive integerr   )
r(   r)   r*   r+   r   r.   r   r   r,   r/   r   s     r6   test_read_hdf_start_stop_valuesr     sX   
!!!	"""66>R>R>R
 
 
B 
 
3"
		"gg	...]:-=>>> 	. 	.KG"----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]:-CDDD 	/ 	/KG2....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ ]:-?@@@ 	3 	3KGr2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3s~   4E7BEB	E"B	#EC%E%C)	)E,C)	-ED/#E/D3	3E6D3	7EEEc            	     b   t          j        d           t          j        g dg ddg d          } t	                      5 }|                     t          j                            |d          dd	
           |                     t          j                            |d          dd	
           |                     t          j                            |d          dd	
           t          j
                            d          5  t          j        t          j                            |d          dd          }|j        dk    sJ t          j        |                                |            t          j        t          j                            |d          dddd          }t          j        t          j                            |d          ddd          }t          j        |                                |           t          j        t          j                            |d          dd          }|j        dk    sJ t          j        |                                t          j        | gdz                       t          j        t          j                            |d          dd          }|j        dk    sJ t          j        |                                t          j        | gdz                       t          j        t          j                            |d          dd          }|j        dk    sJ t          j        |                                t          j        | gdz                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   one.h5z	/foo/datar   r   two.h5z	/bar/datar   r   z/*/datar   r   r   r   )r   r   r   r   r   z*.h5rI   )r(   r)   r*   r+   r   r.   ru   rv   rw   rg   configsetr,   r/   r   r   r0   r'   rx   )r2   tdirresexpecteds       r6   test_hdf_globbingr   	  s   
!!!	"""66>R>R>R
 
 
B 
 FT
		"',,tX..G	LLL
		"',,tX..G	LLL
		"',,tX..G	LLL[__v_.. 	F 	F+bgll4::IQRSSSC?a''''!#++--444+T8,,i1ATU  C {T8,,k  H !#++--:::+bgll4::IQRSSSC?e++++!#++--B4!81D1DEEE+bgll488+QRSSSC?e++++!#++--B4!81D1DEEE+bgll488)qQQQC?i////!#++--B4!81D1DEEE/	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	FF F F F F F F F F F F F F F F F F Fs8   CN$I;N N$N	N$N	N$$N(+N(c                 .   t          j        d           t          j        g dg ddg d          } t	                      5 }| j        d d                             t          j        	                    |d          d	d
           | j        dd                              t          j        	                    |d          d	d
           t          j                            d          5  t          j        	                    |d          t          j        	                    |d          g}t          j        |d	          }t          j        |                                |            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   r   	dataframer   r   r   r   r   )r(   r)   r*   r+   r   re   r.   ru   rv   rw   rg   r   r   r,   r/   r   r0   r'   )r2   r   input_filesr   s       r6   test_hdf_file_listr   .  s   
!!!	"""66>R>R>R
 
 
B 
 5T
27<<h77WUUU
27<<h77WUUU[__v_.. 	5 	57<<h77dH9U9UVK+k;77C!#++--444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5	5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s8   B'F
)A=E2&F
2E6	6F
9E6	:F

FFc                 ^   t          j        d           t          j        g dg ddg d          } t	          d          5 }t          j        |          }|                     |dd	
           t          j	        |d          }t          ||            d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r$   r   r   r   )r(   r)   r*   r+   r   pathlibPathr.   r,   r/   r	   )r2   r3   rv   r   s       r6   test_read_hdf_pattern_pathliker   >  s    
!!!	"""66>R>R>R
 
 
B 
 "|B
		$G	444k$,,#r	                 s   AB""B&)B&c                    t          j        d           t          j        g dg ddg d          } t	          j        | d          }t          d	          5 }t          j        |          }|	                    |d
           t          j
        |d
          }t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r"   r   r   r$   r%   )r(   r)   r*   r+   r,   r-   r   r   r   r.   r/   r	   )r2   r   r3   rv   r   s        r6   test_to_hdf_path_pathliker   K  s   
!!!	"""66>R>R>R
 
 
B .
+
+
+C	 "|B

4!!!k$((#s	                 s   AB66B:=B:c                    t          j        d           t          d          5 } d}t          j        t
          j                            |d                    }t          j        | d          5 }|	                    d|           d d d            n# 1 swxY w Y   t          j        | dd	          }t          |          |k    sJ 	 d d d            d S # 1 swxY w Y   d S )
Nr   r$   (   r   r   r~   z/xr   r   )r(   r)   r   r*   r+   nprandomrandnrf   r   r,   r/   len)r3   Nr2   storer   s        r6   test_read_hdf_doesnt_segfaultr   Y  sL   
!!!	 "\")//!Q//00[#&&& 	#%LLr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# k"da0003xx1}}}}}                 s6   AC/BCB	CB	/CCCc                 $   t          j        d           t          j        g dg ddg d          } t	          j        | d          }|                    d	d
          ddgk    sJ t          j        d           t          j        d           d S )Nr   r   r   r   r   r"   r   r   z	foo*.hdf5rc   z	foo0.hdf5z	foo1.hdf5)	r(   r)   r*   r+   r,   r-   r.   ru   remove)r2   r   s     r6   test_hdf_filenamesr   e  s    
!!!	"""66>R>R>R
 
 
B .
+
+
+C::k5))k;-GGGGGIkIkr\   c                    t          j        t                    5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        ddgd           d d d            n# 1 swxY w Y   t          j        t
                    5  t          j        g d           d d d            d S # 1 swxY w Y   d S )Nnonexistant_store_X34HJKz/tmpnonexistant_store_UY56YH)r(   r   IOErrorr,   r/   r   rY   r\   r6   test_hdf_path_exceptionsr   p  s   	w		 8 8
.7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
w		 V V
/1KLfUUUV V V V V V V V V V V V V V V 
z	"	"    
B                                   s3   <A A  BBB(CCCc                   	 t          j        d          	dd l	 G 	fdd	j                  }  G 	fdd	j                  } G 	fdd	j                  }t	          d	          5 }	                    |d
          5 }|                    dd          }|                    |d| d          }|j        }d|d<   |	                                 |                    |d|d          }|j        }d|d<   |	                                 |                    |d|d          }|j        }d|d<   |	                                 d d d            n# 1 swxY w Y   t          j        t          j                            dd                    }|                    |ddd
           t!          j        |d           t!          j        |d           t!          j        |d           t!          j        |d           d d d            d S # 1 swxY w Y   d S ) Nr   r   c                  8    e Zd Z                                 ZdS )'test_hdf_nonpandas_keys.<locals>.Table1N)__name__
__module____qualname__
Float32Colvalue1r   s   r6   Table1r              ""$$r\   r   c                  8    e Zd Z                                 ZdS )'test_hdf_nonpandas_keys.<locals>.Table2N)r   r   r   r   value2r   s   r6   Table2r     r   r\   r   c                  8    e Zd Z                                 ZdS )'test_hdf_nonpandas_keys.<locals>.Table3N)r   r   r   r   value3r   s   r6   Table3r     r   r\   r  r$   r   r~   /grouptable1zTable 1r   r   table2zTable 2r   table3zTable 3r  rM   r   z/barr   )r   r   z/group/table1z/group/table2z/group/table3)r(   r)   r   IsDescriptionr   	open_filecreate_groupcreate_tablerowr   r*   r+   r   r   r   r.   r,   r/   )
r   r   r  rv   h5filer  r   r  barr   s
            @r6   test_hdf_nonpandas_keysr  ~  s     **FMMM% % % % % % %% % % %% % % % % % %% % % %% % % % % % %% % % % 
 "$d-- 	''W55E##E8VYGGA%CCMJJLLL##E8VYGGA%CCMJJLLL##E8VYGGA%CCMJJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  l29??2q1122

4c
:::
D/***
D/***
D/***
D&!!!/" " " " " " " " " " " " " " " " " "s8   (H B?E?HE	HE	B"HH	Hc                <   t          j        d           ddlm} t	          j        g g dg           }|                    | dz  ddd	
           t          j        t          |          5  t          j
        | dz  d           d d d            d S # 1 swxY w Y   d S )Nr   r   )dont_use_fixed_error_message)r   Br"   zdata.h5fixedr2   r   )r   rc   r   r   )r(   r)   dask.dataframe.io.hdfr  r*   r+   r.   r   r   r,   r/   )tmp_pathr  r2   s      r6   test_hdf_empty_dataframer    s    
!!!BBBBBB	BR((	3	3	3BIIh"73IGGG	y(D	E	E	E 0 0
Hy($///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   +BBB)A
__future__r   ru   r   timer   numpyr   pandasr*   r(   packaging.versionr   rg   dask.dataframer   r,   dask._compatibilityr   dask.dataframe._compatr   dask.dataframe.optimizer   dask.dataframe.utilsr	   dask.layersr
   
dask.utilsr   r   r   markskip_with_pyarrow_strings
pytestmarkr7   skipifrq   r|   r   r   r   slowr   r   parametrizer   r   r   r+   r0   Seriesr1   r   r   r   r   r   r   r   r   r   r   r   r  r  rY   r\   r6   <module>r*     sf   " " " " " " 				                 % % % % % %        * * * * * * % % % % % % > > > > > > * * * * * * ( ( ( ( ( ( 8 8 8 8 8 8 8 8 8 8 [2
* * *> ''&//!M   W) W)	 W)tZ Z Zz-, -, -,`(, (, (,VA= A= A=H ''&//!M    B B 	 
BJ+ + +( ''&//!M    &F&F&FGG


33> > 43 HG	 >B' ' ' 6( 6( 6(r  BL***>>***   !	
 
<<<c	*	*	*B,BC	  *  *  *F
< 
< 
< ''&//!M   2 2	 2j3 3 3$"F "F "FJ5 5 5 
 
 
  	 	 	       '" '" '"T0 0 0 0 0r\   