1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
U
­ý°dÅã @sdZddlmZddlmZddlZddlZddlmZddl    m
Z
m Z ddl m Zej d¡Zej deed    ƒƒd    g¡d
d „ƒZd d „Zdd„Zej ddddgie
dddgdddggdddgdfdddgdœe
ddd ggd!d"d#gdfd$dddgdœe
d%d&ggd'd(gdfg¡d)d*„ƒZd+d,„Zej d-d.dd/dgdd0dggfd1dd2dgdd3dggfd4dd5dgdd6dggfg¡d7d8„ƒZej d9d:d;d<g¡d=d>„ƒZd?d@„Zej dAie
dBddCgiƒfddDgdEœe
dDddCgiƒfg¡dFdG„ƒZdHdI„ZdJdK„ZdLdM„Z dNdO„Z!dS)Pzj
Tests that skipped rows are properly handled during
parsing for all of the parsers defined in parsers.py
é)Údatetime)ÚStringION)ÚEmptyDataError)Ú    DataFrameÚIndexZ pyarrow_skipÚskiprowsécCs||}d}|jt|ƒ|dddd}ttdddƒtdddƒtdddƒgdd    }tt d
d ¡ d ¡dddg|d }t     ||¡dS)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
rT©rÚheaderZ    index_colZ parse_dateséÐééé©Únameçð?ç$@©rr©ÚcolumnsÚindex©
Úread_csvrrrrÚnpZarangeZreshapeÚtmÚassert_frame_equal)Ú all_parsersrÚparserÚtextÚresultrÚexpected©r!ú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/test_skiprows.pyÚtest_skip_rows_bugs&
ÿ ÿÿr#cCsl|}dd dd„tdƒDƒ¡}dd dd„dDƒ¡}|jt|ƒdd    gd
}| t|ƒ¡}t ||¡dS) Nza,b,c
Ú
c    Ss0g|](}d t|ƒt|dƒt|dƒg¡‘qS©ú,r r ©ÚjoinÚstr©Ú.0Úir!r!r"Ú
<listcomp>7sz'test_deep_skip_rows.<locals>.<listcomp>é
c    Ss0g|](}d t|ƒt|dƒt|dƒg¡‘qSr%r'r*r!r!r"r-:s)rr r réréé    rr0©r)r(Úrangerrrr)rrÚdataZcondensed_datarZcondensed_resultr!r!r"Útest_deep_skip_rows3sÿ ÿr5cCs||}d}|jt|ƒddddd}ttdddƒtdddƒtddd    ƒgdd
}tt d d ¡ d ¡ddd    g|d}t     ||¡dS)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
rrTr    r r r rrrrrrr)rrrr4rr r!r!r"Útest_skip_rows_blankBs&
ÿ ÿÿr6zdata,kwargs,expectedzKid,text,num_lines
1,"line 11
line 12",2
2,"line 21
line 22",2
3,"line 31",1r r zline 21
line 22rzline 31ÚidrÚ    num_lines©rz+a,b,c
~a
 b~,~e
 d~,~f
 f~
1,2,~12
 13
 14~ú~)Ú    quotecharrza
 bze
 dzf
 fÚaÚbÚczdText,url
~example
 sentence
 one~,url1
~example
 sentence
 two~,url2
