
    {och<                        d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z
mZ d dlmZmZmZmZmZmZmZ d dlmZmZmZ d dlmZ d dlmZ ej:                  j<                  gZej:                  jA                  dg d	      d
        Z!d Z"d Z#d Z$d Z%d Z&d Z'ej:                  jA                  d e(d            ej:                  jA                  dejR                  jT                        ej:                  jW                  d      ej:                  jY                  e xr  e       xr  e       d      d                             Z-ej:                  jY                   e        d      d        Z.ej:                  jA                  dg dg dg dg dg dg d g d!ej^                  d"d#d$gd%ej^                  d"d#d$gg	      ej:                  jA                  d&d'dg      d(               Z0d) Z1d* Z2y)+    N)PY311is_ci_environmentis_platform_linuxis_platform_little_endian)ClosedFileErrorPossibleDataLossError)	DataFrameHDFStoreIndexSeries_testing
date_rangeread_hdf)_maybe_removeensure_clean_storetables)pytables)Termmode)rr+awc           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }d
}|| z  }|dv r2t        j                  t        |      5  t        ||       d d d        n2t        ||      5 }|j                  j                  |k(  sJ 	 d d d        || z  }|dv r<t        j                  t        |      5  t        ||      5 }	 d d d        d d d        n2t        ||      5 }|j                  j                  |k(  sJ 	 d d d        || z  }|dv rMt        j                  t        |      5  |j                  |d|       d d d        |j                  |dd       n|j                  |d|       |dv r5d}t        j                  t         |      5  t#        |d|       d d d        y t#        |d|      }|r |j$                  j'                  d      |_        t)        j*                  ||       y # 1 sw Y   kxY w# 1 sw Y   xxY w# 1 sw Y   IxY w# 1 sw Y   xY w# 1 sw Y   (xY w# 1 sw Y   xY w# 1 sw Y   y xY w)N   
      ABCDdtype
2000-01-01r   Bperiodsfreqcolumnsindexz[\S]* does not exist)r   r   matchr   dfkeyr   r   )r   zNmode w is not allowed while performing a read. Allowed modes are r, r\+ and a.str)r	   nprandomdefault_rngstandard_normalr   listobjectr   pytestraisesOSErrorr
   _handler   to_hdf
ValueErrorr   r(   astypetmassert_frame_equal)	
setup_pathtmp_pathr   using_infer_stringr-   msgpathstoreresults	            z/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTAL/venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_file_handling.py	test_moderH   &   sZ   	
		a 009d6l&1r<
B
 "Cj D {]]7#. 	&T%	& 	& d& 	.%==%%---	. j D {]]7#. 	$T* e	 	 d& 	.%==%%---	. j D {]]7#. 	1IId4I0	1
		$Ds	+
		$Dt	, u}/ 	 ]]:S1 	,T4d+	, 	, $40**51BJ
