zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
U
­ý°d¥Àã@s¨ddlZddlmZddlZddlZddlZddlmZddl    Z
ddl    m Z m Z m Z mZmZmZmZmZmZddlmZddlmmZddlmZGdd„dƒZdS)éN)ÚStringIO)Ú ParserError)    Ú    DataFrameÚIndexÚ
MultiIndexÚNaTÚSeriesÚ    TimestampÚ
date_rangeÚread_csvÚ to_datetime)Ú
get_handlec@sPeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    e
j   ddddgg¡dd„ƒZ e
j jdd„ƒZd·dd„Ze
j je
j   ddddddd d!d"d#d$d%d&d'd(g¡d)d*„ƒƒZe
j je
j   ddddddd d!d"d#d$d%d&d'd(g¡e
j   d+d,d-d.d/g¡e
j   d0d1dd2d3g¡d4d5„ƒƒƒƒZe
j je
j   ddd6dddd d!d"d#d$d%d&d'd(g¡e
j   d0d1dd2d3g¡d7d8„ƒƒƒZe
j je
j   ddd6dddd g¡d9d:„ƒƒZe
j jd;d<„ƒZe
j jd=d>„ƒZe
j je
j   ddddddd d!d"d#d$d%d&d'd(g¡e
j   d0dd2d3g¡e
j   d?d@didAdigdBdidCdigdddDœdddEœgg¡dFdG„ƒƒƒƒZdHdI„ZdJdK„ZdLdM„ZdNdO„ZdPdQ„ZdRdS„ZdTdU„ZdVdW„ZdXdY„Z dZd[„Z!d\d]„Z"e
j   d^d_d`dag¡dbdc„ƒZ#e
j jddde„ƒZ$dfdg„Z%dhdi„Z&djdk„Z'dldm„Z(dndo„Z)dpdq„Z*drds„Z+e
j   dtddug¡dvdw„ƒZ,dxdy„Z-dzd{„Z.d|d}„Z/d~d„Z0e
j   d€e1dd‚dƒgd„d…d†ggd‡dˆgd‰dŠd‹gdŒdfe1ddŽdggd‰dŠd‹gdd‘fe1d’d“d”d•ggd‰dŠd‹gdd–fe1d’d“d—d˜ggd‰dŠd‹gdd™fg¡dšd›„ƒZ2dœd„Z3e
j   dže4 5dŸ¡e4 5d ¡g¡d¡d¢„ƒZ6d£d¤„Z7d¥d¦„Z8d§d¨„Z9d©dª„Z:d«d¬„Z;d­d®„Z<d¯d°„Z=d±d²„Z>d³d´„Z?dµd¶„Z@dS)¸ÚTestDataFrameToCSVcKs ddi}|jf|Žt|f|ŽS)NÚ    index_colr)Úupdater )ÚselfÚpathÚkwargsÚparams©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/methods/test_to_csv.pyr s zTestDataFrameToCSV.read_csvc    Csht d¡R}tj|jdd…|j d¡f<| |¡|j|ddgd|j|dd|j|dd|j     d¡|_| |¡|j
|d    d
}t  ||¡|j|d d |j
|dd    d }t |jƒt |jƒdksÎt ‚|j|dd|j
|dd    d }t |j|j¡tttdƒtjdtjddttdƒtjdtjdddœƒ}| |¡| 
|¡}t  ||¡W5QRXdS)NZ__tmp_to_csv_from_csv1__éÚAÚB©ÚcolumnsF©Úheader©ÚindexT)Ú parse_datesr©Z index_label©rr éé©Údtypeé)Ús1Ús2)ÚtmÚ ensure_cleanÚnpÚnanÚilocrZget_locÚto_csvrÚ
_with_freqr Úassert_frame_equalÚlenÚAssertionErrorÚassert_almost_equalÚvaluesrrÚrangeÚarangeÚint64)rÚ float_frameÚdatetime_framerÚreconsÚdmrrrÚtest_to_csv_from_csv1#s0
 
 þÿ
 
z(TestDataFrameToCSV.test_to_csv_from_csv1c
 
Cs0t d¡}ttj dd¡dddgdddgd}| |¡| |¡}t ||¡t     
d    d    d
g¡}ttj dd¡|dddgd}| |¡|j|d d d gdd}tj||ddt ddddgƒ}|j||d| |¡}|  ¡}||_ t ||¡d}    tjt|    d|j|ddgdW5QRXW5QRXdS)NZ__tmp_to_csv_from_csv2__r$ÚaÚbÚxÚyÚz©rr)rr#r')rr#r'rr#r'Fr"©Z check_namesZAAÚXÚYÚZrz Writing 4 cols but got 2 aliases©Úmatch)r*r+rr,ÚrandomÚrandnr/r r1rÚ from_tuplesrÚcopyrÚpytestÚraisesÚ
ValueError)
rr9rÚdfÚresultZmidxZ col_aliasesÚrsÚxpÚmsgrrrÚtest_to_csv_from_csv2Is. ÿ
 
 
 
 z(TestDataFrameToCSV.test_to_csv_from_csv2c    Cs¢t d¡Ž}ttj dd¡ƒ}ttj dd¡ƒ}| |¡|j|dddt ||g¡}t    |dd}d    d
„|j
Dƒ|_
d d
„|j
Dƒ|_
t  ||¡W5QRXdS) NZ__tmp_to_csv_from_csv3__r$r#r>F)Úmoderr©rcSsg|] }t|ƒ‘qSr©Úint©Ú.0ÚlabelrrrÚ
<listcomp>psz<TestDataFrameToCSV.test_to_csv_from_csv3.<locals>.<listcomp>cSsg|] }t|ƒ‘qSrrYr[rrrr^qs) r*r+rr,rJrKr/ÚpdÚconcatr rr1)rrZdf1Údf2rTrSrrrÚtest_to_csv_from_csv3gs 
 z(TestDataFrameToCSV.test_to_csv_from_csv3c    s¨t d¡”}tjdd‰td‡fdd„tdƒDƒit‡fdd„tdƒDƒd    d
d }| |¡t|d    d }t     |j
¡|_
t     |d¡|d<tj ||d dW5QRXdS)NZ__tmp_to_csv_from_csv4__r#)ÚsecondsZdt_datacsg|] }|ˆ‘qSrr©r\Úi©Údtrrr^ysz<TestDataFrameToCSV.test_to_csv_from_csv4.<locals>.<listcomp>r$csg|] }|ˆ‘qSrrrdrfrrr^zsÚdt_index©ÚnamerrXT)Zcheck_index_type) r*r+r_Ú    Timedeltarr6rr/r Z to_timedeltarr1©rrrQrRrrfrÚtest_to_csv_from_csv4ts  þ
 z(TestDataFrameToCSV.test_to_csv_from_csv4c    sft d¡R}ˆ |¡t|ddgd‰‡‡fdd„}|dƒˆd<|dƒˆd<t ˆˆ¡W5QRXdS)    NZ__tmp_to_csv_from_csv5__rrr"cs$tˆ|ƒj d¡j ˆ|jj¡S)NÚUTC)r rgÚ
tz_convertÚtz)Úc©rRÚtimezone_framerrÚ<lambda>‹sÿ
þz:TestDataFrameToCSV.test_to_csv_from_csv5.<locals>.<lambda>rÚC)r*r+r/r r1)rrsrÚ    converterrrrrÚtest_to_csv_from_csv5„s 
 ÿ  z(TestDataFrameToCSV.test_to_csv_from_csv5c    Cszd}t|dƒ}t |d¡}|j}|d|dg}t ¡"}|j|||dt|dd}W5QRXtj|||dd    dS)
Nrç@r$r'r©rÚ    chunksizerXFrD)rZr*ÚmakeCustomDataframerr+r/r r1)rrzÚNrQÚcsÚcolsrÚrs_crrrÚtest_to_csv_cols_reordering“s  
z.TestDataFrameToCSV.test_to_csv_cols_reorderingr~Nr?r>c     Csîd}t|dƒ}t |d¡}dddg|_t ¡´}|j|||dt|dd}|dk    rÈ|jjrf||_n|j |¡\}}|j     |¡|_|D]<}    ||    }
||    } t
|
t ƒr´t  |
| ¡qˆtj |
| d    d
qˆn|j|_tj ||d    d
W5QRXdS) Nrrxr$r>r?ryrrXFrD)rZr*r{rr+r/r Z    is_uniqueZget_indexer_non_uniqueZtakeÚ
isinstancerZassert_series_equalr1) rr~rzr|rQrrZindexerÚmissingrqZobj_dfZobj_rsrrrÚtest_to_csv_new_dupe_cols¢s(   
 
z,TestDataFrameToCSV.test_to_csv_new_dupe_colsc    Cs~d dd„}d}||dƒ}||ddƒ}t d¡B}t||dœƒ}|j||d| |¡ t¡}tj||d    d
W5QRXdS) NcSsn|dkrt|dƒ}ttdd|dƒ}|rjtj dt|ƒ|¡D] }t||<q>tj d¡}t|| <t||<|S)Ngš™™™™™¹?Ú2000Z5min)ÚfreqÚperiodsréd)rZÚlistr
r,rJÚrandintr2r)ÚnZnnatÚsrerrrÚmake_dtnat_arrÇs 
 
z<TestDataFrameToCSV.test_to_csv_dtnat.<locals>.make_dtnat_arréèrrz1.csv©r>r?©rzFrD)N)r*r+rr/r Úapplyr r1)rrŒrzr(r)ÚpthrQr;rrrÚtest_to_csv_dtnatÄs
  z$TestDataFrameToCSV.test_to_csv_dtnatFc    stddi}|rj|dk    r$tt|ƒƒ|d<tt|ƒƒ|d<t d¡$}    |j|    d|d|j|    f|މW5QRXn<d|d<t d¡$}    |j|    d|d|j|    f|މW5QRXd    d
„‰|rº|jˆ_|r|s‡fd d „t|d ƒDƒ}
t tˆj    ƒg|
¡} | ˆ_    ˆj
dd…|d d…f‰dddddddœ} |rH|dkr~d}t j ‡fdd „ˆj    Dƒ|dˆ_    t j ‡fdd „|j    Dƒ|d|_    nÊ|dkrÆd}t j dd „ˆj    Dƒ|dˆ_    t j dd „|j    Dƒ|d|_    n‚|dkrd}t ˆj    ƒ} t j dd „| Dƒ|dˆ_    t j ttt|j     ¡ƒƒ|d|_    n.|  |¡}t j ˆj    |dˆ_    t j |j    |d|_    |rl|dkržd}t j ‡fdd „ˆjDƒ|dˆ_t j ‡fdd „|jDƒ|d|_nÎ|dkræd}t j dd „ˆjDƒ|dˆ_t j dd „|jDƒ|d|_n†|dkr>d}t ˆjƒ}t j dd „|Dƒ|dˆ_|j ¡}t j d d „|Dƒ|d|_n.|  |¡}t j ˆj|dˆ_t j |j|d|_|ˆfS)!Nr FrrZ__tmp_to_csv_moar__Úutf8)ÚencodingrzrcSst|tƒs| d¡S|S)Nr“)rÚstrÚdecode©r@rrrÚ_to_uniøs
 
z;TestDataFrameToCSV._return_result_expected.<locals>._to_unics g|]}ˆjdd…|fj‘qS)N)r.r5rd)r;rrr^sz>TestDataFrameToCSV._return_result_expected.<locals>.<listcomp>r#reÚfÚO)rer™r‹ÚurgÚpr›csg|] }ˆ|ƒ‘qSrrr[©r˜rrr^ sr%csg|] }ˆ|ƒ‘qSrrr[rrrr^srgcSsg|] }t|ƒ‘qSr©r    r[rrrr^scSsg|] }t|ƒ‘qSrržr[rrrr^srœcSsg|] }t|ƒ‘qSrržr[rrrr^scsg|] }ˆ|ƒ‘qSrrr[rrrr^*scsg|] }ˆ|ƒ‘qSrrr[rrrr^-scSsg|] }t|ƒ‘qSrržr[rrrr^2scSsg|] }t|ƒ‘qSrržr[rrrr^5scSsg|] }t|ƒ‘qSrržr[rrrr^;scSsg|] }t|ƒ‘qSrržr[rrrr^?s)rˆr6r*r+r/r rrÚ from_arraysrr.r,Úarrayr Úmapr    Z to_timestampÚget)rrQrzZr_dtypeZc_dtypeÚrnlvlÚcnlvlÚdupe_colrrZ    delta_lvlÚixZtype_mapZidx_listZcol_listr)r˜r;rÚ_return_result_expectedÞsº
 
ÿÿ
 
ÿÿ
 
 
 ÿÿ
 
 
ÿÿ
 
ÿÿ
 
 
 ÿ
 ÿ
 
z*TestDataFrameToCSV._return_result_expectedÚnrowsr'é
écr‡éeéféÆéÇéÈéÉéÊéùéúéûcCs:tj|dddd}| |ddd¡\}}tj||dddS)Nérgr‹©Ú
r_idx_typeÚ
c_idx_typerFrD©r*r{r§r1)rr¨rQrRÚexpectedrrrÚtest_to_csv_nrowsGsz$TestDataFrameToCSV.test_to_csv_nrowszr_idx_type, c_idx_type)rere)r‹r‹)r‹rg)rœrœÚncolsr#r$rµcCs:tj||||d}| |d||¡\}}tj||dddS)Nr¶rFrDr¹)rr¨r·r¸r¼rQrRrºrrrÚtest_to_csv_idx_typesPs    ÿüz(TestDataFrameToCSV.test_to_csv_idx_typesébcCs0t ||¡}| |d¡\}}tj||dddS©NrFrDr¹)rr¨r¼rQrRrºrrrÚtest_to_csv_idx_ncolsds z(TestDataFrameToCSV.test_to_csv_idx_ncolscCs”t |d¡}t|jƒ}ddg|dd…<ddg|dd…<t|jƒ}ddg|dd…<ddg|dd…<||_||_|j|ddd\}}tj||d    d
dS) Nr$Zduper'éþÿÿÿZrduperT)r¥FrD)r*r{rˆrrr§r1)rr¨rQr~r¦rRrºrrrÚtest_to_csv_dup_colsns 
 
z'TestDataFrameToCSV.test_to_csv_dup_colscCs:ttjdtjdd}| |d¡\}}tj||dddS)Nr©r%rrF)Zcheck_column_type)rr,r7r8r§r*r1)rrQrRrºrrrÚtest_to_csv_empty}sz$TestDataFrameToCSV.test_to_csv_emptycCsDd}tj|ddddd}|j||dd\}}tj||dddS)Nrr'r#)Ú r_idx_nlevels)r£FrDr¹)rrzrQrRrºrrrÚtest_to_csv_chunksizeƒsz(TestDataFrameToCSV.test_to_csv_chunksizezdf_params, func_paramsrÄr£Ú c_idx_nlevelsr¤©rÄrÆ)r£r¤cCs8tj||f|Ž}|j|df|Ž\}}tj||dddSr¿r¹)rr¨Z    df_paramsZ func_paramsr¼rQrRrºrrrÚtest_to_csv_paramsŠsz%TestDataFrameToCSV.test_to_csv_paramsc    Csrtj|d<dd„}|j |¡|d<t ¡>}| |¡| |¡}t ||¡t t     |¡t     |¡¡W5QRXdS)NÚGcSstjtjgtj ¡dkS)Nçà?)r,Úinfr-rJZrandr—rrrrtŸózETestDataFrameToCSV.test_to_csv_from_csv_w_some_infs.<locals>.<lambda>ÚH)
r,r-rr¡r*r+r/r r1Úisinf)rr9r™rr;rrrÚ test_to_csv_from_csv_w_some_infsœs
 
 
 
 z3TestDataFrameToCSV.test_to_csv_from_csv_w_some_infsc    Csftj|d<tj |d<t ¡>}| |¡| |¡}t ||¡t t |¡t |¡¡W5QRXdS)NÚEÚF)r,rËr*r+r/r r1rÎ)rr9rr;rrrÚtest_to_csv_from_csv_w_all_infs©s
 
 
 
 z2TestDataFrameToCSV.test_to_csv_from_csv_w_all_infsc    CsŽt d¡z}tdddgdddgdœƒ}|j|d    d
t|ƒ}t ||¡td d d gdd|d<|j|d    d
t|ƒ}t ||¡W5QRXdS)NZ__tmp_to_csv_no_index__r#r'r$rµré)Zc1Úc2Frééé    r8r%Úc3)r*r+rr/r r1rrlrrrÚtest_to_csv_no_indexµs  z'TestDataFrameToCSV.test_to_csv_no_indexcCsDtdddgdddgdœƒ}d|d    <| ¡|jd
d d    gd ks@t‚dS) Nr>r?rqÚaaZbbÚcc)rr#ÚtxtÚtestrr#r)rr/r3)rrQrrrÚtest_to_csv_with_mix_columnsÁsz/TestDataFrameToCSV.test_to_csv_with_mix_columnsc    Cs¼tddgddggddgd}tddgddggdd    gd}t d
¡p}|j|dd    gd | |¡}t ||¡|j|d dd    gd | |¡}|jdd}|dks¢t‚t ||¡W5QRXdS)Nr#r'r$rµrrrrErFZ__tmp_to_csv_headers__rF)rrT)Zinplace)rr*r+r/r r1Z reset_indexr3)rZfrom_dfZto_dfrr;Z return_valuerrrÚtest_to_csv_headersÉs 
 
  z&TestDataFrameToCSV.test_to_csv_headersc Csf|}|j}tjt|ƒdtjd dd¡}tj|ddgd}||_t     d¡T}|j
|dd    |j
|d
d gd | 
|¡|j |d dgdd}tj ||dd|jj |jj ks²t‚||_|}    |    j}|tjt|ƒtjdg}t |¡|    _|    j
|ddgdtjtdd|j |d dgdd}
W5QRXtj |    |
dd|     
|¡|j |dd}
t|
jƒt|    jƒdkslt‚|    j
|dd|j |dd}
t |
j|j¡||_W5QRXt     d¡B}d%dd„} tjddddd}| 
|¡t |d dddgd dgd} t  || ¡tjddddd}| 
|¡t |d dddgd d} t  || ¡tjddddd}| 
|¡t |d dddgd ddgd} t  || ¡| ƒ}|j
|ddt |d dgd    } t  || ¡| dƒ}|j
|ddt |d dgd    } tj| jj ސsît‚|jj | j_ t  || ¡| ƒ}| 
|¡t |d dgd gd} t  || ¡| dƒ}| 
|¡t |d dgd gd} t  || ¡| dƒ}| 
|¡d D]B} d!| ›d"}tjt|dt |tt| ƒƒd dW5QRXq~d#}tjt|d|j
|dd$gd W5QRXW5QRXt     d¡V}|    dd … 
|¡|  |¡}
|    dd …}g|_t |
j|j¡t|
ƒd ksXt‚W5QRXdS)&Nr'r%éÿÿÿÿÚfirstÚsecond©ÚnamesZ__tmp_to_csv_multiindex__Frrrrrr#r"rDÚtimeÚfoor!zCould not infer formatrHTrXrcSs<|dkrddg}ttjjddddtjdd    d
g|d d d S)NTrárârr©)r$r$)Úsize)Úbahræ)rèÚbar)ZbanÚbazrãr8©rr&)rr,rJr‰rrLrãrrrÚ _make_framesÿûz>TestDataFrameToCSV.test_to_csv_multiindex.<locals>._make_framerr$rµrÇ)rr)rÓrÕzlen of z, but only 5 lines in filez%cannot specify cols with a MultiIndexré)N)rr,r7r2r8ZreshaperrŸr*r+r/r r1rär3Zassert_produces_warningÚ UserWarningrr4r5r{ÚcomZall_nonerNrOrrˆr6Ú    TypeErrorZassert_index_equal)rr9r:ÚframeZ    old_indexZarraysZ    new_indexrrQZtsframer;rìrRrerUÚexprrrÚtest_to_csv_multiindexÛsž 
 ÿ
 
 
 
 
 
 
 
 $& 
 z)TestDataFrameToCSV.test_to_csv_multiindexc    Csvttdƒtdƒdœt dd¡d}t d¡@}| |¡|j|dd}|     ¡}|j
  t ¡|_
t  ||¡W5QRXdS)NÚabcr$©rrrrz!__tmp_to_csv_interval_index__.csvrX)rrˆr6r_Zinterval_ranger*r+r/r rMrÚastyper•r1)rrQrrRrºrrrÚtest_to_csv_interval_index`s" 
z-TestDataFrameToCSV.test_to_csv_interval_indexc
Cs‚ttj dd¡ tj¡ƒ}tj|d<t d¡J}|j    |ddt
|ƒ(}|  ¡}|d  d¡ddksjt ‚W5QRXW5QRXdS)    Nr#rµz!__tmp_to_csv_float32_nanrep__.csviç)Úna_repú,r'Z999)rr,rJrKrõÚfloat32r-r*r+r/ÚopenÚ    readlinesÚsplitr3)rrQrr™ÚlinesrrrÚtest_to_csv_float32_nanrepns
 
