§
    tŠtj=Q  ã                   óÌ	  — d Z ddlmZ ddlmZ ddlZddlZddlm	Z	 ddl
mZmZmZ ddlmZ ej                             d¦  «        Zej                             d¦  «        Zej                             d	¦  «        Zed
„ ¦   «         Zd„ Zej                             dg d¢ddgg¦  «        d„ ¦   «         Zej                             dddg¦  «        d„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zej                             ddddgidfddgddgdœdfddgddgdœdfg¦  «        d „ ¦   «         Z ed!d"d#g¦  «        Z eej                             d$dddgid%g d&¢d'œd% e d(d)¦  «         e d(d*¦  «         e d(d+¦  «         e d,d-¦  «         e d.d/¦  «         e d.d0¦  «        gd'œg¦  «        d1„ ¦   «         ¦   «         Z!eej                             d$dddgid2g d&¢d'œd2 e d(d)¦  «         e d(d*¦  «         e d(d+¦  «         e d,d-¦  «         e d.d/¦  «         e d.d0¦  «        gd'œg¦  «        d3„ ¦   «         ¦   «         Z"eej                             d$dddgid2g d&¢d'œd2 e d(d)¦  «         e d(d*¦  «         e d(d+¦  «         e d,d-¦  «         e d.d/¦  «         e d.d0¦  «        gd'œg¦  «        d4„ ¦   «         ¦   «         Z#ed5„ ¦   «         Z$ed6„ ¦   «         Z%ed7„ ¦   «         Z&ed8„ ¦   «         Z'ej                             d9d:d;g¦  «        d<„ ¦   «         Z(eej                             d$i ddig¦  «        d=„ ¦   «         ¦   «         Z)ej                             d>i g d?¢fd@g dA¢ig dA¢fg¦  «        dB„ ¦   «         Z*ej                             dd(d,gdCg¦  «        dD„ ¦   «         Z+edE„ ¦   «         Z,eej                             dFdG eg dH¢g ej-        g dI¢¦  «        ¬J¦  «        fdK eg dH¢g ej-        g dL¢¦  «        ¬J¦  «        fdM eg dN¢g ej-        g dO¢¦  «        ¬J¦  «        fg¦  «        dP„ ¦   «         ¦   «         Z.eej                             dddgg¦  «        ej                             dQddRdSgdSdRgdSdTgg¦  «        dU„ ¦   «         ¦   «         ¦   «         Z/edV„ ¦   «         Z0edW„ ¦   «         Z1edX„ ¦   «         Z2edY„ ¦   «         Z3edZ„ ¦   «         Z4d[„ Z5ed\„ ¦   «         Z6ed]„ ¦   «         Z7ed^„ ¦   «         Z8d_„ Z9dS )`zx
Tests that the file header is properly handled or inferred
during parsing for all of the parsers defined in parsers.py
é    )Ú
namedtuple)ÚStringION)ÚParserError)Ú	DataFrameÚIndexÚ
MultiIndexz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚpyarrow_xfailÚpyarrow_skipc                 óÀ   — | }d}t          j        t          |¬¦  «        5  |                     t	          d¦  «        dg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzbut only \d+ lines in file©Úmatchz,,é
   ©Úheader©ÚpytestÚraisesÚ
ValueErrorÚread_csvr   )Úall_parsersÚparserÚmsgs      ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/io/parser/test_header.pyÚtest_read_with_bad_headerr      s£   € à€FØ
'€Cå	Œ•z¨Ð	-Ñ	-Ô	-ð 5ð 5Ø�Š� ™œ°¨tˆÑ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð 5ð 5s    &AÁAÁAc                 ó¾   — | }d}t          j        t          d¬¦  «        5  |                     t	          |¦  «        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nú$1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
zUPassing negative integer to header is invalid. For no header, use header=None insteadr   éÿÿÿÿr   r   ©r   r   Údatas      r   Útest_negative_headerr    &   s±   € à€Fð€Dõ 
ŒÝð1ð
ñ 
ô 
ð 3ð 3ð
 	�Š� ™œ¨rˆÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3ó    %AÁAÁAr   )r   é   é   éûÿÿÿc                 ó¾   — | }d}t          j        t          d¬¦  «        5  |                     t	          |¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz<1,2,3,4,5
        6,7,8,9,10
        11,12,13,14,15
        z8cannot specify multi-index header with negative integersr   r   r   )r   r   r   r   s       r   Ú test_negative_multi_index_headerr&   5   s±   € ð €Fð€Dõ 
