Ë
    ¤ehñ$  ã                   óð  — 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 ddlmZ ej                  j!                  d«      Zej                  j%                  d«      Zeej                  j)                  d	 e ed
«      «      d
g«      d„ «       «       Zed„ «       Zed„ «       Zej                  j)                  ddd	dgi e
g d¢g d¢gg d¢¬«      fdddgdœ e
g d¢gg d¢¬«      fddddgdœ e
ddggdd g¬«      fg«      ed!„ «       «       Zed"„ «       Zej                  j)                  d#d$g d%¢g d&¢gfd'g d(¢g d)¢gfd*g d+¢g d,¢gfg«      ed-„ «       «       Zeej                  j)                  d.g d/¢«      d0„ «       «       Zed1„ «       Zeej                  j)                  d2i  e
d3dd4gi«      fdd5gd6œ e
d5dd4gi«      fg«      d7„ «       «       Zed8„ «       Z ed9„ «       Z!ed:„ «       Z"ed;„ «       Z#ed<„ «       Z$y)=zj
Tests that skipped rows are properly handled during
parsing for all of the parsers defined in parsers.py
é    )Údatetime)ÚStringION)ÚEmptyDataError)Ú	DataFrameÚIndexÚpyarrow_xfailz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚskiprowsé   c           	      ó>  — | }d}|j                  t        |«      |d dd¬«      }t        t        ddd«      t        ddd«      t        ddd«      gd¬	«      }t	        t        j                  d
d«      j                  d«      g d¢|¬«      }t        j                  ||«       y )Nzr#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
1/1/2000,1.,2.,3.
1/2/2000,4,5,6
1/3/2000,7,8,9
r   T©r	   ÚheaderÚ	index_colÚparse_dateséÐ  é   é   é   ©Únameç      ð?ç      $@©r   r   ©r   r   r   ©ÚcolumnsÚindex©
Úread_csvr   r   r   r   ÚnpÚarangeÚreshapeÚtmÚassert_frame_equal)Úall_parsersr	   ÚparserÚtextÚresultr   Úexpecteds          úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_skiprows.pyÚtest_skip_rows_bugr*      s¤   € ð €Fð	€Dð �_‰_Ü�‹ °$À!ÐQUð ó €Fô Ü	�$˜˜1Ó	œx¨¨a°Ó3´X¸dÀAÀqÓ5IÐJÐQRô€Eô Ü
�	‰	�#�tÓ×$Ñ$ VÓ,²iÀuô€Hô ×Ñ˜& (Õ+ó    c                 ó  — | }ddj                  t        d«      D �cg c]7  }dj                  t        |«      t        |dz   «      t        |dz   «      g«      ‘Œ9 c}«      z   }ddj                  dD �cg c]7  }dj                  t        |«      t        |dz   «      t        |dz   «      g«      ‘Œ9 c}«      z   }|j                  t	        |«      dd	g¬
«      }|j                  t	        |«      «      }t        j                  ||«       y c c}w c c}w )Nza,b,c
ú
é
   ú,r   r   )r   r   r   r   é   r
   é   é	   r
   r1   ©r	   )ÚjoinÚrangeÚstrr   r   r"   r#   )r$   r%   ÚiÚdataÚcondensed_datar'   Úcondensed_results          r)   Útest_deep_skip_rowsr;   6   sê   € ð €FØ�t—y‘yÜ=BÀ2»YÖG¸ˆ�‰”3�q“6œ3˜q 1™u›:¤s¨1¨q©5£zÐ2Õ	3ÒGóñ €Dð  §¡Ø=UÖV¸ˆ�‰”3�q“6œ3˜q 1™u›:¤s¨1¨q©5£zÐ2Õ	3ÒVó"ñ €Nð �_‰_œX d›^°q¸!°fˆ_Ó=€FØ—‘¤x°Ó'?Ó@ÐÜ×Ñ˜&Ð"2Õ3ùò 	Hùò 	Ws   œ<D
Á1<D

c           	      ó>  — | }d}|j                  t        |«      dd dd¬«      }t        t        ddd«      t        ddd«      t        ddd	«      gd¬
«      }t	        t        j                  dd«      j                  d«      g d¢|¬«      }t        j                  ||«       y )Nz^#foo,a,b,c
#foo,a,b,c