z-TestDataFrameToCSV.test_to_csv_float32_nanrepc    CsTtdddgdddgdœƒ}t d¡&}| |¡| |¡}t ||¡W5QRXdS)    Nr#r'r$z5,6z7,8z9,0rôz__tmp_to_csv_withcommas__.csv©rr*r+r/r r1©rrQrrarrrÚtest_to_csv_withcommasys
 
 
z)TestDataFrameToCSV.test_to_csv_withcommasc    Cs>dd„}ttj dd¡d|dƒd}ttj dd¡ d¡d|d    ƒd}td
|j|d ƒd }td |j|dƒd }ttdƒ|j|dƒd }tj|jdd…dd…f<t    j
|||||gdd}i}dtj fd    tj fd tj fdtffD]\}    }
||    ƒD] } |
|| <qìqÜt ¡0} | | ¡t| d||dƒd} t | |¡W5QRXdS)Ncs‡fdd„tdƒDƒS)Ncsg|]}ˆ›|d›‘qS)Z03drrdrirrr^„szMTestDataFrameToCSV.test_to_csv_mixed.<locals>.create_cols.<locals>.<listcomp>r)r6rirrirÚ create_colsƒsz9TestDataFrameToCSV.test_to_csv_mixed.<locals>.create_colsr‡rÚfloat64Úfloat)r&rr8rZTÚboolrCræÚobjectÚ20010101Údateéé2r#r$)Úaxisr)rr&r )rr,rJrKrõrr    r-r.r_r`rr8Zbool_rr*r+r/r r1)rrÚdf_floatÚdf_intÚdf_boolÚ    df_objectÚdf_dtrQZdtypesrŠr&rqÚfilenamerSrrrÚtest_to_csv_mixed‚sR ÿýÿÿü   
 