ŒÝÐTð
ñ 
ô 
ð 7ð 7ð 	�Š� ™œ¨vˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7r!   TFc                 óÂ   — | }d}d}t          j        t          |¬¦  «        5  |                     t	          |¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzMyColumn
a
b
a
bz#Passing a bool to header is invalidr   r   )r   r   Ú	TypeErrorr   r   )r   r   r   r   r   s        r   Útest_bool_header_argr)   C   s¬   € ð €Fð€Dð 0€CÝ	Œ•y¨Ð	,Ñ	,Ô	,ð 7ð 7Ø�Š� ™œ¨vˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7ó   ¢%AÁAÁAc                 óÆ   — | }d}g d¢}|                      t          |¦  «        |¬¦  «        }t          g d¢g d¢g d¢gg d¢g d¢¬¦  «        }t          j        ||¦  «         d S )	Nzfoo,1,2,3
bar,4,5,6
baz,7,8,9
©ÚAÚBÚC©Únames©é   r"   é   )r#   é   é   )é   é   é	   )ÚfooÚbarÚbaz©ÚindexÚcolumns©r   r   r   ÚtmÚassert_frame_equal)r   r   r   r1   ÚresultÚexpecteds         r   Útest_header_with_index_colrE   R   s‰   € à€Fð€Dð ˆOˆO€EØ�_Š_�X d™^œ^°5ˆ_Ñ9Ô9€FåØ	ˆˆ�I�I�I˜y˜y˜yÐ)Ø#Ð#Ð#Ø��ðñ ô €Hõ
 Ô˜& (Ñ+Ô+Ð+Ð+Ð+ó    c                 óÐ   — | }d}d}|                      t          |¦  «        dd¬¦  «        }|                      t          |¦  «        dd¬¦  «        }t          j        ||¦  «         d S )Nzggot,to,ignore,this,line
got,to,ignore,this,line
index,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
z7index,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
r"   r   ©r   Ú	index_col©r   r   rA   rB   )r   r   r   Údata2rC   rD   s         r   Útest_header_not_first_linerL   d   sj   € Ø€Fð€Dð€Eð �_Š_�X d™^œ^°AÀˆ_ÑCÔC€FØ�Š�x¨™œ°qÀAˆÑFÔF€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c           	      ól  ‡— | }d}|                      t          |¦  «        g d¢ddg¬¦  «        }d„ Šˆfd„t          d¦  «        D ¦   «         }t          j        d	„ t          d¦  «        D ¦   «         d
„ t          d¦  «        D ¦   «         gddg¬¦  «        }t          j        d„ t          d¦  «        D ¦   «         d„ t          d¦  «        D ¦   «         d„ t          d¦  «        D ¦   «         d„ t          d¦  «        D ¦   «         gg d¢¬¦  «        }t          |||¬¦  «        }t          j        ||¦  «         d S )Ná  C0,,C_l0_g0,C_l0_g1,C_l0_g2