#foo,a,b,c
#foo,a,b,c

1/1/2000,1.,2.,3.
1/2/2000,4,5,6
1/3/2000,7,8,9
r
   r   Tr   r   r   r   r   r   r   r   r   r   r   r   )r$   r%   r&   r8   r   r(   s         r)   Útest_skip_rows_blankr=   F   s£   € ð €Fð	€Dð �?‰?Ü�‹ ¨4¸1È$ð ó €Dô Ü	�$˜˜1Ó	œx¨¨a°Ó3´X¸dÀAÀqÓ5IÐJÐQRô€Eô Ü
�	‰	�#�tÓ×$Ñ$ VÓ,²iÀuô€Hô ×Ñ˜$ Õ)r+   zdata,kwargs,expectedzKid,text,num_lines
1,"line 11
line 12",2
2,"line 21
line 22",2
3,"line 31",1r   )r   zline 21
line 22r   )r   zline 31r   ©Úidr&   Ú	num_lines©r   z+a,b,c
~a
 b~,~e
 d~,~f
 f~
1,2,~12
 13
 14~ú~r   )Ú	quotecharr	   )za
 bze
 dzf
 f)ÚaÚbÚczdText,url
~example
 sentence
 one~,url1
~example
 sentence
 two~,url2
~example
 sentence
 three~,url3r   zexample
 sentence
 twoÚurl2ÚTextÚurlc                 ól   — | } |j                   t        |«      fi |¤Ž}t        j                  ||«       y )N©r   r   r"   r#   )r$   r8   Úkwargsr(   r%   r'   s         r)   Útest_skip_row_with_newlinerM   a   s3   € ðH €FØˆV�_‰_œX d›^Ñ6¨vÑ6€FÜ×Ñ˜& (Õ+r+   c                 ó    — | }d}g d¢g d¢g}t        |g d¢¬«      }|j                  t        |«      dg¬«      }t        j                  ||«       y )NzYid,text,num_lines