ÿz$TestDataFrameToCSV.test_to_csv_mixedc     CsÂttj dd¡ttdƒƒttdƒƒdd}t ¡0}| |¡t    |dd}|j
|_
t  ||¡W5QRXttj dd¡dd    }ttj dd¡ƒ  d
¡}td |j tdƒd }td |j tdƒd }ttdƒ|j tdƒd }tj|||||gdd d}dddgd|_
t ¡L}| |¡t    |dd}dD]}    t||    ƒ||    <q&|j
|_
t  ||¡W5QRXd}
t |
d¡}dddg|_
t ¡8}| |¡t    |dd}|jddid}t  ||¡W5QRXdS)Nrr    érrërrXr$r%r8TrCrærr#)r Z ignore_indexr'r)z0.4z1.4z2.4r©r>r?za.1r)rr,rJrKrˆr6r*r+r/r rr1rõrr    r_r`r r{Úrename) rrQrrRr r rrrrer|rrrÚtest_to_csv_dups_cols°sH ý
 
  ÿ
 
 
 
 z(TestDataFrameToCSV.test_to_csv_dups_colsrzi'iPÃ順c    Csxtdtdƒiƒ}|jd|d<|jd|d<|jd|d<t ¡,}|j||d    t|d
d }t ||¡W5QRXdS) Nrrçð?rg@rug@ÚDrrrX)rr6rr*r+r/r r1)rrzrÚrrSrrrÚtest_to_csv_chunkingás
 z'TestDataFrameToCSV.test_to_csv_chunkingc    CsXttj dd¡ddd}t ¡.}|j|dddt|dd}t ||¡W5QRXdS)Nr#iª†©rrF)rrr)    rr,rJrKr*r+r/r r1)rrQrrSrrrÚ!test_to_csv_wide_frame_formattingís
 
 z4TestDataFrameToCSV.test_to_csv_wide_frame_formattingc    Csjtdƒ}|j|dd}td||jdiƒ}t ¡,}| |¡t|dd}tj||ddW5QRXdS)Nz a,1.0
