
    .i                         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m	Z	 d dl
Zd dl
mZmZmZmZmZmZmZ ej(                  j*                  gZ ej.                  d      Zej(                  j3                  d      d        Zd	 Zd
 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%ej(                  jM                  dg d      d        Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/y)    N)	timedelta)	Timestamp)PY312)	DataFrameIndexSeries_testingconcat
date_rangeread_hdftablesz!ignore::tables.NaturalNameWarningc                    t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }| j                  d	|d d
        | j                  d	|d
d         t        j                  | d	   |       | j                  d|d d
 d       | j                  d|d
d         t        j                  | d   |       | j                  d|d d
        | j                  d|d
d         t        j                  | d   |       | j                  d|d d
        | j                  d|d
d         t        j                  | d   |       t        ddgddgddgddgg      }d|d<   t        j                  |j                  d<   | j                  d|       t        j                  | d   |       t        t        t        j                  j                  d      j                  ddd      t        j                         t        t        j                  j                  d      j                  ddd      t        j"                        t        t        j                  j                  d      j                  ddd      t        j$                        t        g dt        j&                        d t        j(                  d      !      }| j                  d"|       t        j                  | d"   |d#$       | j+                  d"       | j                  d"|g d%&       t        j                  | d"   |d#$       y )'N   )      ABCD
2000-01-01r   Bperiodsfreqcolumnsindexdf1
   df2table)formatz/df3df3z/df3 foozdf3 foo   r   )datatestingmixed_column)r   r$   df      )highsizedtypei  i   @)l           l          @l            l            l            )u08u16u32u64r   uintsTcheck_index_type)r,   r-   r.   data_columns)r   nprandomdefault_rngstandard_normalr   listr   appendtmassert_frame_equalputnanlocr   integersuint8uint16uint32uint64arangeremove)temp_hdfstorer%   	uint_datas      b/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/pytables/test_append.pytest_appendrK      s    

		a 009d6l#r<
B
 3B(23(-.3eRWW523(-.3CR)BC)-.3 RW-RW--	2B7 
!Q!Q!Q!Q8	9B"B~ "BFFr"--r2 		%%a(11!#A1Fhh 		%%a(11!%a1Hii 		%%a(11!%a1Hii 3ii	
$ iil'I* ),-0)dS !):OP-0)dS    c           	         t        t        d      t        j                  t        d      D cg c]  }d| 	 c}      }t        t        j                  dt        j                        t        dd            }t        t        j                  d	            }| j                  d
|       | d
   }t        j                  ||       |j                  J | j                  d|       | d   }t        j                  ||       |j                  J d|_	        | j                  d|       | d   }t        j                  ||       |j                  |j                  k(  sJ ||dkD     }| j                  dd      }t        j                  ||       ||dkD  |j                  dk  z     }t        |j                  j                        |_        | j                  dd      }t        j                  ||d       t        t        j                  j!                  d      j#                  d      dg      }t        j                  t%        |            |d<   d|d<   d|j&                  dddf<   |j)                  ddgd       |j+                         }|j                  j-                  d      |_        | j                  d|       t        j                  | d   |d       y c c}w ) Nr   i_)r+   r   r   r*   z
2020-01-01r   r0   d   sstsfoons<   zfoo>60F   Z   zfoo>70 and index<90Tr2   r   )r'   r!   Ar   r   Cbar   r'   inplacemi)r   ranger6   float64rF   r   r;   r<   assert_series_equalnameselectr   r   _datar   r7   r8   r9   lenr@   	set_indexstack	droplevel)	rH   irQ   rR   rT   resultexpectedr_   ss	            rJ   test_append_seriesrn   ]   sm   	b	eBi3PbH3P	QB	
		"BJJ'z,PR/S
B 
		#	Br"4 F62&;;r"4 F62&;;BGr"4 F62&;;"''!!! "r'{H!!$1F68, 27rxx"}-.H8>>//0HN!!$(=>F68dC 
