
    .i2                        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m	Z	m
Z
mZmZmZmZmZ d dlmZ ej(                  j*                  gZd Zd Zd Zd Zd	 Zd
 Zd Zej<                  d        Zd Z d Z!d Z"d Z#ej(                  jI                  dddg      ej(                  jI                  d e
 e%d      D  cg c]
  }  e&|        c}        e
 ejN                  de(             e
 ejN                  d             edd       ejR                  dd      g      d               Z*d Z+d Z,d Z-d Z.ej(                  jI                  dddg      d        Z/yc c} w )    N)	Timestamp)	DataFrameHDFStoreIndex
MultiIndexSeries_testingconcat
date_range)_test_decoratorsc                     t        dddgi      }| j                  d|d       | j                  d|d       | j                  d      j                  dk(  sJ | j                  d      j                  dk(  sJ y )	NA      afixedformatbtable)r   put
get_storerformat_type)temp_hdfstoredfs     _/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_put.pytest_format_typer      s|    	C!Q=	!Bc2g.c2g.##C(44???##C(44???    c                     d}t        j                  t        |      5  t        | d       d d d        y # 1 sw Y   y xY w)Nz-format is not a defined argument for HDFStorematchr   r   )pytestraises
ValueErrorr   )temp_h5_pathmsgs     r    test_format_kwarg_in_constructorr'   !   s6     :C	z	- /g./ / /s   5>c                 P   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                  dd	      5  | j                  d
|       | j                  d
      j                  rJ d}t        j                  t        |      5  | j                  d|       d d d        d d d        t        j                  dd      5  | j!                  d
       | j                  d
|       | j                  d
      j                  sJ | j                  d|       | j                  d
      j                  sJ 	 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)N皙?x         ABCDr,   i-columnsindexio.hdf.default_formatr   r   Can only append to Tablesr    df2r   )r   nparangereshaper   listrangepdoption_contextr   r   is_tabler"   r#   r$   appendremove)r   ir   r&   s       r   test_api_default_formatrA   *   sn   	biin$$W--d6l#uRy1!r!X12
B 
		2G	< ,$# ++D1::::)]]:S1 	,  +	,, 
		2G	< 7T"$#''-6666UB'''-66667 7 2	, 	,, ,7 7s8   E??AFFFA0FF		FFF%c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                  dd	      5  |j                  | d
       t        |       5 }|j                  d
      j                  rJ 	 d d d        d}t        j                  t        |      5  |j                  | dd       d d d        d d d        t        j                  dd      5  |j                  | d       t        |       5 }|j                  d      j                  sJ 	 d d d        |j                  | dd       t        |       5 }|j                  d      j                  sJ 	 d d d        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   xY w# 1 sw Y   xY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nr)   r*   r+   r.   r,   r/   r0   r3   r   r   )keyr4   r    r5   T)rC   r>   r   df3df4)r   r6   r7   r8   r   r9   r:   r;   r<   to_hdfr   r   r=   r"   r#   r$   )r%   r@   r   storer&   s        r   test_api_default_format_pathrH   C   s   	biin$$W--d6l#uRy1!r!X12
B 
		2G	< <
		,D	)l# 	7u''-66666	7)]]:S1 	<IIldI;	<< 
		2G	< 4
		,E	*l# 	4u##E*3333	4
		,E$	7l# 	4u##E*3333	44 4 2
	7 	7	< 	<< <	4 	4	4 	44 4s~   F2?GF7=%G"G7GG3<G'G3G'!G37G 	<GG	GGG$	 G3'G0	,G33G<c           	         | }t        t        j                  dt        j                        t	        dd            }t        t        j                  j                  d      j                  d      t        t        d            t	        d	d
d            }||d<   |d d |d<   |d d |d<   |d d |d<   |d d |d<   |j                  d|d d d       d}t        j                  t        |      5  |j                  d|dd  d       d d d        t        j                  t        |      5  |j                  d|dd  d       d d d        t        j                  t        |      5  |j                  d|dd  d       d d d        |j                  d|d d dd       t        j                   |d d |d          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   VxY w)N
   dtype
2020-01-01periodsr2   r   )   r-   r.   
2000-01-01rQ   BrO   freqr0   r   r   zfoo/bar/bahfooz/foocr   r   r4   r    T)r>   fF)r   r>   )r   r6   r7   float64r   r   randomdefault_rngstandard_normalr   r9   r   r"   r#   r$   tmassert_frame_equal)r   rG   tsr   r&   s        r   test_putr`   [   s   E	
		"BJJ'z,PR/S
B 

		a 009d6l#r<
B
 E#JCRE#Jcr7E-cr7E%LsGE&M	IIc2cr77I+ &C	z	- -		#r"#wt	,-
 
