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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
U
­ý°d–=ã@s¾dZddlmZddlmZddlZddlZddlm    Z    ddl
Z ddl
m Z m Z ddlmZddlmZmZmZej deeg¡ej d    d
d g¡ej d ¡d d„ƒƒƒZej d ¡dd„ƒZej d ¡dd„ƒZej d ¡dd„ƒZej d ¡dd„ƒZej deej dej dƒ¡dd„ƒZ!ej d ¡dd„ƒZ"ej d ¡dd„ƒZ#ej dd dg¡d!d"„ƒZ$ej dd dg¡ej d#dd$d%d&g¡d'd(„ƒƒZ%d)d*„Z&ej d#dd$d%d&g¡d+d,„ƒZ'ej d ¡d-d.„ƒZ(ej d ¡ej d/id0fd1d2id3fg¡d4d5„ƒƒZ)ej d ¡d6d7„ƒZ*ej d ¡d8d9„ƒZ+d:d;„Z,ej d ¡ej d<d=d>g¡d?d@„ƒƒZ-ej d ¡dAdB„ƒZ.ej d ¡dCdD„ƒZ/dEdF„Z0dGdH„Z1ej d ¡dIdJ„ƒZ2dKdL„Z3dMdN„Z4dOdP„Z5dS)QzW
Tests dtype specification during parsing
for all of the parsers defined in parsers.py
é)Ú defaultdict)ÚStringION)Ú ParserWarning)Ú    DataFrameÚ    Timestamp)ÚArrowStringArrayÚ IntegerArrayÚ StringArrayÚdtypeÚ
check_origTFZ pyarrow_xfailc    Cs’|}ttj dd¡ d¡tdƒddddd    gd
}t d ¡N}| |¡|j    ||d d }|rn| 
¡}|  t ¡}n
|  t ¡}t ||¡W5QRXdS)NéééZABZ1AZ1BZ1CZ1DZ1E)ÚcolumnsÚindexz__passing_str_as_dtype__.csvr)r
Z    index_col)rÚnpÚrandomZrandÚroundÚlistÚtmZ ensure_cleanZto_csvÚread_csvÚcopyÚastypeÚfloatÚstrÚassert_frame_equal)Ú all_parsersr
r ÚparserÚdfÚpathÚresultÚexpected©r"úfd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/dtypes/test_dtypes_basic.pyÚtest_dtype_all_columnss ý 
 
r$cCs€|}d}tddgddgddgdd    ggd
d gd }|d
 tj¡|d
