
    Mh,                        S r SSKJr  SSKrSSKrSSKJrJrJ	r	  SSK
Jr  \R                  R                  S5      r\R                  R!                  S5      r\R                  R!                  S5      r\R                  R'                  SS	S
/5      S 5       rS rS r\S 5       r\\R                  R'                  SSS/ SQ04S
S/ SQ04SSS/\" / SS9S.4SSS/\" / SS9S.4SSS/\" / SS9S.4SSS/\" / SS9S.4SS/S/\	R0                  " / /S-  SS/S9S.4SS/S/\	R0                  " / /S-  SS/S9S.4SS/S/\	R0                  " / /S-  SS/S9S.4SS/S/\	R0                  " / /S-  SS/S9S.4/
5      S 5       5       r\S 5       r\R                  R'                  SSS/SS/SS/SS/S S!//5      S" 5       r\S# 5       r\S$ 5       r\S% 5       r\R                  R>                  S& 5       r \S' 5       r!\S( 5       r"\S) 5       r#\S* 5       r$\S+ 5       r%\R                  R'                  S,\&S-4S./5      S/ 5       r'\S0 5       r(g)1z
Tests that the specified index column (a.k.a "index_col")
is properly handled or inferred during parsing for all of
the parsers defined in parsers.py
    )StringION)	DataFrameIndex