z	- -		#r"#wt	,- 
z	- -		#r"#wt	,- 
IIc2cr775I9"Sb'5:.- -
- -- -s$   /F:*G%G:GGGc                 `   | }t        t        d      D cg c]  }d| 	 c}      }t        t        j                  d      |      }t        ||d      }||d<   t        j                  |d   |       ||d<   t        j                  |d   |       t        dgt        d      D cg c]  }d| 	 c}z         }t        t        j                  d      |      }t        ||d      }||d<   t        j                  |d   |       ||d<   t        j                  |d   |       y c c}w c c}w )	NrQ   zI am a very long string index: rP   )r   rS   r   r   $abcdefghijklmnopqrstuvwxyz1234567890   )	r   r:   r   r6   r7   r   r]   assert_series_equalr^   )r   rG   r@   r2   sr   s         r   test_put_string_indexrf      s"   E%)LQ4QC8LMEryy}E*A	#	$BE#J5:q)E#J%*b) 	/0:?)
DQ,QC0
D	EE 	ryy}E*A	#	$BE#J5:q)E#J%*b)+ M Es   D&&D+
c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }| j                  d	|d
d       t        j                  | d	   |       d}t        j                  t        |      5  | j                  d|dd       d d d        y # 1 sw Y   y xY w)Nr   rJ   r-   r.   rR   rJ   rS   rT   r0   rW   r   zlibr   complib0Compression not supported on Fixed format storesr    r   r   )r   r6   rZ   r[   r\   r   r9   r   r   r]   r^   r"   r#   r$   r   r   r&   s      r   test_put_compressionrn      s    	
		a 009d6l#r<
B c2gv>-,b1 =C	z	- C#r'6BC C Cs   $CCc           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }d	}t        j                  t        |
      5  | j                  d|dd       d d d        | j                  d|dd       t        j                  | d   |       y # 1 sw Y   8xY w)Nr   rh   r.   rR   rJ   rS   rT   r0   rl   r    r   r   bloscrj   rW   r   )r   r6   rZ   r[   r\   r   r9   r   r"   r#   r$   r   r]   r^   rm   s      r   test_put_compression_bloscrq      s    	
		a 009d6l#r<
B =C	z	- D#r'7CD c2gw?-,b1	D Ds   6CCc                     t        dt        d      j                  d      gz        }| j                  d|       |j	                         }| j                  d      }t        j                  ||       y )N   20010102nsser)r   r   as_unitr   copygetr]   rd   )r   performance_warningusing_infer_stringrv   expectedresults         r   test_put_datetime_serr~      s_    
i
+33D9::
;CeS!xxzHu%F68,r   c           	      F   t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }d	|d
<   d|d<   |d   dkD  |d<   |d   dkD  |d<   d|d<   d|d<   d|d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        d      j                  d      |d<   t        j                  |j                  |j                  dd d
gf<   |j                         }|rd n|}t        j                  |      5  | j!                  d|       d d d        | j#                  d      }t        j$                  ||       y # 1 sw Y   1xY w) Nr   rh   r.   rR   rJ   rS   rT   r0   rV   obj1barobj2r   r   bool1bool2Tbool3r   int1int2rt   ru   
timestamp120010103
timestamp2	datetime1	datetime2rs      r   )r   r6   rZ   r[   r\   r   r9   r   r   rw   nanlocr2   _consolidater]   assert_produces_warningr   ry   r^   )r   rz   r{   r   warningr|   s         r   test_put_mixed_typer      s   	
		a 009d6l#r<
B
 BvJBvJS'A+BwKS'A+BwKBwKBvJBvJ ,44T:B| ,44T:B|
+33D9B{O
+33D9B{O&(ffBFF288Aa=6("#		B(d.AG		#	#G	, $$#$   &H(B'	$ $s   FF c                 b   t        j                  | }t        dt        j                  dt         j                  dg|      i      }| j                  d|       |j                  t        j                  u rdnd}|j                  |      }| j                  d      }t        j                  ||       y )Nr   xyrK   r   strstring)r;   StringDtyper   arrayNAr   na_valuer6   r   astypery   r]   r^   )r   rz   string_dtype_argumentsrL   r   expected_dtyper|   r}   s           r   test_put_str_framer      s    NN23E	C3s"35AB	CBdB#nn6UHNyy(Ht$F&(+r   c                 8   t        j                  | }t        dt         j                  dg|      }| j	                  d|       |j
                  t        j                  u rdnd}|j                  |      }| j                  d      }t        j                  ||       y )Nr   r   rK   rv   r   r   )r;   r   r   r   r   r   r6   r   r   ry   r]   rd   )r   rz   r   rL   rv   r   r|   r}   s           r   test_put_str_seriesr      s|    NN23E
#ruuc"%
0CeS!#nn6UHNzz.)Hu%F68,r   r   r   r   r2   rJ   rK   rM   rN   c                     t        t        j                  j                  d      j	                  d      t        d      |      }| j                  d||       t        j                  || d          y )Nr   )rJ   r   ABr0   r   r   )	r   r6   rZ   r[   r\   r9   r   r]   r^   )r   r   r2   r   s       r   test_store_index_typesr      sa     

		a 009T

B
 dBv."mD12r   c                    t        j                  g dddg      }t        t        j                  d      j                  dd      |      }|j                  |j                  j                               }| j                  d	|       t        j                  | d	   |d
d
       | j                  d|d       t        j                  | d   |d
d
       t        j                  d      }t        j                  t         |      5  | j                  d|ddg       d d d        t        j                  d      }t        j                  t         |      5  | j                  d|dd
       d d d        y # 1 sw Y   XxY w# 1 sw Y   y xY w)N)r   r   )r   r   )rS   r   )rS   r   firstsecondnames   rs   r-   r1   r   Tcheck_index_typecheck_column_typedf1r   r   z<cannot use a multi-index on axis [1] with data_columns ['A']r    r5   r   )r   data_columnsz;cannot use a multi-index on axis [1] with data_columns TruerD   )r   from_tuplesr   r6   r7   r8   set_axisr2   to_numpyr   r]   r^   reescaper"   r#   r$   )r   r{   r2   r   r|   r&   s         r   test_column_multiindexr     sa    ""8(@SE 
299R=((A.	>B{{288,,./HdBdXPT eR0ehQU ))R
SC	z	- I%G3%HI
))Q
RC	z	- H%G$GH HI IH Hs   E1E=1E:=Fc                 *   t        j                  g dddg      }t        t        j                  d      j                  dd      |      }| j                  d	|       | j                  d	|       t        j                  | d	   t        ||f             y )
Nr   r   r   r   r   rs   r-   r   r5   )
r   r   r   r6   r7   r8   r>   r]   r^   r
   )r   r{   r2   r   s       r   test_column_multiindex_existingr   )  s     ""8(@SE 
299R=((A.	>B##-.Bx0@Ar   c                 >   t        t        j                  d      j                  dd      t	        t        d      d            }|j                  |j                  j                               }| j                  d|d	
       t        j                  | d   |dd       y )Nr   rs   r-   r.   rV   )namer   r   r   r   Tr   )r   r6   r7   r8   r   r9   r   r2   r   r   r]   r^   )r   r{   r   r|   s       r   %test_column_multiindex_non_index_axesr   6  s|    	299R=((A.d6lQV8W	XB{{288,,./HeR0ehQUr   c                    dd}t        t        j                  d      ddg |             }| j                  d|       t	        j
                  | j                  d      |       | j                  d       t        t        j                  d      ddg |g d            }| j                  d|       t	        j
                  | j                  d      |       t        t        j                  d       |g d      	      }| j                  d
|       t        t        j                  d       |g d      	      }t	        j                  | j                  d
      |       | j                  d       t        t        j                  d      ddg |g d            }d}t        j                  t        |      5  | j                  d|       d d d        | j                  d       t        t        j                  d      ddg |g d            }t        j                  t        |      5  | j                  d|       d d d        | j                  d       t        t        j                  d      ddg |g d            }| j                  d|       t	        j
                  | j                  d      |       y # 1 sw Y   xY w# 1 sw Y   xY w)Nc                 v    t        dd      }t        j                  |t        d      t        d      g|       }|S )Nz
2013-12-01z
2013-12-02r   rs   r   )r   r   from_productr:   )r   dtimis      r   
make_indexz)test_store_multiindex.<locals>.make_indexD  s4    |4$$c58U1X%>eL	r   )r   r   r   r   r0   r   )dateNNr   rP   rv   )r   level_1level_2)r   r   tzBduplicate names/columns in the multi-index when storing as a tabler    )r   r   r   )r   re   r   )N)r   r6   zerosr>   r]   r^   selectr?   r   rd   r"   r#   r$   )r   r   r   rv   xpr&   s         r   test_store_multiindexr   @  sT    
288G$sCj
	MBr"-..t4b9 	
c
-.
B
 r"-..t4b9 "Z0D%E
FC$	J/M$N	OB=//6; 	
c
+,
B
 OC	z	- 'T2&' 	
c
12
B
 
z	- 'T2&' 	
c
+,
B
 r"-..t4b9+' '' 's   7J8)K8KKc                 $   t        t        j                  j                  d      j	                  d      t        j                  ddd            }|j                  | dd	|
       t        j                  | d      }t        j                  ||       y )Nr   )   r   20220101Mr   )rU   rO   rP   r   w)rC   moder   )r   r6   rZ   r[   r\   r;   period_rangerF   read_hdfr]   r^   )r%   r   r   r|   s       r   test_store_periodindexr   ~  sq     

		a 008oojsA>
B
 IIl3vI>{{<.H"h'r   )0r   numpyr6   r"   pandas._libs.tslibsr   pandasr;   r   r   r   r   r   r	   r]   r
   r   pandas.utilr   tdmark
single_cpu
pytestmarkr   r'   rA   rH   r`   rf   rn   skip_if_windowsrq   r~   r   r   r   parametrizer:   r   r7   floatr   r   r   r   r   r   r   )r@   s   0r   <module>r      sz   	   ) 	 	 	 /kk$$%
@/7240!/H*4C  2 2-(8	,	- GW#56uRy)!s1v)*ibii%()ibiim<,b1		3	 7	3H8
B;:| GW#56
( 7
(K *s   :E