<|d  t¡|d <|jt|ƒtjtd œd}t     ||¡dS)Núone,two
1,2.5
2,3.5
3,4.5
4,5.5éz2.5r z3.5éz4.5rz5.5ÚoneZtwo)r©r(r&©r
)
rrrÚfloat64Úobjectrrrrr)rrÚdatar!r r"r"r#Útest_dtype_per_column5sÿr.c    Cs>|}d}tjtdd|jt|ƒdddœdW5QRXdS)Nr%z$data type ["']foo["'] not understood©ÚmatchZfooÚintr)r*)ÚpytestÚraisesÚ    TypeErrorrr)rrr-r"r"r#Útest_invalid_dtype_per_columnHsr5c    CsR|}d}|jdkrdnd}tjt|d |jt|ƒdtjiddW5QRXdS)    Nz9YEAR, DOY, a
2001,106380451,10
2001,,11
2001,106380451,67ÚczInteger column has NA valueszUnable to convert column DOYr/ZDOYT)r
Úskipinitialspace)Úenginer2r3Ú
ValueErrorrrrÚint64)rrr-Úmsgr"r"r#Ú'test_raise_on_passed_int_dtype_with_nasVsÿýr<cCsR|}d}|jtdt|ƒddiddd„id}tdd    gd
d gd œƒ}t ||¡dS) Nza,b
1.1,2.2
1.2,2.3zYBoth a converter and dtype were specified for column a - only the converter will be used.ÚaÚi8cSst|ƒS©N)r)Úxr"r"r#Ú<lambda>vóz,test_dtype_with_converters.<locals>.<lambda>)r
Ú
convertersz1.1z1.2gš™™™™™@gffffff@©r=Úb)Zread_csv_check_warningsrrrrr©rrr-r r!r"r"r#Útest_dtype_with_convertershs
úrGZ
AllIntegerZFloatcCs<d}|}tddg|d}|jt|ƒd|d}t ||¡dS)Nz0
1rr&r*©Úheaderr
)rrrrr)rr
r-rr!r r"r"r#Útest_numeric_dtype|s
rJcCs„|}d dddddddd    d
d d d ddddg¡}|jt|ƒdd}tdtjdddddddddddddddgddiƒ}t ||¡dS)NÚ
r=ÚTrueÚTRUEÚtrueÚ1z1.0ÚFalseÚFALSEÚfalseÚ0z0.0ÚNaNÚnanÚNAÚnullÚNULLÚbooleanr*TF)ÚjoinrrrÚpdÚarrayrrrFr"r"r#Útest_boolean_dtypeˆsZðÿñîÿÿr]cCsT|jtdƒdddddgdddgdgdd}td    gd    gtd
ƒgd œƒ}t ||¡dS) Nz"dump","-9,1","-9,1",20101010ÚpythonÚcolÚcol1Úcol2Úcol3ú,)r8ÚnamesZusecolsÚ parse_datesÚdecimalg333333"Àz
2010-10-10)r`rarb)rrrrrr)rr r!r"r"r#Ú+test_delimiter_with_usecols_and_parse_dates½s
úÿrgÚ    thousandsÚ_cCst||||dƒdSr?)Údecimal_number_check)ÚrequestZpython_parser_onlyÚnumeric_decimalrhr"r"r#Útest_decimal_and_exponentialÎsrmÚfloat_precisionÚlegacyÚhighZ
round_tripcCsRt|||||ƒ|\}}d|d}t|tƒr:d|d}t||||f||ƒdS)Nú )rjÚ
isinstancer)rkÚ c_parser_onlyrlrnrhÚtextÚvaluer"r"r#Ú%test_1000_sep_decimal_float_precisionÖs$ÿ 
 ÿrvcCsr|d}|dkr:|dkr:|j tjjd|›d|›d¡|jt|ƒ|d|ddd}|jd    }||d
ksnt‚dS) Nr)z1_,z1_234,56z
1_234,56e0z
thousands=z and sep is in )Úreasonú|rc)rnÚseprhrfrI)rrr&)    ÚnodeZ
add_markerr2ÚmarkZxfailrrÚilocÚAssertionError)rkrrlrhrnrurÚvalr"r"r#rjésÿú
rjcCsRd}|jt|ƒ|dddtjid}t |jdd…dftjddddgd    d
¡dS) Nz'id    num    
1    1.2     
1     2.1    
2     1    
2     1.2     
ú    rr&)rnryrIr
g333333ó?gÍÌÌÌÌÌ@çð?Únum)Úname)    rrrr+rZassert_series_equalr|r[ÚSeries)rsrnZDATArr"r"r#Útest_skip_whitespaceüsûr„cCsfd}|}|jt|ƒdgdgddid}tddddgd    d
d d gd œƒ}|d d¡|d<t ||¡dS)Nz#a,b
yes,xxx
no,yyy
1,zzz
0,aaa
    ÚyesÚnor=rY)Z true_valuesZ false_valuesr
TFZxxxZyyyZzzzZaaarD)rrrrrr)rrtrr r!r"r"r#Útest_true_values_cast_to_boolsüÿr‡zdtypes, exp_valuerOúa.1r:r&c    Cs`|}d}dti|–}| ¡}|jt|ƒ|d}tdg|gdœƒ}||ksPtdƒ‚t ||¡dS)Núa,a
1,1r=r*rO©r=rˆzdtype dict changed)rrrrrr}rr)    rZdtypesZ    exp_valuerr-Z
dtype_dictZdtype_dict_copyr r!r"r"r#Útest_dtype_mangle_dup_cols%s r‹cCs<|}d}|jt|ƒtd}tdgdgdœƒ}t ||¡dS)Nr‰r*rOrŠ)rrrrrrrFr"r"r#Ú'test_dtype_mangle_dup_cols_single_dtype4s
rŒcCsj|}d}|jt|ƒttdƒƒtjtjtjdœd}tt dg¡t dg¡t dg¡dœƒ}t     ||¡dS)NzA,B,B
X,Y,Z
1,2,3r ))ÚAÚX)ÚBÚY)rÚZrHr&r')
rrrÚrangerÚint32Úfloat32rrrrFr"r"r#Útest_dtype_multi_index>s"
ýý
 
 
 
