Ë
    AúYjÅ,  ã                   óÂ  — d Z ddlmZ ddlZddlZddlmZmZm	Z	 ddl
mZ ej                  j                  d«      Zej                  j!                  d«      Zej                  j!                  d«      Zej                  j'                  dd	d
g«      d„ «       Zd„ Zd„ Zed„ «       Zeej                  j'                  dddg d¢ifd
dg d¢ifdddg eg d¬«      dœfdddg eg d¬«      dœfdddg eg d¬«      dœfdddg eg d¬«      dœfddgdg e	j0                  g gdz  ddg¬«      dœfddgdg e	j0                  g gdz  ddg¬«      dœfddgdg e	j0                  g gdz  ddg¬«      dœfddgdg e	j0                  g gdz  ddg¬«      dœfg
«      d„ «       «       Zed„ «       Zej                  j'                  dddgddgddgddgd d!gg«      d"„ «       Zed#„ «       Zed$„ «       Zed%„ «       Zej                  j>                  d&„ «       Z ed'„ «       Z!ed(„ «       Z"ed)„ «       Z#ed*„ «       Z$ed+„ «       Z%ej                  j'                  d,e&d-fd.g«      d/„ «       Z'ed0„ «       Z(y)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                 óz  — | }d}d}|rc||z   }|j                  t        |«      d¬«      }|j                  t        |«      d¬«      j                  d«      }t        j                  ||«       y |}d}t        j                  t        |¬«      5  |j                  t        |«      d¬«       d d d «       y # 1 sw Y   y xY w)	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	            úp/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_index_col.pyÚtest_index_col_namedr!      s¬   € à€FðQ€Ið S€FáØ˜	Ñ!ˆà—‘¤¨$£¸4�Ó@ˆØ—?‘?¤8¨D£>¸!�?Ó<×FÑFÀtÓLˆÜ
×Ñ˜f hÕ/àˆØ ˆä�]‰]œ:¨SÔ1ñ 	<Ø�O‰OœH T›N°dˆOÔ;÷	<÷ 	<ñ 	<ús   ÂB1Â1B:c                 óÊ   — | }d}t        g d¢g d¢g d¢g d¢dœt        g d¢d¬	«      ¬
«      }g d¢}|j                  t        |«      |dg¬«      }t	        j
                  ||«       y )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<   5   sb   € Ø€Fð€Dô ÚšjªzÂ