299((+;;FCcU	SBiiB BsGBsGBFF1Q38LL#sTL*

Agg"AGq!=.DIW 4Qs   Kc                 N   t        t        t        j                  j	                  d      j                  d            j                  d      t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      ddt        d      j                  d      t        d      j                  d      d	t        j                  d      
      }t        j                  |j                  ddg df<   | j                  d|d d        | j                  d|dd         t        j                  | d   |d       |j                         }t        j                  |d<   | j!                  d       | j                  d|d d        | j                  d|dd         t        j                  | d   |d       |j                         }t        j                  |d<   | j                  d|d d        | j                  d|dd         t        j                  | d   |d       |j                         }t        j                  |d<   | j                  d|d d        | j                  d|dd         t        j                  | d   |d       y )Nr   r   int32rS   r[   
2001-01-01rT   
2001-01-02)rX   A1A2r   rZ   DEr0   r      )rs   r   ru   rv   r   r   Tr2   rs   rt   r   rv   r    )r   r   r6   r7   r8   r9   astyper   as_unitrF   r?   r@   r;   r<   r=   copyrG   )rH   r%   r   r   r    s        rJ   test_append_some_nansr{      s7   			--a0@@DELLWU))''*::2>))''*::2><(006<(006	
 iim
B +-&&BFF1R4&&'3B(23(-.TJ '')CCICR)BC)-.dK '')CCICR)BC)-.dK '')CvvCHCR)BC)-.dKrL   c                 	   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      dt        j
                  d            }t        j                  |j                  ddd d f<   | j                  d|d d d	
       | j                  d|dd  d	
       t        j                  | d   |dd  d	       | j                  d|d d d
       | j                  d|dd  d
       t        j                  | d   |d	       t        j                  dd      5  | j                  d|d d        | j                  d|dd         t        j                  | d   |       d d d        t        j                  dd	      5  | j                  d|d d        | j                  d|dd         t        j                  | d   |dd         t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      dddt        j
                  d            }t        j                  |j                  ddd d f<   | j                  d       | j                  d|d d d	
       | j                  d|dd  d	
       | d   }|}|r|dd  }t        j                  ||d	       | j                  d       | j                  d|d d d
       | j                  d|dd  d
       t        j                  | d   |d	       t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      ddt        d      j                  d      t        d      j                  d      dt        j
                  d            }t        j                  |j                  ddd d f<   | j                  d       | j                  d|d d d	
       | j                  d|dd  d	
       t        j                  | d   |d	       | j                  d       | j                  d|d d d
       | j                  d|dd  d
       t        j                  | d   |d	       d d d        y # 1 sw Y   UxY w# 1 sw Y   y xY w)Nr   r   )rs   rt   r0   r   rw   r%   r   T)dropnar2   r   Fio.hdf.dropna_tabler    df4rS   r[   )rs   rt   r   rZ   rq   rT   rr   )rs   rt   r   rZ   ru   rv   )r   r6   r7   r8   r9   rF   r?   r@   r;   r<   r=   pdoption_contextrG   r   ry   )rH   using_infer_stringr%   rk   rl   s        rJ   test_append_all_nansr      s   	))''*::2>))''*::2>	
 iim
B ffBFF1R47O r#2wt4r"#wt4--r"#wN 3B6236-.TJ 
		0%	8 8UBsG,UBrsG,
mE2B78
 
		0$	7 :OUBsG,UBrsG,
mE2BrsG< ii++A.>>rBii++A.>>rB	 ))B-
 &&qtQwT"T2cr748T2bc748t$  }H
fhFU#UBsGE:UBrsGE:
mE2BN ii++A.>>rBii++A.>>rB|,44T:|,44T: ))B-

 &&qtQwT"T2cr748T2bc748
mD12MU#UBsGE:UBrsGE:
mE2BNu:O :O8 8
:O :Os   
AS!,L,S.!S+.S7c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }|j                  j                  d       |_        | j                  d	|j                  d d d df   d
g       | j                  d	|j                  d d dd f          t        j                  | d	   |       | j                  d	d      }|j                  dg      }t        j                  ||       |j!                  t"        j$                  j'                  t(        dt*                     | j                  d	d      }|j                  dg|j                  dd       }t        j                  ||       t-        j.                  d      }t#        j0                  t2        |      5  | j                  d	d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   r   r   r   )axes	columns=ArX   rY   zAST change in PY312)reasonraises)r   zindex=df.index[0:4]r   r   zOpassing a filterable condition to a non-table indexer [Filter: Not Initialized]matchzcolumns=A and index>df.index[4])r   r6   r7   r8   r9   r   r:   r   r   
_with_freqr;   ilocr<   r=   rd   reindexapplymarkerpytestmarkxfailr   
ValueErrorreescaper   	TypeError)rH   requestr%   rk   rl   msgs         rJ   !test_append_frame_column_orientedr     s   	
		a 009d6l#r<
