a
    nÝEbßG  ã                   @   sJ  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dd	„ ƒZd
d„ Zej dg d¢ddgg¡dd„ ƒZej dddg¡dd„ ƒZdd„ Zedd„ ƒZdd„ Zed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'd(„ ƒZed)d*d+gƒZeej d,ddd"gid-g d.¢d/œd-ed0d1ƒed0d2ƒed0d3ƒed4d5ƒed6d7ƒed6d8ƒgd/œg¡d9d:„ ƒƒZeej d,ddd"gid;g d.¢d/œd;ed0d1ƒed0d2ƒed0d3ƒed4d5ƒed6d7ƒed6d8ƒgd/œg¡d<d=„ ƒƒZ eej d,ddd"gid;g d.¢d/œd;ed0d1ƒed0d2ƒed0d3ƒed4d5ƒed6d7ƒed6d8ƒgd/œg¡d>d?„ ƒƒZ!ed@dA„ ƒZ"edBdC„ ƒZ#edDdE„ ƒZ$edFdG„ ƒZ%eej dHdIdJg¡dKdL„ ƒƒZ&eej d,i ddig¡dMdN„ ƒƒZ'ej dOi g dP¢fdQdRig dS¢fdTg dU¢ig dU¢fg¡dVdW„ ƒZ(ej dd0d4gdXg¡dYdZ„ ƒZ)ed[d\„ ƒZ*eej d]d^eg d_¢ge +g d`¢¡da�fdbeg d_¢ge +g dc¢¡da�fddeg de¢ge +g df¢¡da�fg¡dgdh„ ƒƒZ,eej dddgg¡ej diddjdkgdkdjgdkdlgg¡dmdn„ ƒƒƒZ-edodp„ ƒZ.edqdr„ ƒZ/edsdt„ ƒZ0edudv„ ƒZ1edwdx„ ƒZ2edydz„ ƒZ3d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pyarrow_skipc                 C   sR   | }d}t jt|d��( tdƒ}|j|dgd� W d   ƒ n1 sD0    Y  d S )Nzbut only \d+ lines in file©Úmatchz,,é
   ©Úheader)ÚpytestÚraisesÚ
ValueErrorr   Úread_csv)Úall_parsersÚparserÚmsgÚs© r   úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/io/parser/test_header.pyÚtest_read_with_bad_header   s
    r   c                 C   sL   | }d}t jtdd��" |jt|ƒdd� W d   ƒ n1 s>0    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   r   r   ©r   r   Údatar   r   r   Útest_negative_header#   s    þr   r   )r   é   é   éûÿÿÿc                 C   sL   | }d}t jtdd��" |jt|ƒ|d� W d   ƒ n1 s>0    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   r   r   r   Ú test_negative_multi_index_header2   s    ÿr!   TFc                 C   sP   | }d}d}t jt|d��" |jt|ƒ|d� W d   ƒ n1 sB0    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   r   r   r   Útest_bool_header_arg@   s
    r#   c                 C   s|   | }d}t jtdd��$ |jt|ƒdd d�}W d   ƒ n1 s@0    Y  tg d¢g d¢g d¢gg d	¢d
�}t  ||¡ d S )Nr   F©Zcheck_stacklevelÚField)Úprefixr   ©é   r   é   r   é   ©é   é   é   é	   r
   ©é   é   é   é   é   )ZField0ZField1ZField2ZField3ZField4©Úcolumns)ÚtmÚassert_produces_warningÚFutureWarningr   r   r   Úassert_frame_equal©r   r   r   ÚresultÚexpectedr   r   r   Útest_no_header_prefixO   s    2þr?   c                 C   sZ   | }d}g d¢}|j t|ƒ|d�}tg d¢g d¢g d¢gg d¢g d¢d�}t ||¡ d S )	Nzfoo,1,2,3
bar,4,5,6
baz,7,8,9
©ÚAÚBÚC©Únames©r(   r   r)   )r   r*   r,   )r-   r.   r/   )ÚfooÚbarÚbaz©Úindexr7   ©r   r   r   r8   r;   )r   r   r   rE   r=   r>   r   r   r   Útest_header_with_index_col^   s    ýrM   c                 C   sD   | }d}d}|j t|ƒddd�}|j t|ƒddd�}t ||¡ 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   r8   r;   )r   r   r   Zdata2r=   r>   r   r   r   Útest_header_not_first_linep   s    rQ   c                 C   sF   | }t jddddd�}d}|jt|ƒg d¢dd	gd
�}t  ||¡ d S )Nr*   r)   r   r   )Zr_idx_nlevelsZc_idx_nlevelsá  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   r(   r   r)   r   r(   rN   )r8   ZmakeCustomDataframer   r   r;   ©r   r   r>   r   r=   r   r   r   Útest_header_multi_index„   s
    rU   z
kwargs,msgrO   rG   rH   zLindex_col must only contain row numbers when specifying a multi-index headerr(   )rO   rE   z9cannot specify names when specifying a multi-index header)rO   Zusecolsz;cannot specify usecols when specifying a multi-index headerc                 C   sX   d}| }t jt|d��. |jt|ƒfdg d¢i|¤Ž W d   ƒ n1 sJ0    Y  d S )NrR   r   r   rS   r   )r   Úkwargsr   r   r   r   r   r   Útest_header_multi_index_invalidš   s    rW   Ú
_TestTupleÚfirstÚsecondrV   r)   ©)ÚaÚq)r\   Úr)r\   r   )ÚbÚt)ÚcÚu)ra   Úv)ZskiprowsrE   r\   r]   r^   r   r_   r`   ra   rb   rc   c                 C   sZ   | }t g d¢g d¢gddgt g d¢¡d�}d}|jt|ƒfdd	i|¤Ž}t ||¡ d S )
N©r(   r   r)   r   r*   r,   ©r-   r.   r/   r
   r1   r2   ÚoneÚtwor[   rJ   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,12rO   r   ©r   r   Úfrom_tuplesr   r   r8   r;   ©r   rV   r   r>   r   r=   r   r   r   Ú&test_header_multi_index_common_format1Æ   s    ÿýrk   r   c                 C   sZ   | }t g d¢g d¢gddgt g d¢¡d�}d}|jt|ƒfdd	i|¤Ž}t ||¡ d S )