b,2.0rÚtrrXFrD)rr rrr*r+r/r1)rÚf1rQZnewdfrr;rrrÚtest_to_csv_bugös
 
 z"TestDataFrameToCSV.test_to_csv_bugc    Cs|tddddgiƒ}t ¡X}|j|ddt|ddd}t ||¡|j|dd    d
t|ddd}t ||¡W5QRXdS) Nuc/σr#r'r$úUTF-8©r”r©rr”F©r”rrÿrrrrÚtest_to_csv_unicodes
 z&TestDataFrameToCSV.test_to_csv_unicodecCsltdƒ}tddddgdddd    ggdd
d d gdd
gd }|j|dd| d¡t|ddd}t ||¡dS)NÚuאZd2Zd3Zd4Za1Za2Úa3Za4uבuגuדrrr rr!)rrr/Úseekr r*r1)rÚbufrQrarrrÚtest_to_csv_unicode_index_col s
ý
z0TestDataFrameToCSV.test_to_csv_unicode_index_colcCs6tƒ}| |¡| d¡t|dd}t ||¡dS)NrrX)rr/r&r r*r1)rr9r'r;rrrÚtest_to_csv_stringios
 
 
 z'TestDataFrameToCSV.test_to_csv_stringioc    CsŽtdddgdddggddgd    d