B
 xx""4(BH2A2i[A12/-.3!!%5Fzz3%z(H(F+ ( 	 	
 !!%)MNFzz3%rxx!}z=H(F+ ))	$C 
y	, GU$EFG G Gs   G((G1c                 B   t        d      D ]  }t        t        j                  j	                  d      j                  d      t        d            }t        d      |d<   |dxx   |dz  z  cc<   t        dgt        |      z  d	      |d<   t        dgt        |      z  d
	      |d
<   |dz  dk(  r |d= t        dgt        |      z  d	      |d<   |dz  dk(  r|j                  d      }||d<   |j                  dd       | j                  d|        t        t        j                  j	                  d      j                  d      t        d      d      }t        dgt        |      z  d	      |d<   t        dgt        |      z  d
	      |d
<   | j                  d       | j                  d|       t        dgt        |      z  d
	      |d<   t        j                  d      }t        j                   t"        |      5  | j                  d|       d d d        t        dgt        |      z  d	      |d<   t        j                  d      }t        j                   t"        |      5  | j                  d|       d d d        y # 1 sw Y   rxY w# 1 sw Y   y xY w)Nr   r   )r   r   ABrY   r   r!   int64r*   int16r   r\   rX   Tr]   r%   ra   )r   r+   int16_2zCcannot match existing table structure for [int16] on appending datar         ?float_3zAcannot match existing table structure for [A,B] on appending data)r`   r   r6   r7   r8   r9   r:   r   rf   poprg   r;   rG   r   r   r   r   r   )rH   rj   r%   ar   s        rJ   )test_append_with_different_block_orderingr   4  sP   2Y 'II!!!$44W=tDz
 Bi7
7q2vaS3r7]':7aS3r7]':7q5A:7 !s2wg>BwKq5A:sABsG
Wd+T2&%', 

		a 009T