C1,,C_l1_g0,C_l1_g1,C_l1_g2
C2,,C_l2_g0,C_l2_g1,C_l2_g2
C3,,C_l3_g0,C_l3_g1,C_l3_g2
R0,R1,,,
R_l0_g0,R_l1_g0,R0C0,R0C1,R0C2
R_l0_g1,R_l1_g1,R1C0,R1C1,R1C2
R_l0_g2,R_l1_g2,R2C0,R2C1,R2C2
R_l0_g3,R_l1_g3,R3C0,R3C1,R3C2
R_l0_g4,R_l1_g4,R4C0,R4C1,R4C2
©r   r3   r"   r4   r   r3   rH   c                 ó   — d| › d|› �S )NÚRr/   © )ÚrÚcs     r   ú<lambda>z)test_header_multi_index.<locals>.<lambda>Š   s   € ˜k !˜k˜k a˜k˜k€ rF   c                 óJ   •‡— g | ]Šˆˆfd „t          d¦  «        D ¦   «         ‘ŒS )c                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS rR   rR   )Ú.0rT   Ú
data_gen_frS   s     €€r   ú
<listcomp>z6test_header_multi_index.<locals>.<listcomp>.<listcomp>Œ   s%   ø€ Ð0Ð0Ð0 !ˆZˆZ˜˜1ÑÔÐ0Ð0Ð0rF   r4   )Úrange)rX   rS   rY   s    @€r   rZ   z+test_header_multi_index.<locals>.<listcomp>Œ   s8   øø€ ÐCÐCÐC°QÐ0Ð0Ð0Ð0Ð0¥u¨Q¡x¤xÐ0Ñ0Ô0ÐCÐCÐCrF   r5   c                 ó   — g | ]}d |› �‘ŒS )ÚR_l0_grR   ©rX   Úis     r   rZ   z+test_header_multi_index.<locals>.<listcomp>Ž   s   € Ð	)Ð	)Ð	)˜1ˆ,�1ˆ,ˆ,Ð	)Ð	)Ð	)rF   c                 ó   — g | ]}d |› �‘ŒS )ÚR_l1_grR   r^   s     r   rZ   z+test_header_multi_index.<locals>.<listcomp>Ž   s   € Ð+KÐ+KÐ+K¸Q¨L°Q¨L¨LÐ+KÐ+KÐ+KrF   ÚR0ÚR1r0   c                 ó   — g | ]}d |› �‘ŒS )ÚC_l0_grR   r^   s     r   rZ   z+test_header_multi_index.<locals>.<listcomp>“   ó   € Ð,Ð,Ð,˜aˆ\�aˆ\ˆ\Ð,Ð,Ð,rF   r4   c                 ó   — g | ]}d |› �‘ŒS )ÚC_l1_grR   r^   s     r   rZ   z+test_header_multi_index.<locals>.<listcomp>”   rf   rF   c                 ó   — g | ]}d |› �‘ŒS )ÚC_l2_grR   r^   s     r   rZ   z+test_header_multi_index.<locals>.<listcomp>•   rf   rF   c                 ó   — g | ]}d |› �‘ŒS )ÚC_l3_grR   r^   s     r   rZ   z+test_header_multi_index.<locals>.<listcomp>–   rf   rF   )ÚC0ÚC1ÚC2ÚC3)r?   r>   )r   r   r[   r   Úfrom_arraysr   rA   rB   )r   r   r   rC   r>   r?   rD   rY   s          @r   Útest_header_multi_indexrr   x   sa  ø€ à€Fð€Dð �_Š_�X d™^œ^°L°L°LÈQÐPQÈFˆ_ÑSÔS€FØ)Ð)€JàCÐCÐCÐC½%À¹(¼(ÐCÑCÔC€DÝÔ"Ø	)Ð	)¥ a¡¤Ð	)Ñ	)Ô	)Ð+KÐ+KÅ%ÈÁ(Ä(Ð+KÑ+KÔ+KÐLØ�Tˆlðñ ô €Eõ Ô$à,Ð,¥5¨¡8¤8Ð,Ñ,Ô,Ø,Ð,¥5¨¡8¤8Ð,Ñ,Ô,Ø,Ð,¥5¨¡8¤8Ð,Ñ,Ô,Ø,Ð,¥5¨¡8¤8Ð,Ñ,Ô,ð		
ð 'Ð&Ð&ðñ ô €Gõ ˜ w°eÐ<Ñ<Ô<€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   z
kwargs,msgrI   r:   r;   z]index_col must only contain integers of column positions when specifying a multi-index headerr3   )rI   r1   z9cannot specify names when specifying a multi-index header)rI   Úusecolsz;cannot specify usecols when specifying a multi-index headerc                 ó´   — d}| }t          j        t          |¬¦  «        5   |j        t	          |¦  «        fdg d¢i|¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )NrN   r   r   rO   r   )r   Úkwargsr   r   r   s        r   Útest_header_multi_index_invalidrv   ž   sÆ   € ð,€Dð €Få	Œ•z¨Ð	-Ñ	-Ô	-ð Gð GØˆŒ� ™œÐFÐF¨|¨|¨|ÐF¸vÐFÐFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs     AÁAÁAÚ
_TestTupleÚfirstÚsecondru   r4   ©)ÚaÚq)r{   rS   )r{   Ús)ÚbÚt)rT   Úu)rT   Úv)Úskiprowsr1   r{   r|   rS   r}   r~   r   rT   r€   r�   c                 óÎ   — | }t          g d¢g d¢gddgt          j        g d¢¦  «        ¬¦  «        }d} |j        t	          |¦  «        fdd	i|¤Ž}t          j        ||¦  «         d S )
N©r3   r"   r4   r#   r5   r6   ©r7   r8   r9   r   é   é   ÚoneÚtworz   r=   zC,a,a,a,b,c,c
,q,r,s,t,u,v
,,,,,,
one,1,2,3,4,5,6
two,7,8,9,10,11,12rI   r   ©r   r   Úfrom_tuplesr   r   rA   rB   ©r   ru   r   rD   r   rC   s         r   Ú&test_header_multi_index_common_format1r�   Ê   s˜   € ð< €FÝØ	Ð	Ð	Ð2Ð2Ð2Ð3Ø�eˆnÝÔ&ØTÐTÐTñ
ô 
ðñ ô €Hð€Dð ˆVŒ_�X d™^œ^ÐCÐC°qÐC¸FÐCÐC€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   r"   c                 óÎ   — | }t          g d¢g d¢gddgt          j        g d¢¦  «        ¬¦  «        }d} |j        t	          |¦  «        fdd	i|¤Ž}t          j        ||¦  «         d S )
Nr„   r…   rˆ   r‰   rz   r=   z<,a,a,a,b,c,c
,q,r,s,t,u,v
one,1,2,3,4,5,6
two,7,8,9,10,11,12rI   r   rŠ   rŒ   s         r   Ú&test_header_multi_index_common_format2r�   ú   s˜   € ð< €FÝØ	Ð	Ð	Ð2Ð2Ð2Ð3Ø�eˆnÝÔ&ØTÐTÐTñ
ô 
ðñ ô €Hð€Dð
 ˆVŒ_�X d™^œ^ÐCÐC°qÐC¸FÐCÐC€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 óú   — | }t          g d¢g d¢gddgt          j        g d¢¦  «        ¬¦  «        }|                     d¬¦  «        }d	} |j        t          |¦  «        fd