Nrd   re   rf   rg   r[   rJ   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,12rO   r   rh   rj   r   r   r   Ú&test_header_multi_index_common_format2ö   s    ÿýrl   c                 C   sf   | }t g d¢g d¢gddgt g d¢¡d�}|jdd�}d	}|jt|ƒfd
d i|¤Ž}t ||¡ d S )Nrd   re   rf   rg   r[   rJ   T)Zdropú2a,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12rO   )r   r   ri   Zreset_indexr   r   r8   r;   rj   r   r   r   Ú&test_header_multi_index_common_format3%  s    ÿýrn   c                 C   s‚   | }t tjg d¢g d¢gdd�tddgƒtg d¢g d¢gg d	¢g d
¢gddgd�d�}d}|jt|ƒddgdd�}t ||¡ d S )N©r   r)   r   r*   r,   ©r.   r/   r
   r1   r2   Úint64©Zdtyper(   r-   ©r\   r_   ra   ©r^   r   r`   rb   rc   ©r   r   r(   r   r   ©r   r(   r   r)   r   r\   r]   ©ÚlevelsÚcodesrE   rJ   rm   r   rN   ©	r   ÚnpÚarrayr   r   r   r   r8   r;   rT   r   r   r   Ú0test_header_multi_index_common_format_malformed1U  s    
ýý	r}   c                 C   s‚   | }t tjg d¢g d¢gdd�tddgƒtg d¢g d¢gg d	¢g d
¢gd dgd�d�}d}|jt|ƒddgdd�}t ||¡ d S )Nro   rp   rq   rr   r(   r-   rs   rt   ru   rv   r]   rw   rJ   ú1,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12r   rN   rz   rT   r   r   r   Ú0test_header_multi_index_common_format_malformed2j  s    
ýý
r   c                 C   sž   | }t tjg d¢g d¢gdd�tddgddggd	dgd	dggd
�tg d¢g d¢gg d¢g d¢gd dgd�d�}d}|jt|ƒd	dgd	dgd�}t ||¡ d S )N)r)   r   r*   r,   )r/   r
   r1   r2   rq   rr   r(   r-   r   r.   r   )rx   ry   rs   )r   r`   rb   rc   )r   r(   r   r   rS   r]   rw   rJ   r~   rN   )r   r{   r|   r   r   r   r8   r;   rT   r   r   r   Ú0test_header_multi_index_common_format_malformed3€  s    "ýý	r€   c                 C   s^   | }d d gddgddgg}t  ddg¡}t||d�}d}|jt|ƒd	dgd
�}t ||¡ d S )Nr(   r   r)   r   )r\   rA   )r_   rB   r6   za,b
A,B
,
1,2
3,4r   r   )r   ri   r   r   r   r8   r;   )r   r   r   r7   r>   r=   r   r   r   Ú"test_header_multi_index_blank_line•  s    r�   zdata,header)ú1,2,3
4,5,6N)zfoo,bar,baz
1,2,3
4,5,6r   c                 C   sB   | }|j tdƒg d¢d�}|j t|ƒg d¢|d�}t ||¡ d S )Nr‚   rs   rD   ©rE   r   rP   )r   r   r   r   r>   r=   r   r   r   Ú!test_header_names_backward_compat¡  s    r„   c                 C   s8   | }t g d¢d�}|jtdƒfi |¤Ž}t ||¡ d S )Nrs   r6   za,b,c©r   r   r   r8   r;   )r   rV   r   r>   r=   r   r   r   Útest_read_only_header_no_rows®  s    r†   zkwargs,namesrv   r&   ÚX)ZX0ZX1ZX2ZX3ZX4rE   )rG   rH   rI   ZquuxZpandac                 C   s¦   | }d}t g d¢g d¢g d¢g|d�}d| ¡ v r|tjtdd��* |jt|ƒfd	d i|¤Ž}W d   ƒ q–1 sp0    Y  n|jt|ƒfd	d i|¤Ž}t ||¡ d S )
Nr   r'   r+   r0   r6   r&   Fr$   r   )r   Úkeysr8   r9   r:   r   r   r;   )r   rV   rE   r   r   r>   r=   r   r   r   Útest_no_header¹  s    ÿ:r‰   Zstring_headerc                 C   sP   d}d}| }t jt|d��" |jt|ƒ|d� W d   ƒ n1 sB0    Y  d S )Nz*header must be integer or list of integersz1,2
3,4r   r   r   )r   r   r   r   r   r   r   r   Útest_non_int_headerÕ  s
    rŠ   c                 C   sH   d}| }t ddgddgddgdœƒ}|jt|ƒdgd�}t ||¡ d S )Nza,b,c