d gd }t ¡T}|j|d dt|dd}tdddgdddggddgd    d
d gd }t ||¡W5QRXdS)Nç¿¶~úϚ¿?ç9DܜJÎ?ç>éD‚)â?çÜ.4×i¤(@ç33333þ@çÍÌÌ̤œArrrErFrGrCz%.2f)Ú float_formatrrXg¸…ëQ¸¾?gq=
×£pÍ?g=
×£p=â?g¤p=
×£(@rÿ)rrQrrSrTrrrÚtest_to_csv_float_format"sý
 ýz+TestDataFrameToCSV.test_to_csv_float_formatcCsHtdddgiƒ}|jddd„dd}dd    d
g}t |¡}||ksDt‚dS) Nr>rÊrrøcSstj|ddS)Nú-)Ztrim)r,Zformat_float_positionalr—rrrrt9rÌzJTestDataFrameToCSV.test_to_csv_float_format_over_decimal.<locals>.<lambda>F)Údecimalr0rz0.5Ú1)rr/r*Úconvert_rows_list_to_csv_strr3©rrQrRÚ expected_rowsrºrrrÚ%test_to_csv_float_format_over_decimal4sý
 
z8TestDataFrameToCSV.test_to_csv_float_format_over_decimalcCsbtdddgdddgdœƒ}tƒ}|j|dtjd    d
| ¡}d d d dg}t |¡}||ks^t‚dS)Nr#r'r$rærérêrôFúutf-8)rÚquotingr”z"A","B"z1,"foo"z2,"bar"z3,"baz")    rrr/ÚcsvÚQUOTE_NONNUMERICÚgetvaluer*r5r3)rrQr'rRr7rºrrrÚ!test_to_csv_unicodewriter_quoting@s 
z4TestDataFrameToCSV.test_to_csv_unicodewriter_quotingr”r9cCsVtdddgiƒ}tƒ}|j|tj|dd| ¡}dddg}t |¡}||ksRt‚dS)NrZhelloz    {"hello"}F)r:r”r)    rrr/r;Ú
QUOTE_NONEr=r*r5r3)rr”rQr'rRr7rºrrrÚtest_to_csv_quote_noneKs
 
