
    Pii$                     L   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                            d          Zej                            d          Zeej                            d	 e ed
                    d
g          d                         Zed             Zed             Ze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                            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                            d.g d/          d0                         Zed1             Zeej                            d2i d3fdd4gd5d4fg          d6                         Zed7             Z ed8             Z!ed9             Z"ed:             Z#ed;             Z$dS )<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}|                     t          |          |d dd          }t          t          ddd          t          ddd          t          ddd          gd	d
          }t	          t          j        dd                              d          g d|          }t          j	        ||           d S )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          x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/io/parser/test_skiprows.pytest_skip_rows_bugr,      s     F	D __$!QU   F 	$1		xa33XdAq5I5IJ  E 
	#t$$V,,iiiu  H &(+++++    c                 f   | }dd                     d t          d          D                       z   }dd                     d dD                       z   }|                    t          |          ddg	          }|                    t          |                    }t	          j        ||           d S )
Nza,b,c

c           
          g | ]G}d                      t          |          t          |dz             t          |dz             g          HS ,r   r   joinstr.0is     r+   
<listcomp>z'test_deep_skip_rows.<locals>.<listcomp>=   sE    GGG3q663q1u::s1q5zz2	3	3GGGr-   
   c           
          g | ]G}d                      t          |          t          |dz             t          |dz             g          HS r1   r3   r6   s     r+   r9   z'test_deep_skip_rows.<locals>.<listcomp>@   sE    VVV3q663q1u::s1q5zz2	3	3VVVr-   )r   r   r   r      r
      	   r
   r=   r	   )r4   ranger    r   r$   r%   )r&   r'   datacondensed_datar)   condensed_results         r+   test_deep_skip_rowsrD   8   s     FtyyGGU2YYGGG  D VV=UVVV" " N __Xd^^q!f_==Fx'?'?@@&"233333r-   c           	      ~   | }d}|                     t          |          dd dd          }t          t          ddd          t          ddd          t          ddd	          gd
d          }t	          t          j        dd                              d          g d|          }t          j	        ||           d S )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(   rA   r   r*   s         r+   test_skip_rows_blankrF   H   s     F	D ??41$   D 	$1		xa33XdAq5I5IJ  E 
	#t$$V,,iiiu  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                 j    | } |j         t          |          fi |}t          j        ||           d S )N)r    r   r$   r%   )r&   rA   kwargsr*   r'   r)   s         r+   test_skip_row_with_newlinerU   e   sB    H FV_Xd^^66v66F&(+++++r-   c                     | }d}g dg dg}t          |g d          }|                    t          |          dg          }t          j        ||           d S )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   rG   rJ   r   r?   r   r    r   r$   r%   )r&   r'   rA   exp_datar*   r)   s         r+   test_skip_row_with_quoterY      sx     FD
 ,++-H-H-HIH+F+F+FGG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                     | }|                     t          |          dg          }t          |g d          }t          j        ||           d S )Nr   r?   rG   rJ   r    r   r   r$   r%   )r&   rA   rX   r'   r)   r*   s         r+   $test_skip_row_with_newline_and_quoter\      sX    : F__Xd^^qc_::F+F+F+FGGGH&(+++++r-   lineterminator)r/   z
c                    | }d                     g d          }t          g dg dg dgg d          }|j        dk    r;|d	k    r5t          j                            d
          }|                    |           |                    d|          }|                    t          |          ddg d          }t          j        ||           d S )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)r`   z02:00gk	g?rb   O)r`   z04:00gBfj?Drb   )datetimevarflagoflagrJ   pythonr^   z+'CR' not respect with the Python parser yet)reasonr   z\s+)r	   sepnames)r4   r   enginepytestmarkxfailapplymarkerreplacer    r   r$   r%   )r&   r]   requestr'   rA   r*   rp   r)   s           r+   test_skiprows_lineterminatorru      s    F99	
 	
 	
 D 555555555	

 988  H }  ^t%;%;{  (U VVD!!!<<n--D__666	   F &(+++++r-   c                     | }d}t          ddgi          }|                    t          |          d          }t          j        ||           d S )Nz	a"