fb)Q	& 	&	. 	. 	 		. 	.	1 	1	, 	,s`   H/)H<2I I	I I#)I0I</H9<I	I	II #I-0I9<Jc           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }| |z  }|j                  |d
d       t        |d
      }|j                         }|r |j                  j                  d      |_        t        j                  ||       y )Nr   r   r   r    r"   r   r#   r$   r'   r-   r   r.   r0   )r	   r1   r2   r3   r4   r   r5   r6   r   r;   r   copyr(   r=   r>   r?   )rA   r@   rB   r-   rD   rF   expecteds          rG   test_default_moderL   ]   s    	
		a 009d6l&1r<
B
 j DIId3I'dD!FwwyH#++2259&(+    c                    | |z  }t        |d      }t        t        j                  dt        j                        t        dd            |d<   d}t        j                  t        |	      5  |j                  d
       d d d        |j                          |j                  rJ |j                  d
       |j                  sJ t        |      dk(  sJ |j                          |j                  rJ t        |d      }t        t        j                  dt        j                        t        dd            |d<   |j                  d       |j                  sJ t        |      dk(  sJ |j                  dk(  sJ |j                          |j                  rJ |j                  d       |j                  sJ t        |      dk(  sJ |j                  dk(  sJ |j                          |j                  rJ |j                  d       |j                  sJ t        |      dk(  sJ |j                  dk(  sJ |j                          |j                  rJ y # 1 sw Y   xY w)Nr   r,   r   r    z
2020-01-01)r%   r)   zKRe-opening the file \[[\S]*\] with mode \[a\] will delete the current file!r*   r   r   r      )r
   r   r1   arangefloat64r   r7   r8   r   opencloseis_openlen_mode)rA   r@   rD   rE   rC   s        rG   test_reopen_handlerX   m   s    j DT$E
		"BJJ'z,PR/SE#J
	 
 
,C	8 

3 
KKM}} 
JJsO===u:??	KKM}}T$E
		"BJJ'z,PR/SE#J
 
JJsO===u:??;;#	KKM}} 
JJsO===u:??;;#	KKM}} 
JJsO===u:??;;#	KKM}}}Q s   .II#c                     t        j                  |       5 }t        dt        j                  d      j                  d      z  t        t        d      t              t        t        d      D cg c]  }d| 	 c}t                    }t        |d	d
d      }||d<   |j                  d|       |j                         }|r@|j                  j                  d      |_        |j                  j                  d      |_        t        j                   |d   |       t        j                   |d   |       |j#                          d d d        t$        j&                  j)                        rJ y c c}w # 1 sw Y   0xY w)N皙?x      r   r   r    r]   i-r'   r   	H5FD_COREr   )r   driverdriver_core_backing_storer-   df2r0   )r>   ensure_cleanr	   r1   rQ   reshaper   r5   r6   ranger
   appendrJ   r)   r=   r(   r?   rT   osrD   exists)r@   rB   rD   ir-   rE   rK   s          rG   test_open_argsrj      s3   		$ "))C.((11$v,f5595a2aS5VD
 s;!
 dUB779%^^2259HN'//66u=H
eDk84
eElH5-2 ww~~d####+ 6	 s   AE4-E/9CE4/E44E=c                     t        |       5 }t        t        d            |d<   |j                          |j                  d       d d d        y # 1 sw Y   y xY w)N   r   T)fsync)r   r   re   flush)r@   rE   s     rG   
test_flushro      sJ    	J	'  5E!H%c
$     s   :AAc                    t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }| |z  }|j                  |d	d
       t        |d	      }|j                         }|r@|j                  j                  d      |_        |j                  j                  d      |_        t        j                  ||       t!        j"                  |d      5 }|j%                  dd      D ]8  }	|	j&                  j(                  d
k(  sJ |	j&                  j*                  dk(  r8J  	 d d d        | |z  }|j                  |d	d       t        |d	      }|j                         }|r@|j                  j                  d      |_        |j                  j                  d      |_        t        j                  ||       t!        j"                  |d      5 }|j%                  dd      D ]5  }	|	j&                  j(                  dk(  sJ |	j&                  j*                  5J  	 d d d        | |z  }|j                  |d	       t        |d	      }|j                         }|r@|j                  j                  d      |_        |j                  j                  d      |_        t        j                  ||       t!        j"                  |d      5 }|j%                  dd      D ]5  }	|	j&                  j(                  dk(  sJ |	j&                  j*                  5J  	 d d d        y c c}w # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrZ   r[   r\   r   r    r]   r^   r'   r-   	   )r/   	complevelr0   r   r,   /dfLeafwhere	classnamezlib)r/   complibr   )r/   )r	   r1   rQ   rd   r   r5   r6   re   r;   r   rJ   r)   r=   r(   r>   r?   r   	open_file
walk_nodesfiltersrr   ry   )
rA   r@   rB   ri   r-   tmpfilerF   rK   h5filenodes
             rG   test_complibs_default_settingsr      s    	biin$$W--d6l&1uRy1!r!X1@
B #GIIg41I-gt$FwwyH!..u5#++2259&(+			'	, 2%%EV%D 	2D<<))Q...<<''6111	22 #GIIg4I0gt$FwwyH!..u5#++2259&(+			'	, 0%%EV%D 	0D<<))Q...<<''///	00 #GIIg4I gt$FwwyH!..u5#++2259&(+			'	, 0%%EV%D 	0D<<))Q...<<''///	00 0Y 22 20 00 0s?   M#AM(%M(AM5M5ANN(M25M?Nc                    t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }| |z  }t        |      }|j                  d	|d
d       |j                  d|       |j                          t        j                  |d      5 }|j                  dd      D ]5  }|j                  j                  dk(  sJ |j                  j                   5J  |j                  dd      D ]8  }|j                  j                  d
k(  sJ |j                  j                   dk(  r8J  	 d d d        y c c}w # 1 sw Y   y xY w)NrZ   r[   r\   r   r    r]   r^   r'   dfcrq   blosc)rr   ry   r-   r   r,   rs   rt   ru   r   z/dfc)r	   r1   rQ   rd   r   r5   r6   re   r
   rf   rT   r   rz   r{   r|   rr   ry   )rA   r@   ri   r-   r}   rE   r~   r   s           rG   'test_complibs_default_settings_overrider      sd   	biin$$W--d6l&1uRy1!r!X1@
B
 #GWE	LLaL9	LLr	KKM			'	, 3%%EV%D 	0D<<))Q...<<''///	0 %%Ff%E 	3D<<))Q...<<''7222	3	3 3 23 3s    E7AE<AE<*E<<Flvlr   libz!ignore:object name is not a validzSegfaulting in a CI environmentreasonc                    t         rGt               r=|dk(  r8|dk7  r3|j                  t        j                  j                  d| d             t        t        j                  d      t        d      t        j                  d      j                  t        j                        	      }t        j                  d
      st        j                  d       t        j                  d      st        j                  d       | | d| dz  }| d| }|j!                  ||||       t#        ||      }t%        j&                  ||       t        j(                  |d      5 }|j+                  d|z   d      D ]V  }	|	j,                  j.                  |k(  sJ |dk(  r|	j,                  j0                  :J |	j,                  j0                  |k(  rVJ  	 d d d        y # 1 sw Y   y xY w)Nblosc2r   z
Fails for z on Linux and PY > 3.11r   r\   r   r]   r'   lzozlzo not availablebzip2zbzip2 not available_z.h5)r/   ry   rr   r   r,   /rt   ru   )r   r   applymarkerr7   markxfailr	   r1   onesr5   rQ   r=   str_r   which_lib_versionskipr;   r   r>   r?   rz   r{   r|   rr   ry   )
rA   r   r   requestr-   r}   gnamerF   h5tabler   s
             rG   test_complibsr     s    "$SAXKKz#6M%NO	
 

$v,biim6J6J2776S
B
 ##E*'(##G,)*C5#c**Ge1SENE IIg5#I=gu%F&"% 
		'	, 3&&S5[F&K 	3D<<))S000ax||++333||++s222	33 3 3s   AG-G	GGz$reason platform is not little endianc                    t        |       5 }t        dddt        d            }t        j                  |j
                  d<   t        j                  |j
                  d<   t        |d       |j                  d|d	
       t        j                  |d   |       |j                  dg      }|j                  dt        dd	
            }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nfoobar)Ar#   rl   rO   )r   r   )   r#   r-   ascii)encodingr   )r(   z	columns=A)r   r	   re   r1   nanlocr   rf   r>   r?   reindexselectr   )r@   rE   r-   rK   rF   s        rG   test_encodingr   B  s     
J	' 
05U/uQx@vveT"T20
eDk2.::se:,dDw$GH
fh/
0 
0 
0s   CC((C1val)   E, 17rM      a   b   c)r   r   r   r   )s   EE, 17rM   r   r   r   )r      r   r   r   )rM   r   r   r   )r   r   r   r   )   ArM   r   r   r   rM   r   r   r   r!   categoryc                    d}d}d}|D cg c]%  }t        |t              r|j                  |      n|' }}t        ||      }| |z  }	|j	                  |	|d||       t        |	|      }
|dk(  r8||j                  j                  v r|j                  j                  |g      }n#|}n |j                  |t        j                        }t        j                  ||
       y c c}w )Nzlatin-1 datar    table)r/   formatr   nan_repr   )
isinstancebytesdecoder   r;   r   cat
categoriesremove_categoriesreplacer1   r   r>   assert_series_equal)rA   r@   r!   r   encr   r/   xserrE   retrs_nans               rG   test_latin_encodingr   S  s      CG
CAD
EAJq%0188C=a7
EC
E
E
"Cz!EJJu#gWJME3D 
cgg(((GG--wi8EEGRVV,5$'# Fs   *Cc                 p   | |z  }t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }|j                  |d	d
d       t        |      }d|j                         vsJ |j                  sJ |j                          d|j                         v sJ |j                  rJ | |z  }t        j                  rNt        |      }d}t        j                   t"        |      5  t        |       d d d        |j                          n0t        |      }t        |      }d|j                         vsJ d|j                         vsJ |j                  sJ |j                  sJ |j                          d|j                         v sJ |j                  rJ d|j                         vsJ |j                  sJ |j                          d|j                         v sJ d|j                         v sJ |j                  rJ |j                  rJ t        |d
      }|j%                  d	|       t        |      }|j%                  d|       |j                          d|j                         v sJ |j                  rJ |j                          d|j                         v sJ |j                  rJ t        |d
      }|j%                  d	|       t        |      }|j                          d|j                         v sJ |j                  rJ |j                          d|j                         v sJ |j                  rJ | |z  }t        dt        j                  d      j                  d      z  t	        t        d      t              t	        t        d      D cg c]  }d| 	 c}t                    }|j                  |d	d
d       t        |      }|j                          d}t        j                   t&        |      5  |j)                          d d d        t        j                   t&        |      5  d	|v  d d d        t        j                   t&        |      5  t+        |       d d d        t        j                   t&        |      5  |d	    d d d        t        j                   t&        |      5  |j-                  d	       d d d        t        j                   t&        |      5  |j/                  d	       d d d        t        j                   t&        |      5  |j%                  d|       d d d        t        j                   t&        |      5  |j1                  d|       d d d        t        j                   t&        |      5  |j3                  d       d d d        t        j                   t&        |      5  |j5                  d       d d d        t        j                   t&        |      5  |j-                  d	       d d d        d}t        j                   t6        |      5  |j8                   d d d        y c c}w # 1 sw Y   XxY wc c}w # 1 sw Y   IxY w# 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   NxY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrZ   r[   r\   r   r    r]   r^   r'   r-   r   r   )r/   r   r   CLOSEDzTThe file [\S]* is already opened\.  Please close it before reopening in write mode\.r*   r,   rb   z[\S]* file is not open!df3z''HDFStore' object has no attribute 'df')r	   r1   rQ   rd   r   r5   r6   re   r;   r
   inforU   rT   r   !_table_file_open_policy_is_strictr7   r8   r<   rf   r   keysrV   r   getput
get_storerremoveAttributeErrorr-   )	rA   r@   rD   ri   r-   rE   store1rC   store2s	            rG   test_multiple_open_closer   {  s    j D	biin$$W--d6l&1uRy1!r!X1@
B
 IId3wI7 TNE5::<'''===	KKMuzz|###}}j D11$) 	 ]]:S1 	TN	 	 $$v{{},,,v{{},,,~~~~~~6;;=(((>>!!v{{},,,~~~6;;=(((6;;=(((>>!!>>!! C(T2$eR 6;;=(((>>!!5::<'''==   C(T2$5::<'''==  6;;=(((>>!! j D	biin$$W--d6l&1uRy1!r!X1@
B
 IId3wI7TNE	KKM
$C	c	2 

 
c	2  
c	2 E
 
c	2 d 
c	2 T 
c	2 		$ 
c	2  UB  
c	2 		% 
c	2    
c	2 U 
c	2 T 4C	~S	1  w 2,	 	v 2                s   Z+ZZZ;Z,#Z9[;[0[ %[-[:\\;\ 2\,ZZ),Z69[[[ [*-[7:\\\ \),\5c                      t        j                  d      5 } t        |       5 }t        j                  |      t        |       k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nzfoo.h5)r>   rc   r
   rg   fspathr0   )rD   rE   s     rG   test_fspathr     sc    		" 1dd^ 	1u99U#s4y000	11 1	1 	11 1s"   A$$AA$A!	A$$A-)3rg   numpyr1   r7   pandas.compatr   r   r   r   pandas.errorsr   r   pandasr	   r
   r   r   r   r>   r   r   pandas.tests.io.pytables.commonr   r   r   	pandas.ior   pandas.io.pytablesr   r   
single_cpu
pytestmarkparametrizerH   rL   rX   rj   ro   r   r   re   r|   all_complibsfilterwarningsskipifr   r   r   r   r   r    rM   rG   <module>r      s   	   
     #kk$$%
 !673* 83*l, 5p$: 40n3, b	* ; ;<?@I=#%=*;*=,   3 A = + 3F !##,R  00 	-(*5'-	dD!	rvvsD$/
 :t"45( 6(2DN1rM   