B
 !s2wg6BwK!s2wg6BwKr" A3R=8ByM
))MC 
z	- 'T2&' C53r7?)<ByM
))W
XC	z	- 'T2&' '' '' 's   J	-J	JJc           	           fd}t        ddgddgg      } j                  d|       t        j                   j	                  d      |        |ddd       t        d	d
gddgg      } j                  d|       t        ||g      }t        j                   j	                  d      |        |ddd       t        ddgddgg      } j                  d|ddi       t        j                   j	                  d      |        |ddd        j                  d|       t        d	dgddgg      }d}t        j                  t        |      5   j                  d|       d d d        t        g dg dt        g d      t        dd      d      j                  d      } j                  d|d   d d!i       t        j                   j	                  d      |d           j                  d"|d   d#d d!i$       t        j                   j	                  d"      |d           j                  d%|d&d d'i(       |j                         j                         j!                  d)*      j                  d      } j                  d%|       t        j                   j	                  d%      t        ||g              j                  d+|d   d&d d'i(        j                  d+|d          t        j                   j	                  d+      t        |d   |d   g             t        t"        j$                  j'                  d,      j)                  d-      t        t+        d.            t        d/d0d1      2      }d3|d4<   t"        j,                  |j.                  |j0                  d5d! d4f<   d6|d7<   t"        j,                  |j.                  |j0                  d!d8 d7f<   d9|d:<   t"        j,                  |j.                  |j0                  d5d  d:f<    j                  d;|        j	                  d;      }t        j                  ||       y # 1 sw Y   xY w)<Nc                     t        j                  |       j                  j                  |      j                  |k(  sJ y Ngetattr
get_storerr   descriptionitemsizekeyrc   r)   rH   s      rJ   	check_colz+test_append_with_strings.<locals>.check_colf  <    M,,S177CCTJSS	
rL   {   	asdqwertyiY  dggnhebbsdfbdfbdf_bigvalues_block_1rw   |   asdqyiZ  dggnhefbdfbdf_big2values2   min_itemsizedf_new
abcdefqhijabcdefghijklmnopqrtsuvwxyzzTrying to store a string with len \[26\] in \[values_block_1\] column but\nthis column has a limit of \[15\]!\nConsider using min_itemsize to preset the sizes on these columnsr   )        r   g       @g      @g      @)r   r   r   r   r   )foo1foo2foo3foo4foo520130101r'   rO   )rX   r   rZ   ru   rZ   rQ   r   r   r   ss2Tr5   r   ss3r      )r   r   longer)rZ   ss4r   r   r   r   r   r   r   rS   stringr!   r[   string2   bahstring3r%   )r   r;   r<   r=   rd   r
   r   r   r   r   r   rg   rb   r>   rz   reset_indexassignr6   r7   r8   r9   r:   r?   r@   r   )rH   r   r%   r   rl   r   r   rk   s   `       rJ   test_append_with_stringsr   e  s   
 
S+&.?(@A	BB2&-..x8"=h("- c7^c=%9:
;C3'r3i H-..x8(Ch("- 
S+&.?(@A	BBBh^D-..y92>i)2. 2&l+c3O-PQRF	  
z	- /Xv./ 
**?@J2		

 in  r#wgq\B=//5r#w? 3d'STV=//63@ eRwlK
'')


!
(
(8
(
4
>
>s
CC$-..u5vr3i7HI eRWWGQ<PC)=//63S?R8ST 

		a 009d6l#r<
B
 BxL&(ffBFF288Aa=("#ByM')vvBFF288Aa=)#$ByM&(ffBFF288AB<"#r"!!$'F&"%[/ /s   QQc                      fd}t        dddt        d            } j                  d|dd	i
        |ddd	        j                  d      j                  dgk(  sJ  j                  d        j                  d|dgdd	i        |ddd	        j                  d      j                  ddgk(  sJ  j                  d        j                  d|dgdd	i        |ddd	        |ddd	        j                  d      j                  dgk(  sJ  j                  d        j                  d|d d d	
        j                  d|dd  d	
       t        j                   d   |       t        g ddg      } j                  d       t        j                  d      }t        j                  t        |      5   j                  d|ddd
       d d d        y # 1 sw Y   y xY w)Nc                     t        j                  |       j                  j                  |      j                  |k(  sJ y r   r   r   s      rJ   r   z,test_append_with_strings2.<locals>.check_col  r   rL   rS   r[   rX   r   r   r0   r%   rX      r   r   r   r   values_block_0r'   )rS   rS   rS   barhr   r   rY   zBmin_itemsize has the key [foo] which is not an axis or data_columnr   r   )rS   foobar)r   r`   r;   r   r5   rG   r<   r=   r   r   r   r   r   )rH   r   r%   r   s   `   rJ   test_append_with_strings2r     s   
 
U+59	=B rc
;dC##D)663%??? rS#JOdC##D)663*DDD rXsOTdCd$c*##D)663%??? r"1vC8r!"vC8--r2 
@3%	PB
))LC 
z	- OT2B"4MNO O Os   =GG'c                     t        dg di      }| j                  d|d d ddi       | j                  d|dd  ddi       t        j                  | j	                  d      |       y )Nx)r   bcdef r%   r!   r   )r   r;   r<   r=   rd   )rH   r%   s     rJ   test_append_with_empty_stringr     sk    	C;<	=Br#2wc1X>r"#wc1X>-..t4b9rL   c           
          t        t        j                  j                  d      j	                  d      t        t        d            t        dddd      	      }d
|j                  d|j                  j                  d      f<    j                  d|d d dg        j                  d|dd         t        j                   d   |        j                  j                  j                   j"                  j$                  j&                  j(                  du sJ  j                  j                  j                   j"                  j$                  j*                  j(                  du sJ  j-                  dd      }||j*                  dkD     }t        j                  ||        j-                  dd      }|j/                  |j&                  dd        }||j*                  dkD     }t        j                  ||       |j1                         }d|d<   t        j2                  |j4                  |j&                  dd df<   d|j4                  |j&                  dd df<    j7                  d        j                  d|dg        j-                  dd      }||j8                  dk(     }t        j                  ||        fd} j7                  d        j                  d|dgddi        |ddd        j7                  d        j                  d|dgd        |ddd        j7                  d        j                  d|dgddi        |ddd       d|d<   d |d!<   d"|d#<    j7                  d        j                  d|ddgdd$d%d&        |ddd        |ddd$        |dd'd%       |j1                         }d
|j                  d|j                  j                  d(      f<   d)|j                  d|j                  j                  d      f<   d|d<   |j                  j                  d      }t        j2                  |j                  dd|f<   d|j                  dd|f<   d|d<   |j                  j                  d      }t        j2                  |j                  dd|f<   d|j                  d*d+|f<    j7                  d        j                  d|g d,        j-                  dd-      }||j8                  dk(  |j:                  dk(  z  |j<                  dkD  z  |j*                  dk  z     }t        j                  ||d./        j-                  dd0      }||j8                  dk(  |j:                  d1k(  z     }t        j                  ||       |j1                         }d|d<   t        j2                  |j4                  |j&                  dd df<   d|j4                  |j&                  d*d2 df<   d1|d<   t?        d3      jA                  d      |d4<   t        j2                  |j4                  |j&                  d5d g d6f<    j                  d7|g d8        j-                  d7d      }||j*                  dkD     }t        j                  ||        j-                  d7g d9      }||j*                  dkD  |jB                  dkD  z  |j8                  dk(  z     }t        j                  ||d./       t        d:d+;      }t        t        j                  j                  d      j	                  d<      |g d=>      }d|d<   t        j2                  |j4                  |j&                  dd df<   d|j4                  |j&                  d*d2 df<   |dd?g   jE                         |dd?g<   d1|d<    j7                  d7        j                  d7|g d@        j-                  d7d      }||j*                  dkD     }t        j                  ||        j-                  d7g dA      }||j*                  dkD  |jB                  dkD  z  |j8                  dk(  z     }t        j                  ||       y )BNr   r   r   r   r   r   rT   )r   r   unitr   r   r   r%   r4   TB>0zB>0 and index>df.index[3]r   r0   rS   r   r!   r[   r'   r   zstring='foo'c                     t        j                  |       j                  j                  |      j                  |k(  sJ y r   r   r   s      rJ   r   z0test_append_with_data_columns.<locals>.check_col  r   rL      r   r   	foobarbahr   
foobarbah1string_block1
foobarbah2string_block2(   r   )r   r   r   r   rX   g         r   )rX   r   r   r   z.string='foo' and string2='foo' and A>0 and B<0F)
check_freqzstring='foo' and string2='cool'cool	   20010102datetimer\   )rX   r   r   df_dc)r   rZ   r   r   r   )B > 0C > 0zstring == fooz1/1/2000rO   )r   r\   )rX   r   rZ   )r   r   rZ   )r   rZ   r   r   )r   r   zstring == "foo")#r   r6   r7   r8   r9   r   r:   r   r   r   get_locr;   r<   r=   _handlerootr%   r   colsr   
is_indexedr   rd   r   rz   r?   r@   rG   r   r   rX   r   ry   rZ   abs)	rH   r%   rk   rl   r   r   slr   r   s	   `        rJ   test_append_with_data_columnsr    s   	
		a 009d6l#r$G