b"
a
1rM   r   r   r?   rW   r&   r'   rA   r*   r)   s        r+   test_skiprows_infield_quoterx      sU     FD#s$$H__Xd^^a_88F&(+++++r-   zkwargs,expected1foo)r   rm   c                     | }d} |j         t          |          fdd i|}t          |ddgi          }t          j        ||           d S )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-   r      r[   )r&   rT   r*   r'   rA   r)   s         r+   test_skip_rows_callabler      se     FDV_Xd^^UU6J6JUfUUF(QF+,,H&(+++++r-   c                     | }d}t          ddgddgg          }|                    t          |          d d           }t          j        ||           d S )Nz0,a
1,b
2,c
3,d
4,er   rN   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	   rW   rw   s        r+   test_skip_rows_callable_not_inr     sj    F$D1c(QH-..H__t.G.G   F &(+++++r-   c                     | }d}d}t          j        t          |          5  |                    t	          |          d            d d d            d S # 1 swxY w Y   d S )Nr|   zNo columns to parse from filematchc                     dS )NTr~   r   s    r+   r   z)test_skip_rows_skip_all.<locals>.<lambda>  s    4 r-   r?   )ro   raisesr   r    r   )r&   r'   rA   msgs       r+   test_skip_rows_skip_allr     s    FD
)C	~S	1	1	1 A A@@@A A A A A A A A A A A A A A A A A A   &AAAc                     d}| }d}t          j        t          |          5  |                    t	          |          d            d d d            d S # 1 swxY w Y   d S )Nzby zeror|   r   c                     ddz  S )Nr   r   r~   r   s    r+   r   z-test_skip_rows_bad_callable.<locals>.<lambda>#  s
    1q5 r-   r?   )ro   r   ZeroDivisionErrorr    r   )r&   r   r'   rA   s       r+   test_skip_rows_bad_callabler     s    
CFD	(	4	4	4 B BAAAB B B B B B B B B B B B B B B B B Br   c                     d}| }|                     t          |          dg d          }t          g dg dd          }t          j        ||           d S )Nz$a,b
1,a
2,b
3,c
4,d
5,e
6,f
7,g
8,h
r   )r   r<   r
   )nrowsr	   )r   r   r      r=   )rM   rO   egh)rM   rN   r[   )r&   rA   r'   r)   r*   s        r+   test_skip_rows_and_n_rowsr   &  sj    	D F__Xd^^1yyy_IIF5N5N5NOOPPH&(+++++r-   c                 8   d}| }|                     t          |          |d d          }t          |          }t          |          }t          j        |t          dg di                     t          j        |t          dg dig d	                     d S )
Nz%col_a
10
20
30
40
50
60
70
80
90
100
c                 
    | dv S )N)r   r<   r   r~   r   s    r+   r   z,test_skip_rows_with_chunks.<locals>.<lambda>J  s
    !y. r-   r<   )rn   r	   	chunksizecol_a)      <   F   )P   Z   d   )r<   r   r
   )r   )r    r   nextr$   r%   r   )r&   rA   r'   readerdf1df2s         r+   test_skip_rows_with_chunksr   9  s    D F__v0H0HTU   F v,,C
v,,C#y'3C3C3C)DEEFFF#y'===)ASSSTTTTTr-   )%__doc__r   ior   numpyr!   ro   pandas.errorsr   pandasr   r   pandas._testing_testingr$   rp   usefixturesxfail_pyarrowfilterwarnings
pytestmarkparametrizelistr@   r,   rD   rF   rU   rY   r\   ru   rx   r   r   r   r   r   r   r~   r-   r+   <module>r      sf   
                  ( ( ( ( ( (             ''88[''C 

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