
    A>ii$                        S r SSKJr  SSKJr  SSKrSSKrSSKJr  SSK	J
r
Jr  SSKJr  \R                  R!                  S5      r\R                  R%                  S5      r\\R                  R)                  S	\" \" S
5      5      S
/5      S 5       5       r\S 5       r\S 5       r\R                  R)                  SSS	S/0\
" / SQ/ SQ// SQS94SSS/S.\
" / SQ// SQS94SSSS/S.\
" SS//SS /S94/5      \S! 5       5       r\S" 5       r\R                  R)                  S#S$/ S%Q/ S&Q/4S'/ S(Q/ S)Q/4S*/ S+Q/ S,Q/4/5      \S- 5       5       r\\R                  R)                  S./ S/Q5      S0 5       5       r\S1 5       r\\R                  R)                  S20 S34SS4/S5.S44/5      S6 5       5       r\S7 5       r \S8 5       r!\S9 5       r"\S: 5       r#\S; 5       r$g)<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           	      0   U nSnUR                  [        U5      US SSS9n[        [        SSS5      [        SSS5      [        SSS5      /S	SS
9n[	        [
        R                  " SS5      R                  S5      / SQUS9n[        R                  " XF5        g )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           M8[us]dtype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          c/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/parser/test_skiprows.pytest_skip_rows_bugr,      s     F	D __$!QU  F 	$1	xa3XdAq5IJE 
		#t$$V,iuH &+    c                 $   U nSSR                  [        S5       Vs/ s H8  nSR                  [        U5      [        US-   5      [        US-   5      /5      PM:     sn5      -   nSSR                  S Vs/ s H8  nSR                  [        U5      [        US-   5      [        US-   5      /5      PM:     sn5      -   nUR                  [	        U5      SS	/S
9nUR                  [	        U5      5      n[
        R                  " XV5        g s  snf s  snf )Nza,b,c


   ,r   r   )r   r   r   r      r
      	   r
   r3   r	   )joinrangestrr    r   r$   r%   )r&   r'   idatacondensed_datar)   condensed_results          r+   test_deep_skip_rowsr=   8   s     Ftyy=B2YGY3q63q1u:s1q5z2	3YG D =UV=U3q63q1u:s1q5z2	3=UV" N __Xd^q!f_=Fx'?@&3 	H 	Ws   ?D