z)TestDataFrameToCSV.test_to_csv_quote_nonecCsbtdddgdddgdœdd    d
gd }tƒ}|j|d d ddddg}t |¡}| ¡|ks^t‚dS)Nr#r'r$rµrrÓrôÚoneÚtwoÚthreerFr!zA,Bzone,1,4ztwo,2,5z    three,3,6)rrr/r*r5r=r3)rrQr'r7rºrrrÚ"test_to_csv_index_no_leading_commaWs $ 
z5TestDataFrameToCSV.test_to_csv_index_no_leading_commac
Cs8tdddgdddgdœdd    d
gd }t ¡@}|j|d d d}t|dd}| ¡|ks^t‚W5QRXW5QRXt ¡@}|j|dd d}t|dd}| ¡|ks¬t‚W5QRXW5QRXt ¡f}| |¡tj     d¡}d|d|d|d|}t|dd}| ¡|ks t‚W5QRXW5QRXdS)Nr#r'r$rµrrÓrôrArBrCrú
©Úlineterminators#,A,B
one,1,4
two,2,5
three,3,6
Úrb)rWÚ
s,A,B
one,1,4
two,2,5
three,3,6
r9s,A,Bsone,1,4stwo,2,5s    three,3,6)
rr*r+r/rúÚreadr3ÚosÚlinesepÚencode)rrQrrºr™Z
os_lineseprrrÚtest_to_csv_lineterminatorsas@$
$
$
 
 ÿþýüûúùÿ z.TestDataFrameToCSV.test_to_csv_lineterminatorsc CsÂtt ddddddddg¡ƒ}tddddddddgƒ}tƒ}|j|ddtƒ}|j|dd| ¡| ¡ksrt‚td|iƒ}td|iƒ}tƒ}| |¡tƒ}| |¡| ¡| ¡ks¾t‚dS)Nr>r?rqFrr‹)rr_Z Categoricalrr/r=r3r)rr‹r)ÚresrñrQrarrrÚ test_to_csv_from_csv_categorical‡s  
 