d i|¤Ž}t          j        ||¦  «         d S )Nr„   r…   rˆ   r‰   rz   r=   T)Údropú2a,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12rI   )r   r   r‹   Úreset_indexr   r   rA   rB   rŒ   s         r   Ú&test_header_multi_index_common_format3r”   )  s°   € ð< €FÝØ	Ð	Ð	Ð2Ð2Ð2Ð3Ø�eˆnÝÔ&ØTÐTÐTñ
ô 
ðñ ô €Hð ×#Ò#¨Ð#Ñ.Ô.€Hð€Dð
 ˆVŒ_�X d™^œ^ÐFÐF°tÐF¸vÐFÐF€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c           
      ó8  — | }t          t          j        g d¢g d¢gd¬¦  «        t          ddg¦  «        t	          g d¢g d¢gg d	¢g d
¢gddg¬¦  «        ¬¦  «        }d}|                     t          |¦  «        ddgd¬¦  «        }t          j        ||¦  «         d S )N©r"   r4   r#   r5   r6   ©r8   r9   r   r†   r‡   Úint64©Údtyper3   r7   ©r{   r~   rT   ©rS   r}   r   r€   r�   ©r   r   r3   r"   r"   ©r   r3   r"   r4   r#   r{   r|   ©ÚlevelsÚcodesr1   r=   r’   r   rH   )	r   ÚnpÚarrayr   r   r   r   rA   rB   ©r   r   rD   r   rC   s        r   Ú0test_header_multi_index_common_format_malformed1r¥   Y  sÉ   € à€FÝÝ
Œ�/�/�/Ð#5Ð#5Ð#5Ð6¸gÐFÑFÔFÝ�Q˜�F‰mŒmÝØ#�O�OÐ%>Ð%>Ð%>Ð?Ø"�?�? O O OÐ4Ø˜�*ð
ñ 
ô 
ðñ ô €Hð€Dð
 �_Š_�X d™^œ^°Q¸°FÀaˆ_ÑHÔH€FÝÔ˜( FÑ+Ô+Ð+Ð+Ð+rF   c           
      ó8  — | }t          t          j        g d¢g d¢gd¬¦  «        t          ddd¦  «        t	          g d¢g d	¢gg d
¢g d¢gd dg¬¦  «        ¬¦  «        }d}|                     t          |¦  «        ddgd¬¦  «        }t          j        ||¦  «         d S )Nr–   r—   r˜   r™   r3   é   r6   r›   rœ   r�   rž   r|   rŸ   r=   ú1,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12r   rH   )	r   r¢   r£   r[   r   r   r   rA   rB   r¤   s        r   Ú0test_header_multi_index_common_format_malformed2r©   n  sÉ   € à€FÝÝ
Œ�/�/�/Ð#5Ð#5Ð#5Ð6¸gÐFÑFÔFÝ�A�r˜1‰oŒoÝØ#�O�OÐ%>Ð%>Ð%>Ð?Ø"�?�? O O OÐ4Ø˜�+ð
ñ 
ô 
ðñ ô €Hð€Dð
 �_Š_�X d™^œ^°Q¸°FÀaˆ_ÑHÔH€FÝÔ˜( FÑ+Ô+Ð+Ð+Ð+rF   c           
      óT  — | }t          t          j        g d¢g d¢gd¬¦  «        t          ddgddggd	dgd	dgg¬
¦  «        t          g d¢g d¢gg d¢g d¢gd dg¬¦  «        ¬¦  «        }d}|                     t          |¦  «        d	dgd	dg¬¦  «        }t          j        ||¦  «         d S )N)r4   r#   r5   r6   )r9   r   r†   r‡   r˜   r™   r3   r7   r"   r8   r   )r    r¡   r›   )r}   r   r€   r�   )r   r3   r"   r"   rO   r|   rŸ   r=   r¨   rH   )r   r¢   r£   r   r   r   rA   rB   r¤   s        r   Ú0test_header_multi_index_common_format_malformed3r«   „  sç   € à€FÝÝ
Œ�,�,�,   Ð0¸Ð@Ñ@Ô@Ý ! Q ¨!¨Q¨Ð 0¸!¸Q¸À!ÀQÀÐ8HÐIÑIÔIÝØ#�O�OÐ%9Ð%9Ð%9Ð:Ø�<�<   Ð.Ø˜�+ð
ñ 
ô 
ðñ ô €Hð€Dð
 �_Š_�X d™^œ^°Q¸°FÀqÈ!Àfˆ_ÑMÔM€FÝÔ˜( FÑ+Ô+Ð+Ð+Ð+rF   c                 óè   — | }d d gddgddgg}t          j        ddg¦  «        }t          ||¬¦  «        }d}|                     t	          |¦  «        d	dg¬