1,"line '11' line 12",2
2,"line '21' line 22",2
3,"line '31' line 32",1)r   zline '21' line 22r   )r   zline '31' line 32r   r>   rA   r   r3   ©r   r   r   r"   r#   )r$   r%   r8   Úexp_datar(   r'   s         r)   Útest_skip_row_with_quoterQ   Š   sR   € ð €Fð€Dò
 ,Ò-HÐI€HÜ˜Ò+FÔG€Hà�_‰_œX d›^°q°cˆ_Ó:€FÜ×Ñ˜& (Õ+r+   zdata,exp_dataz\id,text,num_lines
1,"line 
'11' line 12",2
2,"line 
'21' line 22",2
3,"line 
'31' line 32",1)r   zline 
'21' line 22r   )r   zline 
'31' line 32r   z\id,text,num_lines
1,"line '11
' line 12",2
2,"line '21
' line 22",2
3,"line '31
' line 32",1)r   zline '21
' line 22r   )r   zline '31
' line 32r   zbid,text,num_lines
1,"line '11
' 	line 12",2
2,"line '21
' 	line 22",2
3,"line '31
' 	line 32",1)r   zline '21
' 	line 22r   )r   zline '31
' 	line 32r   c                 óŒ   — | }|j                  t        |«      dg¬«      }t        |g d¢¬«      }t        j                  ||«       y )Nr   r3   r>   rA   ©r   r   r   r"   r#   )r$   r8   rP   r%   r'   r(   s         r)   Ú$test_skip_row_with_newline_and_quoterT   š   s>   € ð: €FØ�_‰_œX d›^°q°cˆ_Ó:€Fä˜Ò+FÔG€HÜ×Ñ˜& (Õ+r+   Úlineterminator)r-   z
úc                 óÞ  — | }dj                  g d¢«      }t        g d¢g d¢g d¢gg d¢¬«      }|j                  dk(  r6|d	k(  r1t        j                  j                  d
¬«      }|j                  |«       |j                  d|«      }d}t        j                  t        |d¬«      5  |j                  t        |«      ddg d¢¬«      }d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)Nr-   )zSMOSMANIA ThetaProbe-ML2X z2007/01/01 01:00   0.2140 U M z2007/01/01 02:00   0.2141 M O z2007/01/01 04:00   0.2142 D M )ú
2007/01/01z01:00g1¬ZdË?ÚUÚM)rX   z02:00gºk	ù gË?rZ   ÚO)rX   z04:00gBÏfÕçjË?ÚDrZ   )ÚdateÚtimeÚvarÚflagÚoflagrA   ÚpythonrV   z+'CR' not respect with the Python parser yet)Úreasonz;The 'delim_whitespace' keyword in pd.read_csv is deprecatedF)ÚmatchÚcheck_stacklevelr   T)r	   Údelim_whitespaceÚnames)r4   r   ÚengineÚpytestÚmarkÚxfailÚapplymarkerÚreplacer"   Úassert_produces_warningÚFutureWarningr   r   r#   )	r$   rU   Úrequestr%   r8   r(   rj   Údepr_msgr'   s	            r)   Útest_skiprows_lineterminatorrr   ¾   sì   € ð €FØ�9‰9ò	
ó€Dô â5Ú5Ú5ð	
ò
 9ô€Hð ‡}�}˜Ò  ^°tÒ%;Ü�{‰{× Ñ Ð(UÐ ÓVˆØ×Ñ˜DÔ!à�<‰<˜˜nÓ-€DàL€HÜ	×	#Ñ	#Ü˜X¸ô
ñ 
ð —‘Ü�T‹NØØ!Ú:ð	 !ó 
ˆ÷
ô ×Ñ˜& (Õ+÷
ð 
ús   Â#!C#Ã#C,c                 óŒ   — | }d}t        ddgi«      }|j                  t        |«      d¬«      }t        j                  ||«       y )Nz	a"
b"
a
1rD   r   r   r3   rO   ©r$   r%   r8   r(   r'   s        r)   Útest_skiprows_infield_quoteru   é   sD   € ð €FØ€DÜ˜# ˜s˜Ó$€Hà�_‰_œX d›^°aˆ_Ó8€FÜ×Ñ˜& (Õ+r+   zkwargs,expectedÚ1é   Úfoo)r   rg   c                 óv   — | }d} |j                   t        |«      fdd„ i|¤Ž}t        j                  ||«       y )Núa
1
2
3
4
5r	   c                 ó   — | dz  dk(  S )Nr   r   © ©Úxs    r)   ú<lambda>z)test_skip_rows_callable.<locals>.<lambda>   s   € ÀÀAÁÈÁ
€ r+   rK   )r$   rL   r(   r%   r8   r'   s         r)   Útest_skip_rows_callabler€   ô   s=   € ð €FØ€DàˆV�_‰_œX d›^ÑUÑ6JÐUÈfÑU€FÜ×Ñ˜& (Õ+r+   c                 ó–   — | }d}t        ddgddgg«      }|j                  t        |«      d d„ ¬«      }t        j                  ||«       y )Nz0,a
1,b
2,c
3,d
4,er   rE   r   Údc                 ó
   — | dvS )N)r   r   r|   r}   s    r)   r   z0test_skip_rows_callable_not_in.<locals>.<lambda>  s
   € ¸À¸€ r+   )r   r	   rO   rt   s        r)   Útest_skip_rows_callable_not_inr„     sT   € à€FØ$€DÜ˜1˜c˜( Q¨ HÐ-Ó.€Hà�_‰_Ü�‹˜tÑ.Gð ó €Fô ×Ñ˜& (Õ+r+   c                 óª   — | }d}d}t        j                  t        |¬«      5  |j                  t	        |«      d„ ¬«       d d d «       y # 1 sw Y   y xY w)Nrz   zNo columns to parse from file©rd   c                  ó   — y)NTr|   r}   s    r)   r   z)test_skip_rows_skip_all.<locals>.<lambda>  s   � r+   r3   )ri   Úraisesr   r   r   )r$   r%   r8   Úmsgs       r)   Útest_skip_rows_skip_allrŠ     sL   € à€FØ€DØ
)€Cä	�‰”~¨SÔ	1ñ AØ�‰œ ›±ˆÔ@÷A÷ Añ Aúó   ¢A	Á	Ac                 óª   — d}| }d}t        j                  t        |¬«      5  |j                  t	        |«      d„ ¬«       d d d «       y # 1 sw Y   y xY w)Nzby zerorz   r†   c                 ó   — ddz  S )Nr   r   r|   r}   s    r)   r   z-test_skip_rows_bad_callable.<locals>.<lambda>!  s
   € ¸1¸q¹5€ r+   r3   )ri   rˆ   ÚZeroDivisionErrorr   r   )r$   r‰   r%   r8   s       r)   Útest_skip_rows_bad_callabler�     sM   € à