B
 +.BGGArzz!!#&&'r"1vSE:r!"v&--r2   %%((..3399DDLLL  %%((..3355@@DHHH !!$.F"$$(|H&(+ !!$(CDFZZbhhqrlZ+Ffhhl#H&(+ WWYFF8.0ffFJJv||Aa (*+.3FJJv||Aa (*+vXJ?!!$7Ffmmu,-H&(+
 fH:XrN   dHb!vXJRPdHb!fH:XrN   dHb!#F9*F?*F?	* "rR@	   dHb!dIr"d$b) WWYF25FKK6>>))#../26FKK6>>))#../F8				)B66FKK!R FKK!RF9					*B66FKK!R FKK!Rv4ST!!>F 	%	>>U"	$88a<	 88a<	H &(u= !!$(IJFv}}-&..F2JKLH&(+ GGIEE(O,.FFEIIekk!A(),1EIIekk!A()E)!*-55d;E*:<&&EIIekk!A 667%P   !!'51FUWWq[!H&(+!!'+NOFeggkeggk2elle6KLMH&(u= z1-E
		a 008E
 E(O,.FFEIIekk!A(),1EIIekk!A()sCj)--/E3*E) !%6UV!!'51FUWWq[!H&(+!!'+PQFeggkeggk2elle6KLMH&(+rL   c                    |}d |j                   _        | j                  d|       | j                  d      }t	        j
                  ||       | j                  dddg      }|j                  ddg      }t	        j
                  ||       |j                  | dd       t        | dddg      }|j                  ddg      }t	        j
                  ||       y )Nr_   rX   r   rY   r%   r   )r   r   )	r   rc   r;   rd   r<   r=   r   to_hdfr   )rH    multiindex_dataframe_random_datar%   rk   rl   s        rJ   test_append_hierarchicalr    s    	)BBJJOr"!!$'F&"% !!$c