4?D
c           	      0   U nSnUR                  [        U5      SS SSS9n[        [        SSS5      [        SSS5      [        SSS	5      /S
SS9n[	        [
        R                  " SS5      R                  S5      / SQUS9n[        R                  " X55        g )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'   r(   r:   r   r*   s         r+   test_skip_rows_blankr?   H   s     F	D ??41$  D 	$1	xa3XdAq5IJE 
		#t$$V,iu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    U nUR                   " [        U5      40 UD6n[        R                  " XS5        g )N)r    r   r$   r%   )r&   r:   kwargsr*   r'   r)   s         r+   test_skip_row_with_newlinerN   e   s/    H F__Xd^6v6F&+r-   c                     U nSn/ SQ/ SQ/n[        U/ SQS9nUR                  [        U5      S/S9n[        R                  " XT5        g )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@   rC   r   r5   r   r    r   r$   r%   )r&   r'   r:   exp_datar*   r)   s         r+   test_skip_row_with_quoterR      sP     FD
 ,-HIH+FGH__Xd^qc_: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                     U nUR                  [        U5      S/S9n[        U/ SQS9n[        R                  " XE5        g )Nr   r5   r@   rC   r    r   r   r$   r%   )r&   r:   rQ   r'   r)   r*   s         r+   $test_skip_row_with_newline_and_quoterU      s<    : F__Xd^qc_:F+FGH&+r-   lineterminator)r/   z
c                 j   U nSR                  / SQ5      n[        / SQ/ SQ/ SQ// SQS9nUR                  S:X  a4  US	:X  a.  [        R                  R                  S
S9nUR                  U5        UR                  SU5      nUR                  [        U5      SS/ SQS9n[        R                  " Xu5        g )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)rY   z02:00gk	g?r[   O)rY   z04:00gBfj?Dr[   )datetimevarflagoflagrC   pythonrW   z+'CR' not respect with the Python parser yet)reasonr   z\s+)r	   sepnames)r6   r   enginepytestmarkxfailapplymarkerreplacer    r   r$   r%   )r&   rV   requestr'   r:   r*   ri   r)   s           r+   test_skiprows_lineterminatorrn      s     F99	
D 555	

 9H }} ^t%;{{  (U VD!<<n-D__6	  F &+r-   c                     U nSn[        SS/05      nUR                  [        U5      SS9n[        R                  " XC5        g )Nz	a"
b"
a
1rF   r   r   r5   rP   r&   r'   r:   r*   r)   s        r+   test_skiprows_infield_quoterq      sB     FD#s$H__Xd^a_8F&+r-   zkwargs,expected1foo)r   rf   c                     U nSnUR                   " [        U5      4SS 0UD6n[        USS/05      n[        R                  " XR5        g )Na
1
2
3
4
5r	   c                     U S-  S:H  $ )Nr   r    xs    r+   <lambda>)test_skip_rows_callable.<locals>.<lambda>  s    A
r-   r      rT   )r&   rM   r*   r'   r:   r)   s         r+   test_skip_rows_callabler}      sL     FD__Xd^U6JUfUF(QF+,H&+r-   c                     U nSn[        SS/SS//5      nUR                  [        U5      S S S9n[        R                  " XC5        g )Nz0,a
1,b
2,c
3,d
4,er   rG   r   dc                     U S;  $ )N)r   r   rw   rx   s    r+   rz   0test_skip_rows_callable_not_in.<locals>.<lambda>  s    r-   )r   r	   rP   rp   s        r+   test_skip_rows_callable_not_inr     sR    F$D1c(QH-.H__t.G  F &+r-   c                     U nSnSn[         R                  " [        US9   UR                  [	        U5      S S9  S S S 5        g ! , (       d  f       g = f)Nru   zNo columns to parse from filematchc                     g)NTrw   rx   s    r+   rz   )test_skip_rows_skip_all.<locals>.<lambda>  s    4r-   r5   )rh   raisesr   r    r   )r&   r'   r:   msgs       r+   test_skip_rows_skip_allr     s?    FD
)C	~S	1@ 
2	1	1   A
Ac                     SnU nSn[         R                  " [        US9   UR                  [	        U5      S S9  S S S 5        g ! , (       d  f       g = f)Nzby zeroru   r   c                     SS-  $ )Nr   r   rw   rx   s    r+   rz   -test_skip_rows_bad_callable.<locals>.<lambda>#  s    1q5r-   r5   )rh   r   ZeroDivisionErrorr    r   )r&   r   r'   r:   s       r+   test_skip_rows_bad_callabler     s@    
CFD	(	4A 
5	4	4r   c                     SnU nUR                  [        U5      S/ SQS9n[        / SQ/ SQS.5      n[        R                  " X45        g )Nz$a,b
1,a
2,b
3,c
4,d
5,e
6,f
7,g
8,h
r|   )r   r2   r
   )nrowsr	   )r   r   r|      r3   )rF   rH   egh)rF   rG   rT   )r&   r:   r'   r)   r*   s        r+   test_skip_rows_and_n_rowsr   &  sF    	D F__Xd^1y_IF5NOPH&+r-   c                    SnU nUR                  [        U5      US SS9n[        U5      n[        U5      n[        R                  " U[        S/ SQ05      5        [        R                  " U[        S/ SQ0/ SQS	95        g )
Nz%col_a
10
20
30
40
50
60
70
80
90
100
c                     U S;   $ )N)r   r2   r|   rw   rx   s    r+   rz   ,test_skip_rows_with_chunks.<locals>.<lambda>J  s    !y.r-   r2   )rg   r	   	chunksizecol_a)      <   F   )P   Z   d   )r2   r|   r
   )r   )r    r   nextr$   r%   r   )r&   r:   r'   readerdf1df2s         r+   test_skip_rows_with_chunksr   9  s}    D F__v0HTU  F v,C
v,C#y'3C)DEF#y'=)ASTr-   )%__doc__r   ior   numpyr!   rh   pandas.errorsr   pandasr   r   pandas._testing_testingr$   ri   usefixturesxfail_pyarrowfilterwarnings
pytestmarkparametrizelistr7   r,   r=   r?   rN   rR   rU   rn   rq   r}   r   r   r   r   r   rw   r-   r+   <module>r      s  
     ( ''8[[''C

 d58na%89, : ,8 4 4 * *8  !+->?3	
 AA3/23_M	
3
 Aq622F;<vuoV		
' B , C D, , ,  +,IJ	
 +,IJ	
! /0QR	
4 , 56,  ,	 
 ,F , , 	S		(%0, , , , A A B B , ,$ U Ur-   