0,1,2
1,2,3r   r(   r   r)   rs   r   r…   )r   r   r   r>   r=   r   r   r   Útest_singleton_headerà  s
    r‹   zdata,expectedz#A,A,A,B
one,one,one,two
0,40,34,0.1)r   é(   é"   çš™™™™™¹?)©rA   rf   ©rA   zone.1)rA   zone.2©rB   rg   r6   z%A,A,A,B
one,one,one.1,two
0,40,34,0.1)r�   r�   ©rA   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‘   )rB   ztwo.1c                 C   s*   | }|j t|ƒddgd�}t ||¡ d S )Nr   r(   r   rP   )r   r   r>   r   r=   r   r   r   Útest_mangles_multi_indexë  s    )r“   r7   Ú ZUnnamedZ
NotUnnamedc                 C   sè   | }ddg}|d u r,d  |p"ddg¡d }nd  dg|p>ddg ¡d }|jt|ƒ||d�}g }|d u rpg d¢}t|ƒD ]2\}}	|	s d	|d u r’|n|d › d
�}	| |	¡ qxt t|ddgƒ¡}tddgddgg|d�}
t	 
||
¡ d S )Nr   r(   ú,r”   z
0,1
2,3
4,5
z
,0,1
0,2,3
1,4,5
rN   )r”   r”   r”   z	Unnamed: Z_level_0Ú0Ú1r   r)   r   r*   r6   )Újoinr   r   Ú	enumerateÚappendr   ri   Úzipr   r8   r;   )r   rO   r7   r   r   r   r=   Zexp_columnsÚiÚcolr>   r   r   r   Útest_multi_index_unnamed  s     rž   c                 C   sL   | }d}|j t|ƒdg d¢d�}tddgddgd	d
gdœƒ}t ||¡ d S )Nza, b
1,2,3
5,6,4
r   r@   )r   rE   r(   r*   r   r,   r)   r   rL   r<   r   r   r   Ú6test_names_longer_than_header_but_equal_with_data_rowsA  s
    rŸ   c                 C   s„   | }d}d}t  g d¢¡}tg d¢g d¢g|d�}|jt|ƒddgd	�}t ||jd d… ¡ |jt|ƒddgd	�}t ||¡ 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))ZMaleÚR)ú Maleú R)r¡   z L)ú Femaler¢   )r£   z R.1)ç…ëQ¸…ë?çq=