!;Fzz3*z-H&(+IImgI6mTC:>Fzz3*z-H&(+rL   c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }| j                  d|d	
       | j                  d      }t        j                  ||       | j                  d|d       | j                  d      }t        j                  ||       y c c}w )N皙?x   r   r   r   r   i-r   r%   r!   	chunksizer   r   )expectedrows)r   r6   rF   reshaper   r:   r`   r;   rd   r<   r=   )rH   rj   r%   rk   s       rJ   test_append_miscr    s    	biin$$W--d6l#uRy1!r!X12
B
 rQ/!!$'F&"%4!!%(F&"% 2s   C r  )r   r   i  c                     t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }d|d	<   d
|d<   |d   j                  d      |d<   |d   dkD  |d<   t        d      j                  d      |d<   t        d      j                  d      |d<   | j                  d||       | j                  d      }t        j                  ||       y c c}w )Nr	  r
  r  r   r   r  r   rS   r   r   float322float32r   boolr   rT   time120130102time2objr  )r   r6   rF   r  r   r:   r`   rx   r   ry   r;   rd   r<   r=   )rH   r  rj   r%   rk   s        rJ   test_append_misc_chunksizer    s     
biin$$W--d6l#uRy1!r!X12
B
 BxLBzN
^**95BzNJ!#BvJJ'//5BwKJ'//5BwKi8!!%(F&"% 2s   Dc                    t        t        d            }| j                  d|       t        j                  t
        d      5  | j                  d       d d d        t        t        j                  j                  d      j                  d      t        d            }| j                  d|       t        j                  | j                  d      |       | j                  d|       t        j                  | j                  d      |       t        t        d            }| j                  d|       t        j                  | j                  d      |       y # 1 sw Y   xY w)	NABCrY   r%   z 'No object named df in the file'r   r   )r   r\   r   )r   r:   r;   r   r   KeyErrorrd   r6   r7   r8   r<   r=   r>   )rH   df_emptyr%   s      rJ   test_append_misc_empty_framer    s    e-Hx(	x'I	J #T"# 
299((+227;T%[	QBr"-..t4b9x(-..t4b9 
4;	'BeR -..u5r:# #s   EE$c                 	   t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }dggt        |      z  |d	<   |j                  d	   t        j                  k(  sJ t        j                  d
      }t        j                  t        |      5  | j                  d|       d d d        dggt        |      z  |d<   dggt        |      z  |d<   t        j                  t        |      5  | j                  d|       d d d        t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t!        t#        j"                  ddd      |j$                        }|j'                  t(              }t        j*                  |dd ||d	<   |j                  d	   t        j                  k(  sJ d}t        j                  t        |      5  | j                  d|       d d d        d}t        j                  t        |      5  | j                  dt        j                  d             d d d        t        j                  d      }t        j                  t        |      5  | j                  dt!        t        j                  d                   d d d        t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }| j                  d|       d|d<   t        j                  d      }t        j                  t,        |      5  | j                  d|       d d d        t/        d      |d<   | j1                  d       | j                  d|       d|d<   t        j                  d      }t        j                  t,        |      5  | j                  d|       d d d        y c c}w # 1 sw Y   xY w# 1 sw Y   5xY wc c}w # 1 sw Y   ,xY w# 1 sw Y   xY w# 1 sw Y   xY wc c}w # 1 sw Y   xY w# 1 sw Y   y xY w)Nr	  r
  r  r   r   r  r   r   invalidziCannot serialize the column [invalid]
because its data contents are not [string] but [mixed] object dtyper   r%   invalid2invalid3i  r!   r   r0   r   r'   z>too many timezones in this block, create separate data columnsz(value must be None, Series, or DataFramer   zQcannot properly create the storer for: [group->df,value-><class 'pandas.Series'>]rS   zinvalid combination of [non_index_axes] on appending data [(1, ['A', 'B', 'C', 'D', 'foo'])] vs current table [(1, ['A', 'B', 'C', 'D'])]r   r[   znCannot serialize the column [foo] because its data contents are not [string] but [datetime64[us]] object dtype)r   r6   rF   r  r   r:   r`   rf   dtypesobject_r   r   r   r   r   r;   r   r   r   rx   objectr?   r   r   rG   )rH   r   rj   r%   r   rm   s         rJ   test_append_raiser'    s    
biin$$W--d6l#uRy1!r!X12
B
 UGc"g%ByM99Y2::---
))	GC 
y	, 'T2&' eWs2w&BzNeWs2w&BzN	y	, 'T2&' 
biin$$W--d6l#uRy1!r!X12
B
 	x  q!,BHH=A	AVVAaFByM99Y2::---