ÑKÜÒ-°IÔ>ô€Hò ,€Eà�_‰_œX d›^°5ÀYÀKˆ_ÓP€FÜ×Ñ˜& (Õ+ó    c                 ó¨   — d}| }d}t        j                  t        |¬«      5  |j                  t	        |«      d¬«       d d d «       y # 1 sw Y   y xY w)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?   G   sH   € à€DØ€Fà
5€CÜ	�‰”z¨Ô	-ñ 8Ø�‰œ ›°$ˆÔ7÷8÷ 8ñ 8ús   ¢AÁAc                 ó¢   — d}| }|j                  t        |«      «      }t        g d¢g d¢g d¢gg d¢g d¢¬«      }t        j                  ||«       y )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   Q   sN   € ð€Dð
 €FØ�_‰_œX d›^Ó,€FäÚ	’IšyÐ)Ú#Úô€Hô
 ×Ñ˜& (Õ+r=   zindex_col,kwargsrG   ©ÚxÚyÚzrM   rN   rL   r7   ©rG   r:   r#   r&   ©r;   c                 ó†   — d}| }|j                  t        |«      |¬«      }t        di |¤Ž}t        j                  ||«       y )Nzx,y,zr   © rH   )r   r   Úkwargsr   r   r   r   s          r    Útest_index_col_empty_datarT   c   sB   € ðR €DØ€FØ�_‰_œX d›^°yˆ_ÓA€FäÑ"˜6Ñ"€HÜ×Ñ˜& (Õ+r=   c                 óŒ   — d}| }|j                  t        |«      d¬«      }t        ddg¬«      }t        j                  ||«       y )Nzx,yFr   rL   rM   ©rG   rH   rI   s        r    Útest_empty_with_index_col_falserW   ”   sB   € ð €DØ€FØ�_‰_œX d›^°uˆ_Ó=€Fä # s Ô,€HÜ×Ñ˜& (Õ+r=   Úindex_namesÚ r5   rA   ÚNotReallyUnnamedz
Unnamed: 0c                 óÆ  — | }|j                   dk(  r5d|v r1t        j                  j                  d¬«      }|j	                  |«       dj                  g |¢d‘«      }|j                  t        |«      ddg¬	«      }t        d
g d¢it        j                  ddgddgg«      ¬«      }|D �cg c]  }|r|nd ‘Œ
 c}|j                  _        t        j                  ||«       y c c}w )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à‡}�}˜	Ò! b¨KÑ&7Ü�{‰{× Ñ Ð(KÐ ÓLˆØ×Ñ˜DÔ!ð �8‰8ÐE�kÐEÐ#DÐEÓF€DØ�_‰_œX d›^¸¸1°vˆ_Ó>€FäØ	’Ð¤Z×%<Ñ%<¸sÀC¸jÈ3ÐPSÈ*Ð=UÓ%Vô€Hð @KÖK°t¡D™D¨dÑ2ÒK€H‡N�NÔÜ×Ñ˜& (Õ+ùò Ls   Â(Cc           	      óÄ   — | }d}|j                  t        |«      ddg¬«      }t        dg d¢it        ddgg d	¢gg d
¢g d¢g¬«      ¬«      }t	        j
                  ||«       y )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   »   sf   € à€FØ5€DØ�_‰_œX d›^¸¸1°vˆ_Ó>€FäØ	Ò+Ð,ÜØ˜#�J¢Ð-²lÂLÐ5Qô
ô€Hô ×Ñ˜& (Õ+r=   c                 ó&  — |}t        j                  g d¢«      }t        t        j                  j                  d«      j                  d«      |g d¢¬«      }|j                  | «       |j                  | g d¢¬«      }t        j                  ||«       y )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_normalÚto_csvr   r   r   )Ú	temp_filer   r   Úmidxr   r   s         r    Ú%test_no_multi_index_level_names_emptyrx   Ê   sw   € ð €FÜ×!Ñ!Ò"IÓJ€DÜÜ
�	‰	×Ñ˜aÓ ×0Ñ0°Ó8ØÚô€Hð
 ‡O�O�IÔØ�_‰_˜Y²)ˆ_Ó<€FÜ×Ñ˜& (Õ+r=   c                 ó¬  — | }d}t        j                  ddgddg¬«      }t        dg«      }t        dd	gg||¬
«      }|j	                  t        |«      dddg¬«      }t        j                  ||«       t        ddg«      }t        ddgd¬«      }t        ddgddgg||¬
«      }|j	                  t        |«      dd¬«      }t        j                  ||«       y )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ô
 ×!Ñ! :¨|Ð"<ÀUÈEÀNÔS€DÜ
��‹-€CÜ˜1˜a˜&˜¨°dÔ;€Hà�_‰_œX d›^°qÀ!ÀQÀˆ_ÓH€FÜ×Ñ˜& (Ô+ä�S˜%�LÓ!€GÜ
�˜� EÔ
*€CÜ˜3 ˜* s¨C jÐ1¸ÀgÔN€Hà�_‰_œX d›^°uÀQˆ_ÓG€FÜ×Ñ˜& (Õ+r=   c                 ó¤  — |}d}t        t        |dz   «      t        j                  j	                  d«      j                  |dz   «      dœ«      }|j                  | d¬«       |j                  «       5 }|j                  d|«       |j                  | dg¬	«      }d d d «       t        j                  |j                  d
«      «       y # 1 sw Y   Œ/xY w)Néd   r#   r&   ©r/   r0   Fr9   z,pandas.core.algorithms._MINIMUM_COMP_ARR_LENr   r   r/   )r   Úrangerq   rr   rs   rt   ru   ÚcontextÚsetattrr   r   r   r   )rv   r   Úmonkeypatchr   ÚARR_LENÚdfÚmr   s           r    Útest_index_col_large_csvrŒ   ñ   s½   € ð €Fà€GÜ	ä�w ‘{Ó#Ü—‘×&Ñ& qÓ)×9Ñ9¸'ÀA¹+ÓFñ	
ó
€Bð ‡I�Iˆi˜u€IÔ%Ø	×	Ñ	Ó	ð ; !Ø	�	‰	Ð@À'ÔJØ—‘ °q°c�Ó:ˆ÷;ô ×Ñ˜& "§,¡,¨sÓ"3Õ4÷	;ð ;ús   Á1'CÃCc           	      óÚ   — | }|j                  t        d«      ddgd¬«      }t        g t        g «      t	        j
                  ddgddggd	d