¦  «        }t          j        ||¦  «         d S )Nr3   r"   r4   r#   )r{   r-   )r~   r.   ©r?   za,b
A,B
,
1,2
3,4r   r   )r   r‹   r   r   r   rA   rB   )r   r   r   r?   rD   rC   s         r   Ú"test_header_multi_index_blank_liner®   ™  s…   € ð €FØ�4ˆL˜1˜a˜& 1 a &Ð)€DÝÔ$ j°*Ð%=Ñ>Ô>€GÝ˜ wÐ/Ñ/Ô/€HØ"€DØ�_Š_�X d™^œ^°Q¸°Fˆ_Ñ;Ô;€FÝÔ˜( FÑ+Ô+Ð+Ð+Ð+rF   zdata,header)ú1,2,3
4,5,6N)zfoo,bar,baz
1,2,3
4,5,6r   c                 óR  — | }|j         dk    r7|�5t          j                             d¬¦  «        }|                     |¦  «         |                     t          d¦  «        g d¢¬¦  «        }|                     t          |¦  «        g d¢|¬¦  «        }t          j        ||¦  «         d S )NÚpyarrowzDataFrame.columns are different)Úreasonr¯   r›   r0   ©r1   r   )	Úenginer   ÚmarkÚxfailÚapplymarkerr   r   rA   rB   )r   r   r   Úrequestr   rµ   rD   rC   s           r   Ú!test_header_names_backward_compatr¹   ¥  s£   € ð
 €Fà„}˜	Ò!Ð! fÐ&8ÝŒ{× Ò Ð(IÐ ÑJÔJˆØ×Ò˜DÑ!Ô!Ð!à�Š�x¨Ñ7Ô7¸¸¸ˆÑOÔO€Hà�_Š_�X d™^œ^°?°?°?È6ˆ_ÑRÔR€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 óŽ   — | }t          g d¢¬¦  «        } |j        t          d¦  «        fi |¤Ž}t          j        ||¦  «         d S )Nr›   r­   za,b,c©r   r   r   rA   rB   )r   ru   r   rD   rC   s        r   Útest_read_only_header_no_rowsr¼   ¶  sW   € ð €FÝ   Ð1Ñ1Ô1€HàˆVŒ_�X gÑ.Ô.Ð9Ð9°&Ð9Ð9€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   zkwargs,namesrž   r1   )r:   r;   r<   ÚquuxÚpandac                 ó¦   — | }d}t          g d¢g d¢g d¢g|¬¦  «        } |j        t          |¦  «        fdd i|¤Ž}t          j        ||¦  «         d S )Nr   )r3   r"   r4   r#   r5   )r6   r7   r8   r9   r   )r†   r‡   r§   é   é   r­   r   r»   )r   ru   r1   r   r   rD   rC   s          r   Útest_no_headerrÂ   Á  sƒ   € ð €Fð€Dõ Ø	ˆˆÐ*Ð*Ð*Ð,@Ð,@Ð,@ÐAÈ5ðñ ô €Hð ˆVŒ_�X d™^œ^ÐCÐC°DÐC¸FÐCÐC€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   Ústring_headerc                 óÂ   — d}d}| }t          j        t          |¬¦  «        5  |                     t	          |¦  «        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz*header must be integer or list of integersz1,2
