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
U
­ý°dM3ã@sdZddlmZddlZddlZddlmZddlm    Z    m
Z
ddl m Z dZdZej d¡Zd    d
„Zej d d d g¡dd„ƒZdd„Zej dddgddgfdddgddgfg¡dd„ƒZdd„Zdd„Zdd„Zej d d!d"g¡d#d$„ƒZej d%ddg¡ej d ddgddgg¡d&d'„ƒƒZd(d)„Zd*d+„Zd,d-„Zd.d/„Z d0d1„Z!d2d3„Z"ej d4ddge    d5d6gd7d8ggd9d:gd;fd:d<ge    d6d=gd8d>ggd:d<gd;fg¡d?d@„ƒZ#dAdB„Z$dCdD„Z%ej d4dEdF„e    dGdHdIdJœdKddLdJœddddJœdMœƒfdNdF„e    e
gƒdOfg¡dPdQ„ƒZ&ej d ddgdRdF„g¡dSdT„ƒZ'ej dUdVdddgdWdie    dXdYdZgdXdYdZgd[d\d]ggƒfd^d_d`dagie    ddbddddcgdddddddegdbdcdddbdbdLgdfœƒfg¡dgdh„ƒZ(ej diddddjgie    ddcgddegdbdLgdddKgdkœƒdfddddlgide )dm¡fdddlgide )dm¡fdddldngide )do¡fddd_d`dadpgdqœe    ddcgddegdbdLgdddKgdrœƒdfd_d`dadlgdd_d`dadpgdqœde )dm¡fd_d`dlgdsd_d`dadpgide )dm¡fg¡dtdu„ƒZ*ej d d_dagddgg¡dvdw„ƒZ+ej dsdddgg¡dxdy„ƒZ,dzd{„Z-d|d}„Z.dS)~z]
Tests the usecols functionality during parsing
for all of the parsers defined in parsers.py
é)ÚStringION)Ú ParserError)Ú    DataFrameÚIndexz['usecols' must either be list-like of all strings, all unicode, all integers or a callable.zAUsecols do not match columns, columns expected but not found: {0}Z pyarrow_skipc    CsBd}dddg}|}tjttd|jt|ƒ|dW5QRXdS)Nz<a,b,c
        1000,2000,3000
        4000,5000,6000
        rÚbé©Úmatch©Úusecols©ÚpytestÚraisesÚ
ValueErrorÚ_msg_validate_usecols_argÚread_csvr)Ú all_parsersÚdatar Úparser©rúhd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/usecols/test_usecols_basic.pyÚ!test_raise_on_mixed_dtype_usecolss
 
rr )ér©rÚccCsRd}|}|jt|ƒ|d}tddgddgddgd    d
ggd d gd }t ||¡dS)Nú a,b,c
1,2,3
4,5,6
7,8,9
10,11,12r
rééééé    é é rr©Úcolumns©rrrÚtmÚassert_frame_equal)rr rrÚresultÚexpectedrrrÚ test_usecols,s
(r*cCs^d}|}ddg}|jt|ƒ|ddgdd}tddgd    d
gd d gd dgg|d}t ||¡dS)NrÚfooÚbarrrr)Únamesr Úheaderrrrrr r!r"r#r%)rrrr-r(r)rrrÚtest_usecols_with_names;s $r/z names,usecolsrrrrÚacCsVd}|}|jt|ƒ|d|d}tddgddgddgd    d
ggd d gd }t ||¡dS)Nú1,2,3
4,5,6
7,8,9
10,11,12©r-r.r rrrrrr r!r"rrr#r%)rr-r rrr(r)rrrÚtest_usecols_relative_to_namesJs
(r3cCs^d}|}|jt|ƒddgdddgd}tddgdd    gd
d gd d ggddgd}t ||¡dS)Nr1r0rrrr2réréré
r!r#r%)rrrr(r)rrrÚtest_usecols_relative_to_names2Zsÿ(r7c    CsFd}|}d}tjt|d"|jt|ƒddgddgdW5QRXdS)Nr1zHNumber of passed names did not match number of header fields in the filerr0rrr2)r rrrr)rrrÚmsgrrrÚ!test_usecols_name_length_conflictjs
r9c    Cs8|}d}tjttd|jt|ƒddW5QRXdS)Nz/foo, bar, baz
1000, 2000, 3000
4000, 5000, 6000rr+r
r )rrrrrrÚtest_usecols_single_stringwsr:rúa,b,c,d
1,2,3,4
5,6,7,8za,b,c,d
1,2,3,4,
5,6,7,8,cCsN|}dddg}tddgddgdd    gd
œƒ}|jt|ƒ|d d }t ||¡dS) Nr0rÚdrrrr5r4r)r0rr<F©r Ú    index_col)rrrr&r')rrrr r)r(rrrÚtest_usecols_index_col_false‚s
 