€CØ€FØ€Dä	�‰Ô(°Ô	4ñ BØ�‰œ ›±ˆÔA÷B÷ Bñ Búr‹   c                 óš   — d}| }|j                  t        |«      dg d¢¬«      }t        g d¢g d¢dœ«      }t        j                  ||«       y )Nz$a,b
1,a
2,b
3,c
4,d
5,e
6,f
7,g
8,h
rw   )r   r0   r
   )Únrowsr	   )r   r   rw   é   r1   )rD   rF   ÚeÚgÚh)rD   rE   rS   )r$   r8   r%   r'   r(   s        r)   Útest_skip_rows_and_n_rowsr–   $  sH   € ð	€Dð €FØ�_‰_œX d›^°1ºyˆ_ÓI€FÜšÒ5NÑOÓP€HÜ×Ñ˜& (Õ+r+   c                 ó
  — d}| }|j                  t        |«      |d„ d¬«      }t        |«      }t        |«      }t        j                  |t        dg d¢i«      «       t        j                  |t        dg d¢ig d¢¬	«      «       y )
Nz%col_a
10
20
30
40
50
60
70
80
90
100
c                 ó
   — | dv S )N)r   r0   rw   r|   r}   s    r)   r   z,test_skip_rows_with_chunks.<locals>.<lambda>H  s
   € ¸!¸y¸.€ r+   r0   )rh   r	   Ú	chunksizeÚcol_a)é   é   é<   éF   )éP   éZ   éd   )r0   rw   r
   )r   )r   r   Únextr"   r#   r   )r$   r8   r%   ÚreaderÚdf1Údf2s         r)   Útest_skip_rows_with_chunksr¦   7  s}   € ð€Dð €FØ�_‰_Ü�‹˜vÑ0HÐTUð ó €Fô ˆv‹,€CÜ
ˆv‹,€Cä×Ñ˜#œy¨'Ò3CÐ)DÓEÔFÜ×Ñ˜#œy¨'²=Ð)AÊÔSÕTr+   )%Ú__doc__r   Úior   Únumpyr   ri   Úpandas.errorsr   Úpandasr   r   Úpandas._testingÚ_testingr"   rj   ÚusefixturesÚxfail_pyarrowÚfilterwarningsÚ
pytestmarkÚparametrizeÚlistr5   r*   r;   r=   rM   rQ   rT   rr   ru   r€   r„   rŠ   r�   r–   r¦   r|   r+   r)   ú<module>r´      s  ðñõ
 Ý ã Û å (÷õ à—‘×'Ñ'¨Ó8€Ø�[‰[×'Ñ'ØCó€
ð
 Ø‡�×Ñ˜¡d©5°«8£n°aÐ%8Ó9ñ,ó :ó ð,ð4 ñ4ó ð4ð ñ*ó ð*ð4 ‡�×ÑØðð ˜!˜ÐÙÚ+Ò->Ð?Ú3ôð	
ð AØ¨A¨3Ñ/ÙÒ2Ð3º_ÔMð	
ð3ð
 ¨A¨q¨6Ñ2ÙÐ2°FÐ;Ð<ÀvÈuÀoÔVð		
ð'ó ðB ñ,ó óC ðD,ð ñ,ó ð,ð ‡�×ÑØðò +Ò,IÐJð	
ðò +Ò,IÐJð	
ð!ò /Ò0QÐRð	
ðóð4 ñ,ó ó5ð6,ð Ø‡�×ÑØÒ*óñ$,óó ð$,ðN ñ,ó ð,ð Ø‡�×ÑØà	‰Y˜˜a ˜V�}Ó%Ð&Ø  Ñ	(©)°U¸QÀ¸F°OÓ*DÐEðóñ,óó ð,ð ñ,ó ð,ð ñAó ðAð ñBó ðBð ñ,ó ð,ð$ ñUó ñUr+   