3,4r   r   r   )r   r   r   r   r   s        r   Útest_non_int_headerrÅ   Ø  s¨   € ð 7€CØ€DØ€Få	Œ•z¨Ð	-Ñ	-Ô	-ð 7ð 7Ø�Š� ™œ¨vˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7r*   c                 ó´   — d}| }t          ddgddgddgdœ¦  «        }|                     t          |¦  «        dg¬¦  «        }t          j        ||¦  «         d S )Nza,b,c
0,1,2
1,2,3r   r3   r"   r4   r›   r   r»   )r   r   r   rD   rC   s        r   Útest_singleton_headerrÇ   ã  sg   € ð %€DØ€Få  1˜v¨Q°¨F¸!¸Q¸Ð@Ð@ÑAÔA€HØ�_Š_�X d™^œ^°Q°Cˆ_Ñ8Ô8€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   zdata,expectedz#A,A,A,B
one,one,one,two
0,40,34,0.1)r   é(   é"   çš™™™™™¹?)©r-   rˆ   ©r-   zone.1)r-   zone.2©r.   r‰   r­   z%A,A,A,B
one,one,one.1,two
0,40,34,0.1)rË   rÌ   ©r-   zone.1.1rÍ   z/A,A,A,B,B
one,one,one.1,two,two
0,40,34,0.1,0.1)r   rÈ   rÉ   rÊ   rÊ   )rË   rÌ   rÎ   rÍ   )r.   ztwo.1c                 ó€   — | }|                      t          |¦  «        ddg¬¦  «        }t          j        ||¦  «         d S )Nr   r3   r   rJ   )r   r   rD   r   rC   s        r   Útest_mangles_multi_indexrÐ   î  sB   € ðR €Fà�_Š_�X d™^œ^°Q¸°Fˆ_Ñ;Ô;€FÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   r?   Ú ÚUnnamedÚ
NotUnnamedc                 óü  — | }ddg}|€d                      |pddg¦  «        dz   }n d                      dg|pddgz   ¦  «        dz   }|                     t          |¦  «        ||¬¦  «        }g }|€g d¢}t          |¦  «        D ])\  }}	|	sd	|€|n|dz   › d
�}	|                     |	¦  «         Œ*t          j        t          |ddg¦  «        ¦  «        }t          ddgddgg|¬¦  «        }
t          j
        ||