~example
 sentence
 three~,url3zexample
 sentence
 twoÚurl2ÚTextÚurlcCs&|}|jt|ƒf|Ž}t ||¡dS)N©rrrr)rr4Úkwargsr rrr!r!r"Útest_skip_row_with_newline\s#rDcCsR|}d}dddgdddgg}t|ddd    gd
}|jt|ƒdgd }t ||¡dS) NzYid,text,num_lines
1,"line '11' line 12",2
2,"line '21' line 22",2
3,"line '31' line 32",1r zline '21' line 22rzline '31' line 32r r7rr8r9r2©rrrrr)rrr4Úexp_datar rr!r!r"Útest_skip_row_with_quote„s rGz data,exp_dataz\id,text,num_lines
1,"line 
'11' line 12",2
2,"line 
'21' line 22",2
3,"line 
'31' line 32",1zline 
'21' line 22zline 
'31' line 32z\id,text,num_lines
1,"line '11
' line 12",2
2,"line '21
' line 22",2
3,"line '31
' line 32",1zline '21
' line 22zline '31
' line 32zbid,text,num_lines
1,"line '11
'      line 12",2
2,"line '21
'      line 22",2
3,"line '31
'      line 32",1zline '21
'      line 22zline '31
'      line 32cCs:|}|jt|ƒdgd}t|dddgd}t ||¡dS)Nr r2r7rr8r9©rrrrr)rr4rFrrr r!r!r"Ú$test_skip_row_with_newline_and_quote“srIÚlineterminatorr$z
ú c    Cs¸|}d ddddg¡}tdddd    d
gdd d d
d gddddd
ggdddddgd}|jdkr||dkr|tjjdd}|j |¡| d|¡}|j    t
|ƒdddddddgd}t   ||¡dS)Nr$zSMOSMANIA ThetaProbe-ML2X z2007/01/01 01:00   0.2140 U M z2007/01/01 02:00   0.2141 M O z2007/01/01 04:00   0.2142 D M z
2007/01/01z01:00g1¬ZdË?ÚUÚMz02:00gºk    ù gË?ÚOz04:00gBÏfÕçjË?ÚDÚdateÚtimeÚvarÚflagZoflagr9ÚpythonrKz+'CR' not respect with the Python parser yet)Úreasonr T)rZdelim_whitespaceÚnames) r(rZengineÚpytestÚmarkZxfailÚnodeZ
add_markerÚreplacerrrr)rrJÚrequestrr4r rXrr!r!r"Útest_skiprows_lineterminator¶s4üÿ   ý ú       ür\cCs8|}d}tddgiƒ}|jt|ƒdd}t ||¡dS)Nz    a"
b"
a
1r<r r r2rE©rrr4r rr!r!r"Útest_skiprows_infield_quoteÛs
r^zkwargs,expectedÚ1éZfoo)r
rVcCs6|}d}|jt|ƒfddd„i|—Ž}t ||¡dS)Nú a
1
2
3
4
5rcSs |ddkS)Nr rr!©Úxr!r!r"Ú<lambda>ðóz)test_skip_rows_callable.<locals>.<lambda>rB)rrCr rr4rr!r!r"Útest_skip_rows_callableåsrfcCsD|}d}tddgddggƒ}|jt|ƒddd„d}t ||¡dS)    Nz0,a
1,b
2,c
3,d
4,er r=rÚdcSs|dkS)N)r rr!rbr!r!r"rdúrez0test_skip_rows_callable_not_in.<locals>.<lambda>)r
rrEr]r!r!r"Útest_skip_rows_callable_not_inôsÿrhc    Cs@|}d}d}tjt|d|jt|ƒdd„dW5QRXdS)NrazNo columns to parse from file©ÚmatchcSsdS)NTr!rbr!r!r"rdrez)test_skip_rows_skip_all.<locals>.<lambda>r2)rWÚraisesrrr)rrr4Úmsgr!r!r"Útest_skip_rows_skip_allÿs
rmc    Cs@d}|}d}tjt|d|jt|ƒdd„dW5QRXdS)Nzby zeroraricSsddS)Nr rr!rbr!r!r"rdrez-test_skip_rows_bad_callable.<locals>.<lambda>r2)rWrkÚZeroDivisionErrorrr)rrlrr4r!r!r"Útest_skip_rows_bad_callables
rocCsTd}|}|jt|ƒddddgd}tdddd    d
gd d d ddgdœƒ}t ||¡dS)Nz$a,b
1,a
2,b
3,c
4,d
5,e
6,f
7,g
8,h
r`r r/r)Znrowsrr rér0r<r>ÚeÚgÚh)r<r=rH)rr4rrr r!r!r"Útest_skip_rows_and_n_rowss
 
"rt)"Ú__doc__rÚiorÚnumpyrrWZ pandas.errorsrZpandasrrZpandas._testingZ_testingrrXZ usefixturesZ
pytestmarkZ parametrizeÚlistr3r#r5r6rDrGrIr\r^rfrhrmrortr!r!r!r"Ú<module>s€     
þø
ý øíþ!
ûûûñþ
    ÿ
"
þþ