r?r>cCsL|}d}tdddgitddgddd}|jt|ƒ||d    }t ||¡dS)
Núa,b,c,d
A,a,1,one
B,b,2,tworrrr0r©Úname©Úindexr=)rrrrr&r')rr r>rrr)r(rrrÚtest_usecols_index_col_conflicts
 rEcCs\|}d}tddgddgddœƒ}| ddg¡}|jt|ƒddd    gddgd
}t ||¡dS) Nr@r0rrr)ZoneZtwo)rrr<rr<r=)rZ    set_indexrrr&r')rrrr)r(rrrÚ test_usecols_index_col_conflict2›sÿrFcCsL|}d}|jt|ƒddgd}tddgddgd    œd
d gd }t ||¡dS) Nz%a,b,c
4,apple,bat,5.7
8,orange,cow,10r0rr
ÚappleÚorangeÚbatÚcow©r0rr4rrCr%©rrrr(r)rrrÚtest_usecols_implicit_index_col©s
rMcCsR|}d}|jt|ƒdddgdd}tdgdgdœtd    gdd
d }t ||¡dS) Núa,b,c,d
1,2,3,4
rrr<r=rr4)rr<rrArC©rrrrr&r'rLrrrÚtest_usecols_index_col_middle³s
 rPcCsR|}d}|jt|ƒdddgdd}tdgdgdœtd    gdd
d }t ||¡dS) NrNrrr<r=rrrr4rArCrOrLrrrÚtest_usecols_index_col_end¾s
 rQcCsJ|}d}|jt|ƒddd}tddgddgdœd    d