×£på?ç)\�Âõ(ì?çö(\�Âõè?gìQ¸…ëé?)r¤   r¥   r¦   r§   g=
×£p=ê?r6   r   r(   r   )r   ri   r   r   r   r8   r;   Ziloc)r   r   Ús1Ús2Úmir>   Zdf1Zdf2r   r   r   Ú test_read_csv_multiindex_columnsN  s    ÿÿ	ÿr«   c                 C   sP   | }d}t jtdd��& |jt|ƒddgd� W d   ƒ n1 sB0    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   Úcaser   r   r   Ú'test_read_csv_multi_header_length_checkn  s    ÿr®   c                 C   sT   | }d}|j t|ƒddgd d�}tg d¢dtjtjgdœg d¢d	�}t ||¡ d S )
Nzx,1,5
y,2
z,3
r\   r_   rƒ   rF   r*   ©r\   r_   )ÚxÚyÚz)rK   )r   r   r   r{   Únanr8   r;   r<   r   r   r   Ú#test_header_none_and_implicit_index~  s    ÿr´   c                 C   sR   | }d}t jtdd��( |jt|ƒddgd d� W d   ƒ n1 sD0    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   r   r   r   Ú1test_header_none_and_implicit_index_in_second_rowŠ  s    r¶   c                 C   sH   | }d}|j t|ƒddgd dd�}tddgdd	gd
œƒ}t ||¡ d S )Nrµ   r\   r_   Úskip)rE   r   Zon_bad_linesr°   r²   r(   r)   r¯   rL   r<   r   r   r   Ú&test_header_none_and_on_bad_lines_skip“  s    ÿr¸   )4Ú__doc__Úcollectionsr   Úior   Únumpyr{   r   Zpandas.errorsr   Zpandasr   r   r   Zpandas._testingZ_testingr8   ÚmarkZusefixturesZskip_pyarrowr   r   Zparametrizer!   r#   r?   rM   rQ   rU   rW   rX   rk   rl   rn   r}   r   r€   r�   r„   r†   r‰   rŠ   r‹   ri   r“   rž   rŸ   r«   r®   r´   r¶   r¸   r   r   r   r   Ú<module>   sV  
	




ý	þþóþ

þúþóþ
þúþóþ
þúþóþ



ÿ		

þýþ




ÿþþ
ÿþþ
ÿþþíþ&ÿ"