z3TestDataFrameToCSV.test_to_csv_from_csv_categoricalcCs:|jdd}t|tƒst‚tt|ƒdd}t ||¡dS)N)Z path_or_bufrrX)r/rr•r3r rr*r1)rr9Zcsv_strr;rrrÚtest_to_csv_path_is_noneŸs z+TestDataFrameToCSV.test_to_csv_path_is_nonez df,encodingr*r+r,r-r.r/rrrErFrGrCróÚdefZghirÚasciiré{u你好u世界Úgb2312uΓειά ÏƒÎ¿Ï…u
ΚόσμεZcp737c
 
Cst ¡ü}|j|||dt||d|d}t ||¡t|d||d"}|j|j|d|jjrdt‚W5QRXt|||dd     d¡}t ||¡t 
||¡0}|  ¡  |p¬d¡}|j D]}    |    |ks¶t‚q¶W5QRXt 
||¡}t |t|d|d    ¡W5QRXW5QRXdS)
N)Ú compressionr”r)rVrr”Úwr )rVr”rrr“r!)r*r+r/r r1r ÚhandleÚclosedr3ZsqueezeÚdecompress_filerJr–r)
rrQr”rVrrRZhandlesÚfhÚtextÚcolrrrÚtest_to_csv_compression¨sB
ÿ ÿüû 
z*TestDataFrameToCSV.test_to_csv_compressionc
    Csft d¡P}|j}t|| d¡dœ|d}|j|ddt|dd}| d    d
„¡}|j d d
„¡|_t     ||¡|j|d dt|dd}| d d
„¡}|j dd
„¡|_t     ||¡|j
}|j|ddt|dd}| dd
„¡}|j  dd
„¡|_ t     ||¡t dgddddgƒ}td|i|d}    |    j|d dt|ddgdd}t     ||    ¡W5QRXdS)NZ__tmp_to_csv_date_format__r#rôrú%Y%m%d©Ú date_formatrrXcSst| d¡ƒS©Nr_©rZÚstrftimer—rrrrtérÌz<TestDataFrameToCSV.test_to_csv_date_format.<locals>.<lambda>cSst| d¡ƒSrbrcr—rrrrtìrÌú%Y-%m-%dcSs
| d¡S©Nre©rdr—rrrrtörÌcSs
| d¡Srfrgr—rrrrtùrÌcSst| d¡ƒSrbrcr—rrrrtrÌcSs
| d¡Srbrgr—rrrrt    rÌrr©ú
2000-01-01r)r r) r*r+rrÚshiftr/r Zapplymapr¡r1ÚTrr )
rr:rrhrÝZdatetime_frame_intZdatetime_frame_strZdatetime_frame_columnsZ    nat_indexZ    nat_framerrrÚtest_to_csv_date_formatÝsRÿ ÿÿ  ÿÿ  ÿÿ ÿz*TestDataFrameToCSV.test_to_csv_date_formatÚtdrZ10sc    Cs t d¡Œ}tdddddd}||}| d¡}tjtt|ƒƒdd    }td
|i|d }|j    |d d t
|d d}t |j d d  d¡|_ t ||¡W5QRXdS)NÚcsv_date_format_with_dstz2013-10-26 23:00z2013-10-27 01:00z Europe/LondonrÍZinfer)rpr…Z    ambiguousr8r%rrTrrX©Úutc)r*r+r
r0r,r r6r2rr/r r rror1)rrlrÚtimesreZ
time_rangerQrRrrrÚ test_to_csv_with_dst_transitionss$ û
 ÿz3TestDataFrameToCSV.test_to_csv_with_dst_transitionsc    Csätddddd}| d¡}d|j_td|dœ|d}t d    ¡\}|j|d
dt|d d }t    |j
d
d   d¡|_
t    |dd
d   d¡|d<t  ||¡W5QRX|  t¡t d    ¡&}| |¡t |¡}t  ||¡W5QRXdS)Nz
2015-01-01z
2015-12-31rÍz Europe/Paris)r…rpr#)r5ÚidxrrmTrrXrnrrzdatetime64[ns, Europe/Paris])r
r0Ú_dataZ_freqrr*r+r/r r rrorõr1r•Z    to_pickler_Z read_pickle)rrrrQrrRrrrÚ,test_to_csv_with_dst_transitions_with_pickle1s&
  ÿÿ
 
 
z?TestDataFrameToCSV.test_to_csv_with_dst_transitions_with_picklec        CsLtddgddgdtjgddgdœƒ}d    d
d g}t |¡}| ¡}||ksLt‚|jdd }||ksdt‚d    d
d g}t |¡}|jtjd }||ks’t‚d ddg}t |¡}|jtj    d }||ksÀt‚d ddg}t |¡}|jtj
d }||ksît‚d}t j tj |d|jtjd W5QRXt j tj |d|jtjddW5QRXd    d
dg}t |¡}|jtjdd}||kszt‚dd
dg}t |¡}|jtjdd}||ks¬t‚ddg}t |¡}tt|ƒƒ}tƒ}|j|ddd| ¡|ksòt‚tddgd d!gd"d#gd$œƒ}| dd%g¡}d&d'd(g}t |¡}|jtj    d |ksHt‚dS))NTFrgš™™™™™    @é*r>zb,c)Úc_boolÚc_floatÚc_intZc_stringz,c_bool,c_float,c_int,c_stringz0,True,1.0,42.0,az1,False,3.2,,"b,c")r:z("","c_bool","c_float","c_int","c_string"z"0","True","1.0","42.0","a"z"1","False","3.2","","b,c"z0,True,1.0,42.0,"a"z1,False,3.2,"","b,c"z%need to escape, but no escapechar setrH)r:Ú
escapecharz1,False,3.2,,b!,cú!z,c_bool,c_ffloat,c_int,c_stringz1,False,3.2,,bf,cr™za,b,cz 1,"test 
",3r9r"r#r'r$rµrrÓ)r>r?rqr?z "a","b","c"z "1","3","5"z "2","4","6")rr,r-r*r5r/r3r;Ú QUOTE_MINIMALÚ    QUOTE_ALLr<rNrOÚErrorr?r rr=Z    set_index)    rrQr7rºrRrUZ    text_rowsr\r'rrrÚtest_to_csv_quotingJs†üÿ
ý
   ý
 ý
 ý
 ý