gd }t ||¡dS) Nú-a  b  c
4  apple  bat  5.7
8  orange  cow  10z\s+rK)Úsepr rGrHrIrJr4rrCr%rLrrrÚtest_usecols_regex_sepÉs
rTcCsJ|}d}|jt|ƒddd}tddgddgdœd    d
gd }t ||¡dS) NrRTrK)Zdelim_whitespacer rGrHrIrJr4rrCr%rLrrrÚtest_usecols_with_whitespaceÓs
rUzusecols,expectedièiÐi iˆÚ2Ú0)rr$Ú1i¸ ipcCs*|}d}|jt|ƒ|d}t ||¡dS)Nz#2,0,1
1000,2000,3000
4000,5000,6000r
©rrr&r')rr r)rrr(rrrÚ%test_usecols_with_integer_like_headerÜs rZcCs:d}ttgƒd}|}|jt|ƒtƒd}t ||¡dS)Nza,b,c
1,2,3
4,5,6r#r
)rrrrÚsetr&r')rrr)rr(rrrÚtest_empty_usecolsòs
r\cCsJ|}d}t ddg¡}tddgg|d}|jt|ƒ|d}t ||¡dS)Nz a,b,c
1,2,3r0rrrr#r
)ÚnpÚarrayrrrr&r')rrrr r)r(rrrÚtest_np_array_usecolsûs r_cCs | ¡dkS)N)ZAAAZBBBZDDD)Úupper©ÚxrrrÚ<lambda>
órcgȇ€­?gõ«$¥åç@gr.Ð- @)rrrrr5)ZAaAZbBbZdddcCsdS)NFrrarrrrcrdr#cCs*d}|}|jt|ƒ|d}t ||¡dS)NzPAaA,bBb,CCC,ddd
0.056674973,8,True,a
2.613230982,2,False,b
3.568935038,7,False,ar
rY)rr r)rrr(rrrÚtest_callable_usecolssrecCs|dkS)N©r0rrrarrrrc&rdcCsNd}|}dddg}tddgtjdgdœƒ}|jt|ƒ||d}t ||¡dS)    Nz    1,2
1,2,3r0rrrrrf)r-r )rr]Únanrrr&r')rr rrr-r)r(rrrÚtest_incomplete_first_row&s 
rhzdata,usecols,kwargs,expectedz19,29,39
19,29,39
10,20,30,40r.ééé'r6ééz4A,B,C
1,2,3
3,4,5
1,2,4,5,1,6
1,2,3,,,1,
1,2,3
5,6,7ÚAÚBÚCrrr4r)rnrorpcCs.|}|jt|ƒfd|i|—Ž}t ||¡dS)Nr rY)rrr Úkwargsr)rr(rrrÚtest_uneven_length_cols2srrzusecols,kwargs,expected,msgr<)r0rrr<Úfz\['f'\]Úgz\[('f', 'g'|'g', 'f')\]ÚD)r.r-)rnrorprur-c    Csld}|j|d|}|dkrJtjt|d|jt|ƒf|ŽW5QRXn|jt|ƒf|Ž}t ||¡dS)Nr;r
r)Úupdater rrrrr&r')rr rqr)r8rrr(rrrÚ%test_raises_on_usecols_names_mismatchRs, rwcCsPd}ddddg}|}|jt|ƒd||d}tdd    gd
d gd œƒ}t ||¡dS) Nr;rnrorprur)r.r-r rrrr5)rnrpr%)rr rr-rr(r)rrrÚ/test_usecols_subset_names_mismatch_orig_columnsŠs  rxc    Cs@|}d}tjtdd |jt|ƒddg|ddW5QRXdS)Nz
a,b
1,2
    z"Defining usecols without of boundsrrr)r r-r.)r rrrr)rr-rrrrrÚ"test_usecols_indices_out_of_bounds•srycCs@|}dd„}|jtdƒd|d}tdgddœƒ}t ||¡dS)    NcSs | ¡dkS)N)r0rr©Ústrip©r.rrrrc¤rdz1test_usecols_additional_columns.<locals>.<lambda>z    a,b
x,y,zF©r>r rbÚyrKr%©rrr r(r)rrrÚtest_usecols_additional_columns¡s
r€cCs@|}dd„}|jtdƒd|d}tdgddœƒ}t ||¡dS)    NcSs | ¡dkS)N©rWrXrzr|rrrrc­rdzAtest_usecols_additional_columns_integer_columns.<locals>.<lambda>z    0,1
x,y,zFr}rbr~rr%rrrrÚ/test_usecols_additional_columns_integer_columnsªs
r‚)/Ú__doc__ÚiorÚnumpyr]r Z pandas.errorsrZpandasrrZpandas._testingZ_testingr&rZ_msg_validate_usecols_namesÚmarkZ usefixturesZ
pytestmarkrZ parametrizer*r/r3r7r9r:r?rErFrMrPrQrTrUrZr\r_rerhrrÚformatrwrxryr€r‚rrrrÚ<module>s   ÿÿ  
 ÿ
  ÿ
 
 
 
 
    "þüþ
 
     ý
 
ùÿþñþ
 
üýÿü÷þ
 
 ü
ü
ü ü
üüßþ+