¦  «         d S )Nr   r3   ú,rÑ   z
0,1
2,3
4,5
z
,0,1
0,2,3
1,4,5
rH   )rÑ   rÑ   rÑ   z	Unnamed: Ú_level_0Ú0Ú1r"   r4   r#   r5   r­   )Újoinr   r   Ú	enumerateÚappendr   r‹   Úzipr   rA   rB   )r   rI   r?   r   r   r   rC   Úexp_columnsr_   ÚcolrD   s              r   Útest_multi_index_unnamedrß     s?  € ð €FØ�ˆV€FàÐØ�xŠx˜Ð+ B¨ 8Ñ,Ô,Ð/BÑBˆˆà�xŠx˜˜ Ð 3¨B°¨8Ñ4Ñ5Ô5Ð8PÑPˆà�_Š_�X d™^œ^°FÀiˆ_ÑPÔP€FØ€Kà€Ø�,�,ˆå˜GÑ$Ô$ð  ð  ‰ˆˆ3Øð 	JØI 9Ð#4˜a˜a¸!¸a¹%ÐIÐIÐIˆCà×Ò˜3ÑÔÐÐåÔ$¥S¨°s¸C°jÑ%AÔ%AÑBÔB€GÝ˜1˜a˜& 1 a &Ð)°7Ð;Ñ;Ô;€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 ó¸   — | }d}|                      t          |¦  «        dg d¢¬¦  «        }t          ddgddgd	d
gdœ¦  «        }t          j        ||¦  «         d S )Nza, b
1,2,3
5,6,4
r   r,   )r   r1   r3   r5   r"   r6   r4   r#   r@   ©r   r   r   rC   rD   s        r   Ú6test_names_longer_than_header_but_equal_with_data_rowsrâ   D  so   € ð €Fð€Dð �_Š_�X d™^œ^°A¸_¸_¸_ˆ_ÑMÔM€FÝ  1˜v¨Q°¨F¸!¸Q¸Ð@Ð@ÑAÔA€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 ór  — | }d}d}t          j        g d¢¦  «        }t          g d¢g d¢g|¬¦  «        }|                     t	          |¦  «        ddg¬	¦  «        }t          j        ||j        d d…         ¦  «         |                     t	          |¦  «        ddg¬	¦  «        }t          j        ||¦  «         d S )
NzFMale, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81z^Male, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81
.86, .67, .88, .78, .82))ÚMalerQ   )ú Maleú R)rå   z L)ú Femaleræ   )rç   z R.1)ç…ëQ¸…ë?çq=
×£på?ç)\�Âõ(ì?çö(\�Âõè?gìQ¸…ëé?)rè   ré   rê   rë   g=
×£p=ê?r­   r   r3   r   )r   r‹   r   r   r   rA   rB   Úiloc)r   r   Ús1Ús2ÚmirD   Údf1Údf2s           r   Ú test_read_csv_multiindex_columnsrò   Q  sà   € ð €Fà	S€Bð	"ð õ 
Ô	ð	
ð 	
ð 	
ñ
ô 
€Bõ Ø	'Ð	'Ð	'Ð)GÐ)GÐ)GÐHÐRTðñ ô €Hð �/Š/�( 2™,œ,°°1¨vˆ/Ñ
6Ô
6€CÝÔ˜#˜xœ}¨R¨a¨RÔ0Ñ1Ô1Ð1Ø
�/Š/�( 2™,œ,°°1¨vˆ/Ñ
6Ô
6€CÝÔ˜#˜xÑ(Ô(Ð(Ð(Ð(rF   c                 óÂ   — | }d}t          j        t          d¬¦  «        5  |                     t	          |¦  «        ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz1row11,row12,row13
row21,row22, row23
row31,row32
z1Header rows must have an equal number of columns.r   r   r"   r   ©r   r   r   r   r   )r   r   Úcases      r   Ú'test_read_csv_multi_header_length_checkrö   q  sµ   € ð €Fð€Dõ
 
ŒÝÐNð
ñ 
ô 
ð 7ð 7ð 	�Š� ™œ°°1¨vˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s    'AÁAÁAc                 óä   — | }d}|                      t          |¦  «        ddgd ¬¦  «        }t          g d¢dt          j        t          j        gdœg d¢¬	¦  «        }t          j        ||¦  «         d S )
Nzx,1,5
y,2
z,3
r{   r~   r³   r2   r5   ©r{   r~   )ÚxÚyÚz)r>   )r   r   r   r¢   ÚnanrA   rB   rá   s        r   Ú#test_header_none_and_implicit_indexrý   �  s~   € ð €FØ€DØ�_Š_�X d™^œ^°C¸°:Àdˆ_ÑKÔK€FÝØˆiˆi˜q¥"¤&­"¬&Ð1Ð2Ð2¸/¸/¸/ðñ ô €Hõ Ô˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 óÄ   — | }d}t          j        t          d¬¦  «        5  |                     t	          |¦  «        ddgd ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Núx,1
y,2,5
z,3
z"Expected 2 fields in line 2, saw 3r   r{   r~   r³   rô   r   s      r   Ú1test_header_none_and_implicit_index_in_second_rowr   �  s¾   € ð €FØ€DÝ	Œ•{Ð*NÐ	OÑ	OÔ	Oð Gð GØ�Š� ™œ¨s°C¨jÀˆÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð Gð Gs    (AÁAÁAc                 ó´   — | }d}|                      t          |¦  «        ddgd d¬¦  «        }t          ddgdd	gd
œ¦  «        }t          j        ||¦  «         d S )Nrÿ   r{   r~   Úskip)r1   r   Úon_bad_linesrù   rû   r3   r4   rø   r@   rá   s        r   Ú&test_header_none_and_on_bad_lines_skipr  –  so   € à€FØ€DØ�_Š_Ý�‰Œ˜s C˜j°ÀFð ñ ô €Fõ   S˜z°°A°Ð7Ð7Ñ8Ô8€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 óÆ   — | }d}d}t          j        t          |¬¦  «        5  |                     t	          |¦  «        g d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nza,b
1,2
z;Passed header=\[0,1,2\], len of 3, but only 2 lines in filer   )r   r3   r"   r   r   )r   r   r   r   s       r   Útest_header_missing_rowsr  ¡  s±   € ð €Fð€Dð I€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð :ð :Ø�Š� ™œ¨y¨y¨yˆÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   ¢'AÁAÁAc                 ó¨   — | }d}|                      t          |¦  «        d¬¦  «        }t          dgdddœ¦  «        }t          j        ||¦  «         d S )Nz1aa    bb(1,1)   cc(1,1)
                0  2  3.5ú\s+©Úsepr   r"   g      @)Úaazbb(1,1)zcc(1,1)r@   rá   s        r   Ú test_header_multiple_whitespacesr  ®  s_   € ð €Fð€Dð �_Š_�X d™^œ^°ˆ_Ñ8Ô8€FÝ  °¸cÐBÐBÑCÔC€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 ó¦   — | }d}|                      t          |¦  «        d¬¦  «        }t          dddgi¦  «        }t          j        ||¦  «         d S )Nza,b
1,2
3,4
    r  r	  za,bz1,2z3,4r@   rá   s        r   Útest_header_delim_whitespacer  »  s\   € ð €Fð€Dð �_Š_�X d™^œ^°ˆ_Ñ8Ô8€FÝ˜% %¨ Ð0Ñ1Ô1€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   c                 óº   — | }d}|                      t          |¦  «        d ddgddd¬¦  «        }t          ddgd	d
