Ë
    ¤ehí,  ã                   óÂ  — 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	            úc/var/www/skyplay_api_hub/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<   4   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?   F   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   P   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   b   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                  |dgz   «      }|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�KÐ#DÐ"EÑ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                 óx  — | }t        j                  g d¢«      }t        t        j                  j                  d«      j                  d«      |g d¢¬«      }t        j                  «       5 }|j                  |«       |j                  |g d¢¬«      }d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)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ÓJ€DÜÜ
�	‰	×Ñ˜aÓ ×0Ñ0°Ó8ØÚô€Hô
 
�‰Ó	ð <˜dØ�‰˜ÔØ—‘ ²�Ó;ˆ÷<ô ×Ñ˜& (Õ+÷<ð <ús   Á*'B0Â0B9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œ«      }t        j                  «       5 }|j                  |d¬«       |j                  «       5 }|j                  d|«       |j                  |dg¬	«      }d d d «       d d d «       t        j                  |j                  d
«      «       y # 1 sw Y   Œ7xY w# 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   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Ø�I‰IÐDÀgÔNØ—_‘_ T°a°S�_Ó9ˆF÷	:÷:ô ×Ñ˜& "§,¡,¨sÓ"3Õ4÷		:ð 	:ú÷:ð :ús$   Á"$C/Â'C#Â-C/Ã#C,	Ã(C/Ã/C8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Ÿ   0  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¤   A  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&   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Ø×ÑÜ�K‰K×ÑÐ%WÐÓXô	
ð �_‰_œX d›^°sÀ3ÈÀ,ˆ_ÓO€FÜ˜# ˜s˜¬5°#°¸SÔ+AÔB€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±   g  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   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˜
©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=   