ý
 
 
 
z&TestDataFrameToCSV.test_to_csv_quotingcCsÞdddg}tj|dd}tdddg|d    }| ¡}d
d d d g}t |¡}||ksTt‚d}|j|d}d
dddg}t |¡}||ks†t‚dtdg}tj|dd}tdddg|d    }| ¡}d
d dd g}t |¡}||ksÚt‚dS)Nz
1990-01-01rhz
3005-01-01r)r…rµrrÓrz,0z 1990-01-01,4z 2000-01-01,5z 3005-01-01,6z%m-%d-%Yr`z 01-01-1990,4z 01-01-2000,5z 01-01-3005,6z,5)r_Z PeriodIndexrr/r*r5r3r)rÚdatesrrQrRr7rºrarrrÚtest_period_index_date_overflow¬s&
 
 
 
 
z2TestDataFrameToCSV.test_period_index_date_overflowcCspt ddddg¡}tddddgd    d
d d ggƒ}||_d dddg}|j|d}dddg}t |¡}||kslt‚dS)N)r>r#)r>r')r?r#)r?r'r#r'r$rµrrÓrÕrÖr>r?rqÚdrz,a,b,c,dz    0,1,2,3,4z    1,5,6,7,8)rrLrrr/r*r5r3)rrrQrrRr7rºrrrÚtest_multi_index_headerËs  
 
z*TestDataFrameToCSV.test_multi_index_headercCsRtdddgƒ}tdddgg|d}|jddgd}d}|jd    d
}t ||¡dS) N)r#)r')r$r#r'r$rz ,1,3
0,1,3
rIrF)rrZreindexr/r*r4)rrrQrºrRrrrÚ$test_to_csv_single_level_multi_indexØs  z7TestDataFrameToCSV.test_to_csv_single_level_multi_indexc
Cs€tdddgiƒ}dddg}t |¡}t d¡<}|j|ddtj|d    d
}| ¡ d ¡}W5QRXW5QRX||ks|t‚dS) Nr>r#r'r4Ú2z__test_gz_lineend.csv.gzFrÚgzip)rVr9)    rr*r5r+r/rZrJr–r3)rrQr7rºrr™rRrrrÚtest_gz_lineendás
 
 "z"TestDataFrameToCSV.test_gz_lineendcCs<tdtdddiƒ}tƒ}| |¡| ¡}d|ks8t‚dS)Nr>z1/1/2000r©)r†rh)rr
rr/r=r3)rrðr'rRrrrÚtest_to_csv_numpy_16_bugís
 
z+TestDataFrameToCSV.test_to_csv_numpy_16_bugcCs6tddgƒjddddd dd¡}d}||ks2t‚dS)NFr$)rrr÷rErIz""
""
)rr/Úreplacer3)rrRrºrrrÚtest_to_csv_na_quotingös ÿþÿz)TestDataFrameToCSV.test_to_csv_na_quotingcCsdtddtjgdœƒ}|d d¡|d<|d d¡|d<| ¡}ddd    g}t |¡}||ks`t‚dS)
Nr@r#rŽr?ZInt16Úcategoryz,a,bz0,x,1z1,x,)rr_ZNArõr/r*r5r3r6rrrÚtest_to_csv_categorical_and_eas
 
z1TestDataFrameToCSV.test_to_csv_categorical_and_eacCs^tdtjtdƒtdƒddgiƒ}|d d¡|d<| ¡}ddg}t |¡}||ksZt‚dS)    Nr>z
2020-01-01z
2020-01-02Zboth)rYrŠz,az0,"[2020-01-01, 2020-01-02]")    rr_ZIntervalr    rõr/r*r5r3r6rrrÚ$test_to_csv_categorical_and_interval sýÿÿÿ 
z7TestDataFrameToCSV.test_to_csv_categorical_and_interval)NNNNF)AÚ__name__Ú
__module__Ú __qualname__r r=rVrbrmrwr€rNÚmarkZ parametrizerƒZslowr’r§r»r½rÀrÂrÃrÅrÈrÏrÒrÙrÞrßròrörþrrrrrrr#r(r)r1r8r>r@rDrNrPrQrr^rkr_rkrqrtr~r€r‚rƒr†r‡r‰r‹rŒrrrrrsò& 
!
ø
iÿ ÿ
ÿ ÿ 
 
ÿýþ        .1
 
 
 
&    ýú     þôþ
!<
b           
r)r;ÚiorrKÚnumpyr,rNZ pandas.errorsrZpandasr_rrrrrr    r
r r Zpandas._testingZ_testingr*Zpandas.core.commonÚcoreÚcommonrîZpandas.io.commonr rrrrrÚ<module>s  ,