JC	y	, 'T2&' 5C	y	, 2T299R=12 ))	5C 
y	, :T6"))B-#89: 
biin$$W--d6l#uRy1!r!X12
B
 r"BuI
))	&C
 
z	- 'T2&' *%BuIr"BuI
))	,C
 
z	- 'T2&' 'Q 2' '' ' 2' '
2 2: : 2' '' 'sf   QQ#*Q0Q=R=&R/R"R)R.R:#Q-0Q:RRR&.R7:Sc                 d   t        d      j                  d      }t        |t        d      D cg c]  }|t	        |d      z    c}d      }|d   |d   z
  |d<   |d   j                  d	| d
      |d<   t        j                  |j                  dddf<   | j                  d|d       | j                  d      }t        j                  ||       | j                  dd      }t        j                  ||       | j                  dd      }t        j                  ||j                  dd         | j                  dd      }t        j                  ||j                  dd         | j                  dd      }|j                  dg      }t        j                  ||j                  dd         | j                  dd      }|j                  dd  }t        j                  ||j                  dd         | j                  d|       | j                  d      }t        j                  ||       y c c}w )Nr   rT   r   )dayssecondsr   rX   r   rZ   zm8[]r\   r'   r%   Tr4   zC<100000)wherezC<pd.Timedelta('-3D')zC<'-3D'zC<'-500000s')subsetr   z	C<'-3.5D'r!   r   r   )r   ry   r   r`   r   rx   r6   r?   r@   r;   rd   r<   r=   r   r}   r>   )rH   r   rR   rj   r%   rk   s         rJ   test_append_with_timedeltar.  $  s    
:		&	&t	,B	>CBiH"ya44H	