ýÿr•cCst|}|}d}ttjtjddg|dtjdtjdg|dtjddtjg|dd    œƒ}|jt|ƒ|d}t ||¡dS)
Nza,b,c
,3,5
1,,6
2,4,r&r r*r'rr é)r=rEr6)rr[r\rVrrrr)rZany_int_ea_dtyperr
r-r!Úactualr"r"r#Útest_nullable_int_dtypeYsýÿr˜Údefaultrr+csNd}t‡fdd„dd}|}|jt|ƒ|d}tdgdd    œƒ}t ||¡dS)
Núa,b
1,2
csˆSr?r"r"©r™r"r#rAtrBz)test_dtypes_defaultdict.<locals>.<lambda>r:©r=r*r&ç@rD©rrrrrr)rr™r-r
rr r!r"r›r#Útest_dtypes_defaultdictms rŸcCs`d}tdd„dd}d|d<|}|jt|ƒ|d}tdgd    gd
gd gd gd œƒ}t ||¡dS)Nza,b,a,b,b.1
1,2,3,4,5
cSsdS)Nr+r"r"r"r"r#rArBz9test_dtypes_defaultdict_mangle_dup_cols.<locals>.<lambda>r:rœúb.1r*r&rr'g@r )r=rErˆzb.2r rž)rr-r
rr r!r"r"r#Ú'test_dtypes_defaultdict_mangle_dup_cols{sr¡c    CsHd}tdd„dd}|}tjtdd|jt|ƒ|dW5QRXdS)    NršcSsdS)NZ invalid_dtyper"r"r"r"r#rArBz1test_dtypes_defaultdict_invalid.<locals>.<lambda>r:rœznot understoodr/r*)rr2r3r4rr)rr-r
rr"r"r#Útest_dtypes_defaultdict_invalid‰s
r¢cCs|}d}|jt|ƒddgd}ttjddgddtjd    d
gd dtjd d gddtjddgddtjtjdgddtjtjdgd dtjtjd gddtj|jdkrªtjnddgddt tdƒgd¡tjtjtjg|jdkrädntddœ
ƒ}t     
||¡dS)NúXa,b,c,d,e,f,g,h,i,j
1,2.5,True,a,,,,,12-31-2019,
3,4.5,False,b,6,7.5,True,a,12-31-2019,
Únumpy_nullableÚi©Ú dtype_backendrer&r'ÚInt64r*ç@ç@ZFloat64TFrYr=rEÚstringr–ç@ÚpyarrowÚú
2019-12-31r ©
r=rEr6ÚdÚeÚfÚgÚhr¥Új) rrrr[rƒrVr8rr,rrrFr"r"r#Útest_dtype_backend•s6ÿÿ
ÿôÿr·cCsF|}d}|jt|ƒddd}tdtjgdtjgdœƒ}t ||¡dS)Nz a,b
1,2.5
,
r¤r+)r§r
r€r©rD)rrrrrUrrrFr"r"r#Útest_dtype_backend_and_dtype¶sÿr¸c    Cs¸t d¡}t d|¡˜|}d}|jt|ƒdd}|dkrttttj    ddgtj
d    ƒttj    d
tj gtj
d    ƒd œƒ}n*tt |     ddg¡ƒt |     d
dg¡ƒd œƒ}t  ||¡W5QRXdS) Nr­zmode.string_storagez a,b
a,x
b,
r¤)r§r^r=rEr*r@rD)r2Ú importorskipr[Zoption_contextrrrr    rr\Zobject_rVrrr)rZstring_storageÚparr-r r!r"r"r#Útest_dtype_backend_stringÆs"
þÿþÿr»cCs@d}|}|jt|ƒddd}tdgddœdd}t ||¡dS)    Nršr¨r¤)r
r§r&r rDr*)rrrrr)rr-rr r!r"r"r#Ú%test_dtype_backend_ea_dtype_specifiedåsÿr¼cCst d¡}|}|j}d}|jt|ƒddgd}ttjddgddtjd    d
gd dtjd d gddtjddgt |     ¡¡dtjtj
dgddtjtj
dgd dtjtj
d gddtj|dkrÂtj
nddgt |     ¡¡dt t dƒgd¡tjtj
tj
gdddœ
ƒ}t   ||¡dS)Nr­r£r¥r¦r&r'zint64[pyarrow]r*r©rªzfloat64[pyarrow]TFz bool[pyarrow]r=rEr–r¬r®r¯r z null[pyarrow]r°)r2r¹r8rrrr[rƒZ
ArrowDtyper«rVrrr)rrkrºrr8r-r r!r"r"r#Útest_dtype_backend_pyarrowòs,
 þóÿr½cCsZ|}d}|jt|ƒddid}ttt dddg¡t dddg¡ƒdd    œƒ}t ||¡dS)
Nz!a,b
1,1
,1
1582218195625938945,1
r=r¨r*r&lãFC,©/FTrD)rrrrrr\rrrFr"r"r#Útest_ea_int_avoid_overflowsÿüÿr¾)6Ú__doc__Ú collectionsrÚiorÚnumpyrr2Z pandas.errorsrZpandasr[rrZpandas._testingZ_testingrZpandas.core.arraysrrr    r{Z parametrizerr,Z usefixturesr$r.r5r<rGrZ    typecodesrJr]rgrmrvrjr„r‡r‹rŒr•r˜rŸr¡r¢r·r¸r»r¼r½r¾r"r"r"r#Ú<module>s|    
 
 
 
 
 
 
 
 
ÿ
    
 
4
 
 
 
 
 
 
 
 
    
 
 
 
 
 
 
!