MultiIndexz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrow_xfailpyarrow_skipwith_headerTFc                 v   U nSnSnU(       a\  XC-   nUR                  [        U5      SS9nUR                  [        U5      SS9R                  S5      n[        R                  " Xg5        g UnSn[
        R                  " [        US9   UR                  [        U5      SS9  S S S 5        g ! , (       d  f       g = f)	Na  KORD1,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD2,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD3,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD4,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD5,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD6,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000zBID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
ID	index_colr   headerzIndex ID invalidmatch)read_csvr   	set_indextmassert_frame_equalpytestraises
ValueError)	all_parsersr	   parser	no_headerr   dataresultexpectedmsgs	            W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_index_col.pytest_index_col_namedr!      s    FQI SF!$4@??8D>!?<FFtL
f/ ]]:S1OOHTNdO; 211s   B**
B8c                     U nSn[        / SQ/ SQ/ SQ/ SQS.[        / SQSS	9S
9n/ SQnUR                  [        U5      US/S9n[        R
                  " XS5        g )Nz+1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
)      	   )      
   )         )         )abcd)helloworldfoomessagenameindex)r/   r0   r1   r2   r6   )namesr   )r   r   r   r   r   r   )r   r   r   r   r;   r   s         r    test_index_col_named2r<   4   s`    FD jz
K-I>H ,E__Xd^5YK_PF&+    c                     SnU nSn[         R                  " [        US9   UR                  [	        U5      SS9  S S S 5        g ! , (       d  f       g = f)Nza,b
1,2z)The value of index_col couldn't be 'True'r   Tr   )r   r   r   r   r   )r   r   r   r   s       r    test_index_col_is_truer?   F   s?    DF
5C	z	-$7 
.	-	-s   A
Ac                     SnU nUR                  [        U5      5      n[        / SQ/ SQ/ SQ// SQ/ SQS9n[        R                  " X45        g )Nz$A,B,C
foo,1,2,3
bar,4,5,6
baz,7,8,9
)r#   r&   r)   )r,   r$   r'   )r*   r-   r%   )r5   barbaz)ABCr:   columnsr   r   r   r   r   r   r   r   r   r   s        r    test_infer_index_colrJ   P   sL    D
 F__Xd^,F	Iy)#H
 &+r=   zindex_col,kwargsrG   xyzrM   rN   rL   r7   rG   r:   r#   r&   r;   c                     SnU nUR                  [        U5      US9n[        S0 UD6n[        R                  " XV5        g )Nzx,y,zr    rH   )r   r   kwargsr   r   r   r   s          r    test_index_col_empty_datarT   b   s@    R DF__Xd^y_AF"6"H&+r=   c                     SnU nUR                  [        U5      SS9n[        SS/S9n[        R                  " X45        g )Nzx,yFr   rL   rM   rG   rH   rI   s        r    test_empty_with_index_col_falserW      s@     DF__Xd^u_=F#s,H&+r=   index_names r5   rA   NotReallyUnnamedz
Unnamed: 0c                    U nUR                   S:X  a4  SU;   a.  [        R                  R                  SS9nUR	                  U5        SR                  US/-   5      nUR                  [        U5      SS/S	9n[        S
/ SQ0[        R                  " SS/SS//5      S9nU Vs/ s H  o(       a  UOS PM     snUR                  l        [        R                  " Xg5        g s  snf )NpyarrowrY   z!One case raises, others are wrongreason,zcol
a,c,1
a,d,2
b,c,3
b,d,4r   r#   r   colr#   r&   r)   r,   r/   r0   r1   r2   r9   )enginer   markxfailapplymarkerjoinr   r   r   r   from_productr:   r;   r   r   )	r   rX   requestr   rc   r   r   r   r8   s	            r    test_multi_index_namingri      s     F}}	!bK&7{{  (K LD! 88K#D"EEFD__Xd^1v_>F	Z%<%<sCj3PS*=U%VH @KK{tDDd2{KHNN&+ Ls   #C c           	          U nSnUR                  [        U5      SS/S9n[        S/ SQ0[        SS// S	Q// S
Q/ SQ/S9S9n[        R
                  " X45        g )Nz$,Unnamed: 2,
a,c,1
a,d,2
b,c,3
b,d,4r   r&   r   z
Unnamed: 2)r1   r2   r1   r2   r/   r0   ra   )r   r   r#   r#   )r   r#   r&   r)   )levelscodesr9   )r   r   r   r   r   r   )r   r   r   r   r   s        r    ,test_multi_index_naming_not_all_at_beginningrm      sd    F5D__Xd^1v_>F	+,#J-lL5Q
H &+r=   c                 |   U n[         R                  " / SQ5      n[        [        R                  R                  S5      R                  S5      U/ SQS9n[        R                  " 5        nUR                  U5        UR                  U/ SQS9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)N)rC   r#   r&   ro   )rD   r#   r&   r&   )r)   r)   rK   rF   )r   r#   r&   r   )r   from_tuplesr   nprandomdefault_rngstandard_normalr   ensure_cleanto_csvr   r   )r   r   midxr   pathr   s         r    %test_no_multi_index_level_names_emptyry      s     F!!"IJD
		a 008H
 
	d; 
 &(+ 
	s   )$B--
B;c                    U nSn[         R                  " SS/SS/S9n[        S/5      n[        SS	//XCS
9nUR	                  [        U5      SSS/S9n[        R                  " Xe5        [        SS/5      n[        SS/SS9n[        SS/SS//XGS
9nUR	                  [        U5      SSS9n[        R                  " Xe5        g )Nz
I11,A,A
I12,B,B
I2,1,3
)rC   rD   )rC   zB.1I11I12rP   I2r#   r)   rF   r   )r   r   rC   zA.1r7   rD   13)r   rp   r   r   r   r   r   r   )r   r   r   rw   idxr   r   col_idxs           r    test_header_with_index_colr      s     FD
 !!:|"<UENSD
-C1a&;H__Xd^q!Q_HF&+S%L!G
E
*C3*sCj1NH__Xd^uQ_GF&+r=   c                    U nSn[        [        US-   5      [        R                  R	                  S5      R                  US-   5      S.5      n[        R                  " 5        nUR                  USS9  UR                  5        nUR                  SU5        UR                  US/S	9nS S S 5        S S S 5        [        R                  " WUR                  S
5      5        g ! , (       d  f       N== f! , (       d  f       NF= f)Nd   r#   r&   r/   r0   Fr9   z,pandas.core.algorithms._MINIMUM_COMP_ARR_LENr   r   r/   )r   rangerq   rr   rs   rt   r   ru   rv   contextsetattrr   r   r   )r   monkeypatchr   ARR_LENdfrx   mr   s           r    test_index_col_large_csvr      s     FG	w{#&&q)99'A+F	

B 
	d
		$e	$  "aIIDgN__TaS_9F # 
 &",,s"34	 #" 
	s$   #!C0$C(C0
C-	)C00
C>c           	          U nUR                  [        S5      SS/SS9n[        / [        / 5      [        R
                  " SS/SS//S	S
/S9S9n[        R                  " X#5        g )Na0,a1,a2
b0,b1,b2
r   r#   r   r   a1a2b1b2a0b0rP   rF   )r   r   r   r   r   from_arraysr   r   r   r   r   r   s       r    )test_index_col_multiindex_columns_no_datar     sw     F__'(!Q1  F 
Bi&&D\D$<(t
H &+r=   c           	          U nUR                  [        S5      S/SS9n[        / SS/[        / SS9S9n[        R
                  " X#5        g )	Nz	a0,a1,a2
r   r   r   r   r   r7   rO   )r   r   r   r   r   r   r   s       r    test_index_col_header_no_datar     sR     F__Xl3QC1_MF
tBT"H
 &+r=   c                     U nUR                  [        S5      SS/S9n[        / [        R                  " / SQ/ SQ/5      S9n[
        R                  " X#5        g )Nr   r   r#   r   )r   r   r   )r   r   r   rV   )r   r   r   r   r   r   r   r   s       r    test_multiindex_columns_no_datar   %  sV     F__X&<=q!f_MF
J**,>@R+STH &+r=   c                     U nUR                  [        S5      SS/SS9n[        SS//[        R                  " SS/SS	//S
S/S9[        S/5      S9n[        R                  " X#5        g )Nz a0,a1,a2
b0,b1,b2
data,data,datar   r#   r   r   r   r   r   r   r   r   rP   rO   )r   r   r   r   r   r   r   r   r   s       r    +test_multiindex_columns_index_col_with_datar   0  s     F__561vQR  F 
&	&&D\D$<(t
 VHoH &+r=   c                     U nUR                  [        S5      SS/S/SS0S9n[        S/S/S.S	9R                  S5      n[        R
                  " X#S
S9  g )Nz0,1r/   r0   UInt8)r;   r   dtyper   r#   r   )r   F)check_index_type)r   r   r   r   r   r   r   s       r    test_infer_types_boolean_sumr   A  sx     F__Cj%Gn	  F   	
 in  &UCr=   z
dtype, val01)int64r#   c                 (   SnU nU[         :X  a<  UR                  S:X  a,  UR                  [        R                  R                  SS95        UR                  [        U5      SSU0S9n[        SS/0[        U/SS	9S
9n[        R                  " Xg5        g )Nza,b
01,2r\   z0Cannot disable type-inference for pyarrow enginer]   r/   )r   r   r0   r&   r7   r9   )objectrb   re   r   rc   rd   r   r   r   r   r   r   )r   r   valrh   r   r   r   r   s           r     test_specify_dtype_for_index_colr   Y  s     DF6==I5KK%WX	
 __Xd^s3,_OF#s5#S+ABH&+r=   c                     U nSnUR                  [        U5      SS/SS9n[        R                  " / SQSS/S9n[	        / S	Q/US
/S9n[
        R                  " X55        g )Nza,b,c,d
e,f,g,h
x,y,1,2
r   r#   r   ))r/   e)r1   g)r2   hr0   frP   )rL   r#   r&   rM   rO   )r   r   r   rp   r   r   r   )r   r   r   r   colsr   s         r    -test_multiindex_columns_not_leading_index_colr   g  ss     FD __1v  F
 !!,S#JD +SEBH&+r=   ))__doc__ior   numpyrq   r   pandasr   r   r   pandas._testing_testingr   rc   filterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowparametrizer!   r<   r?   rJ   r   rT   rW   ri   rm   ry   r   slowr   r   r   r   r   r   r   r   r   rR   r=   r    <module>r      s  
    
 [[''C
 ''8{{&&~6 u6< 7<2,$8 , ," 		?+,	O,-	
c
U2C-@AB	
c
U2C-@AB	3*uRc/BCD	3*uRc/BCDF5#//qc
K	
 #J5#//qc
K	
 F5#//qc
K	
 #J5#//qc
K	
9#&N,O& P, , , 	R		U		\*	,	,$ , , , , , ,. 5 5* , ,  	, 	, , , , ,  D D. 'EF
, G
, , ,r=   