B g3BsGgnns4&]+BsGvvBFF1Q38 r5!!$'F&"%!!$j!9F&"%!!$.E!FF&"''!"+.!!$	2F&"''!"+. !!$7F]]3%](F&"''!"+.!!$4F[[_F&"''!"+. eR !!%(F&"%E Is   H-
c           	         t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }|j                         j                  d	j                  
      }d|d<   t        ||gd      }d}t        j                  t        |      5  | j                  ddgd d|d       d d d        t        j                  t        |      5  | j                  d d d|d       d d d        d}t        j                  t        |      5  | j                  d|d       d d d        | j                  ddgd d|d       | j!                  ddgddgd      }||j"                  dkD  |j$                  dkD  z     }t'        j(                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   r   r   r   r   r   r   r   {}_2rY   r[   rS   r!   axisz=append_to_multiple requires a selector that is in passed dictr   rX   r   r   r    )selectorzQappend_to_multiple must have a dictionary specified as the way to split the valuer   r   zA>0r   )r,  r4  r   )r   r6   r7   r8   r9   r   r:   r   rz   renamer   r
   r   r   r   append_to_multipleselect_as_multiplerX   r   r<   r=   )rH   r   r   r%   r   rk   rl   s          rJ   test_append_to_multipler8  Q  s   

		a 009d6l#r<C
 ((*

FMM

2CCJ	c
	#B JC	z	- 
((#Jt,b5 	) 	


 
z	- Y((d)CRRW(XY	  
z	- ;((E:; $$c
4("u %  --	uenu . F 244!8q)*H&(+/
 

Y Y; ;s$   4F41G .G4F= G	Gc           	      d   t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            j                  d	j                  
      }t        j                  |j                  d|j                  j                  ddg      f<   t        ||gd      }| j                  ddgd d|dd       | j!                  ddg      }|j#                         }t%        j&                  ||d       t%        j(                  | j+                  d      j,                  | j+                  d      j,                         y )Nr   r   r   r   r   r   r   r   r0  rY   r!   rX   r1  r3  r   Tr4  r}   r   r2   )r   r6   r7   r8   r9   r   r:   r   r5  r   r?   r   r   get_indexerr
   r6  r7  r}   r<   r=   assert_index_equalrd   r   )rH   r   r   r%   rk   rl   s         rJ   test_append_to_multiple_dropnar=  w  sb   

		a 009d6l#r<C
 
		a 009d6l#r< fV]]f#	 
 8:vvCHHQ''c
334	c
	#B $$c
4("uT %  --uen=Fyy{H&(TBU#))=+?+?+F+L+LrL   c           	      :   t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            }|j                         j                  d	j                  
      }t        j                  |j                  d|j                  j                  ddg      f<   t        ||gd      }t!        j"                  dd      5  | j%                  ddgd d|dd       d}t'        j(                  t*        |      5  | j-                  ddg       d d d        | j/                  d      j0                  j3                  | j/                  d      j0                        rJ 	 d d d        y # 1 sw Y   XxY w# 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   r0  rY   r!   rX   r1  r   T)df1adf2ar?  Fr:  z,all tables must have exactly the same nrows!r   r@  )r   r6   r7   r8   r9   r   r:   r   rz   r5  r   r?   r   r   r;  r
   r   r   r6  r   r   r   r7  rd   r   equals)rH   r   r   r%   r   s        rJ   $test_append_to_multiple_dropna_falserB    sk   

		a 009d6l#r<C
 ((*

FMM

2C79vvCHHQ''c
334	c
	#B			0$	7 
((3Z.VE 	) 	
 =]]:S1 	?,,ff-=>	? !''/55<<  (..
 	
 
 

 
	? 	?
 
s%   "8FF.AFF	
FFc           
      T   t        t        j                  dd      t        j                  dd      t        j                  dd      dz  t        d      D cg c]  }d c}t        d      D cg c]  }d c}d      }|j                  dg   }t        t        t        t        |j                                          |_        | j                  d	gd
dgddgd|j                  dg   ddddd       | j                  g d      }t        j                  ||d       y c c}w c c}w )Nr!      X   r   r   abcde)IXNumBigNumStrLongStrr   rG  rH  rI  rJ  rK  )r   numsstrsr   r   rP   r   )rJ  rK  rH  r   Tr2   )r   r6   rF   r`   r   r   r:   rf   r   r6  r7  r<   r=   )rH   _r%   rl   rk   s        rJ   $test_append_to_multiple_min_itemsizerO    s
   	))Ar"99Q#ii2&+!&r+AC+).r3A3	

B wws|H4c(..&9 :;<HN$$VH%I&	

 	C: % 	 --.GHF&(TB' ,3s   	D -	D%c                    t        dddt        j                  d            }|j                         }t        j                  |j
                  ddd d f<   d}| j                  d	|d
          t        j                  t        |      5  | j                  d	|d
          d d d        | j                  d|d   d       t        j                  t        |      5  | j                  d|d          d d d        | j                  d|d
   d       | j                  d|d
          | d   }t        |d
   |d
   g      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   pxY w)Nr   rS   r   r   r0   r   r   z8NaN representation is too large for existing column sizesarX   r   sbr   bars)nan_repscn)r   r6   rF   rz   r?   r@   r;   r   r   r   r
   r<   rb   )rH   r%   df_nanr   rk   rl   s         rJ   test_append_string_nan_reprX    sD   	5)2	?BWWYFFJJqsAv
DC r#w'	z	- 0T6#;/0 r#w7	z	- 0T6#;/0 r#w4vc{+4 Fr#ws,-H68,0 0
0 0s   	EEEE')0r   r   r   numpyr6   r   pandas._libs.tslibsr   pandas.compatr   pandasr   r   r   r   r	   r<   r
   r   r   r   
single_cpu
pytestmarkimportorskipr   filterwarningsrK   rn   r{   r   r   r   r   r   r   r  r  r  parametrizer  r  r'  r.  r8  r=  rB  rO  rX   rL   rJ   <module>rc     s     	   )     kk$$%
			X	& ?@>T A>TB-J`'LTTOn#GL.'bQ&h(OV:X,v,&& o6& 7&$;*P'f*&Z#,L4
2C:-rL   