ggd¬¦  «        }t          j        ||¦  «         d S )Nz
a,i,x
b,j,y
r   r3   zstring[pyarrow]r±   )r   rs   rš   Údtype_backendr´   r{   r_   r~   Újr™   r@   )Úpyarrow_parser_onlyr   r   rC   rD   s        r   Útest_usecols_no_header_pyarrowr  È  s   € Ø €Fð€Dð �_Š_Ý�‰ŒØØ�A�ØØØð ñ ô €Fõ ˜3 ˜* s¨C jÐ1Ð9JÐKÑKÔK€HÝÔ˜& (Ñ+Ô+Ð+Ð+Ð+rF   ):Ú__doc__Úcollectionsr   Úior   Únumpyr¢   r   Úpandas.errorsr   Úpandasr   r   r   Úpandas._testingÚ_testingrA   rµ   ÚfilterwarningsÚ
pytestmarkÚusefixturesÚxfail_pyarrowÚskip_pyarrowr   r    Úparametrizer&   r)   rE   rL   rr   rv   rw   r�   r�   r”   r¥   r©   r«   r®   r¹   r¼   rÂ   rÅ   rÇ   r‹   rÐ   rß   râ   rò   rö   rý   r   r  r  r  r  r  rR   rF   r   ú<module>r"     s'	  ððð ð
 #Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð àŒ[×'Ò'ØCñô €
ð ”×'Ò'¨Ñ8Ô8€ØŒ{×&Ò& ~Ñ6Ô6€ð ð5ð 5ñ „ð5ð3ð 3ð 3ð „×Ò˜ Z Z Z°B¸°7Ð#<Ñ=Ô=ð
7ð 
7ñ >Ô=ð
7ð „×Ò˜ D¨% =Ñ1Ô1ð7ð 7ñ 2Ô1ð7ð ð,ð ,ñ „ð,ð",ð ,ð ,ð( ð",ð ",ñ „ð",ðJ „×ÒØð ˜5 %˜.Ð)ð'ð	
ð ˜a˜&¨E°5¨>Ð:Ð:ØHð	
ð
 ˜a˜&¨e°U¨^Ð<Ð<ØJð	
ðñô ð*Gð Gñ+ô ð*Gð( ˆZ˜ w°Ð&9Ñ:Ô:€
ð Ø„×ÒØà	�A�q�6Ðàðð ð ð
	
ð 
	
ð à�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$ðð
	
ð 
	
ðñô ð8,ð ,ñ9ô ñ „ð:,ð& Ø„×ÒØà	�A�q�6Ðàðð ð ð
	
ð 
	
ð à�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$ðð
	
ð 
	
ðñô ð8,ð ,ñ9ô ñ „ð:,ð$ Ø„×ÒØà	�A�q�6Ðàðð ð ð
	
ð 
	
ð à�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$Ø�
˜3 Ñ$Ô$ðð
	
ð 
	
ðñô ð8,ð ,ñ9ô ñ „ð:,ð& ð,ð ,ñ „ð,ð( ð,ð ,ñ „ð,ð* ð,ð ,ñ „ð,ð( ð,ð ,ñ „ð,ð „×ÒØÐ*Ð,LÐMñô ð,ð ,ñô ð,ð Ø„×Ò˜ B¨°eÐ(<Ð#=Ñ>Ô>ð,ð ,ñ ?Ô>ñ „ð,ð „×ÒØà	ˆ_ˆ_ˆ_ÐàÐ<Ð<Ð<Ð=Ø2Ð2Ð2ð	
ðñ	ô 	ð
,ð 
,ñ	ô 	ð
,ð „×Ò˜ S¨# J°Ð#@ÑAÔAð7ð 7ñ BÔAð7ð ð,ð ,ñ „ð,ð Ø„×ÒØð 4ØˆIØ!Ð!Ð!Ð"Ø.˜
Ô.ØPÐPÐPñô ðñ ô ð	
ð 6ØˆIØ!Ð!Ð!Ð"Ø.˜
Ô.ØRÐRÐRñô ðñ ô ð	
ð @ØˆIØ&Ð&Ð&Ð'Ø.˜
Ô.ðð ð ñô ðñ ô ð	
ð'"ñ%ô %ðL,ð ,ñM%ô %ñ „ðN,ð Ø„×Ò˜ t¨a¨S kÑ2Ô2Ø„×ÒØ�˜˜I�¨9°b¨/¸iÈÐ=VÐXñô ð,ð ,ñô ñ 3Ô2ñ „ð
,ðD ð	,ð 	,ñ „ð	,ð ð)ð )ñ „ð)ð> ð7ð 7ñ „ð7ð ð,ð ,ñ „ð,ð ðGð Gñ „ðGð,ð ,ð ,ð ð:ð :ñ „ð:ð ð,ð ,ñ „ð,ð ð	,ð 	,ñ „ð	,ð,ð ,ð ,ð ,ð ,rF   