g¬«      ¬«      }t        j                  ||«       y )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˜     sy   € ð €FØ�_‰_ÜÐ'Ó(°!°Q°À1ð ó €Fô Ø
Ü�B‹iÜ×&Ñ&Ø�Dˆ\˜D $˜<Ð(°°t°ô
ô€Hô ×Ñ˜& (Õ+r=   c                 ó¦   — | }|j                  t        d«      dgd¬«      }t        g ddgt        g d¬«      ¬«      }t	        j
                  ||«       y )	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š     sT   € ð €FØ�_‰_œX lÓ3¸Q¸CÈ1ˆ_ÓM€FÜØ
Ø�t�Ü�B˜TÔ"ô€Hô
 ×Ñ˜& (Õ+r=   c                 ó¼   — | }|j                  t        d«      ddg¬«      }t        g t        j                  g d¢g d¢g«      ¬«      }t        j                  ||«       y )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œ   $  sX   € ð €FØ�_‰_œXÐ&<Ó=ÀqÈ!Àfˆ_ÓM€FÜØ
”J×*Ñ*Ò,>Ò@RÐ+SÓTô€Hô ×Ñ˜& (Õ+r=   c                 óâ   — | }|j                  t        d«      ddgd¬«      }t        ddggt        j                  ddgdd	ggd
dg¬«      t        dg«      ¬«      }t        j                  ||«       y )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ž   /  s†   € ð €FØ�_‰_ÜÐ5Ó6ÀÀ1¸vÐQRð ó €Fô Ø
�&Ð	ÐÜ×&Ñ&Ø�Dˆ\˜D $˜<Ð(°°t°ô
ô �V�H‹oô€Hô ×Ñ˜& (Õ+r=   c                 ó¾   — | }|j                  t        d«      ddgdgddi¬«      }t        dgdgdœ¬	«      j                  d«      }t	        j
                  ||d
¬«       y )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£   @  sz   € ð €FØ�_‰_Ü�‹Ø�CˆjØ�%Ø�Gˆnð	 ó €Fô ð ðð �ñ	
ô÷ �i�ƒnð ô ×Ñ˜& (¸UÖCr=   z
dtype, valÚ01)Úint64r#   c                 ó>  — d}| }|t         k(  r>|j                  dk(  r/|j                  t        j                  j                  d¬«      «       |j                  t        |«      dd|i¬«      }t        ddgit        |gd|¬	«      ¬
«      }t        j                  ||«       y )Nza,b
01,2r\   z0Cannot disable type-inference for pyarrow enginer]   r/   )r   r¡   r0   r&   )r8   r¡   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©   X  s�   € ð €DØ€FØ”‚˜6Ÿ=™=¨IÒ5Ø×ÑÜ�K‰K×ÑÐ%WÐÓXô	
ð �_‰_œX d›^°sÀ3ÈÀ,ˆ_ÓO€FÜ˜# ˜s˜¬5°#°¸SÈÔ+NÔO€HÜ×Ñ˜& (Õ+r=   c                 óÐ   — | }d}|j                  t        |«      ddgd¬«      }t        j                  g d¢ddg¬«      }t	        g d	¢g|d
g¬«      }t        j                  ||«       y )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°   f  su   € ð €Fð€Dð �_‰_Ü�‹Ø�1ˆvØð ó €Fô
 ×!Ñ!Ú,°S¸#°Jô€Dô š+˜°¸S¸EÔB€HÜ×Ñ˜& (Õ+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   rx   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˜
©U°2¸CÔ-@ÑAÐBØ	
˜˜c˜
©U°2¸CÔ-@ÑAÐBØ	˜3 ˜*©u°R¸cÔ/BÑCÐDØ	˜3 ˜*©u°R¸cÔ/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=   