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
U
­ý°döÀã @s4ddlmZmZmZddlmZddlmZddlZddlZddl    Z
ddl Z ddl m mZddlZddlmZmZmZmZddlmZddlmZmZmZmZmZddlm Z e j!dd    „ƒZ"e j!d
d „ƒZ#e j$ %d e j&d e 'd¡e 'd¡gde j&de 'd¡e 'd¡gde j&d e 'd¡e 'd¡gde j&de 'd¡dg¡Gdd„dƒƒZ(e j$ %de j&dd e 'd¡e 'd¡gde j&dde 'd¡e 'd¡gde j&dd e 'd¡e 'd¡gde j&dde 'd¡dg¡e j$ )d ¡Gdd„dƒƒƒZ*Gdd„dƒZ+e 'd¡e 'd¡Gdd„dƒƒƒZ,e j$ %de  -¡¡dd „ƒZ.dS)!é)ÚdateÚdatetimeÚ    timedelta)Úpartial)ÚBytesION)Ú    DataFrameÚIndexÚ
MultiIndexÚoption_context)Ú    ExcelFileÚ ExcelWriterÚ_OpenpyxlWriterÚ _XlsxWriterÚregister_writer)Ú_writersc    cs t |¡ }|VW5QRXdS)z9
    Fixture to open file for use in each test case.
    N)ÚtmÚ ensure_clean)ÚextÚ    file_path©rúYd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/excel/test_writers.pyÚpath#s rc    cs2d| d¡›d}t||ƒ dVW5QRXdS)aM
    Fixture to set engine for use in each test case.
 
    Rather than requiring `engine=...` to be provided explicitly as an
    argument in each test, this fixture sets a global option to dictate
    which engine should be used to write Excel files. After executing
    the test it rolls back said change to the global option.
    z    io.excel.Ú.z.writerN)Ústripr
)ÚenginerZ option_namerrrÚ
set_engine,s
 rrú.xlsxÚopenpyxlZxlrd©Zmarksz.xlsmÚ
xlsxwriterz.odsZodfc    @seZdZej ddeejgdƒfdedejgdiƒfg¡dd„ƒZ    ej ddedgejgdƒfdeejgdƒfg¡d    d
„ƒZ
d d „Z d d„Z dd„Z ej dddg¡ej dddg¡ej dddg¡ej dddg¡dd„ƒƒƒƒZdd„Zdd„ZdS)Ú TestRoundTripzheader,expectedNérz
Unnamed: 0éc    Csxd}tdddgdddgdddgdd    d
ggƒ}t |¡,}|j||d d d tj||d g|d}W5QRXt ||¡dS)NZ    no_headerÚéédééÈr"é,r!éF©ÚindexÚheaderr©Ú
sheet_nameZusecolsr,©rrrÚto_excelÚpdÚ
read_excelÚassert_frame_equal©Úselfrr,ÚexpectedÚfilenameÚdfrÚresultrrrÚ!test_read_one_empty_col_no_headerGs( ÿz/TestRoundTrip.test_read_one_empty_col_no_headerc    Csxd}tdddgdddgdddgdd    d
ggƒ}t |¡,}|j|dd d d tj||dg|d}W5QRXt ||¡dS)NZ with_headerr#r$r%r&r'r"r(r!r)FTr*rr-r/r4rrrÚ#test_read_one_empty_col_with_headerXs( ÿz1TestRoundTrip.test_read_one_empty_col_with_headerc
CsÔtddgddgddggddgd    }t |¡ž}t|ƒ(}|j|d
d d d |j|d d dW5QRXddg|_t|ƒ2}tj|d
dddgd}tj|d dddgd}W5QRXt     ||¡t     ||¡W5QRXdS)Nr$Úfoor&Úbarr"ZbazÚaÚb©ÚcolumnsZ Data_no_headF)r,r+ZData_with_head©r+ÚAÚB)r.r,Únames)r.Ú    index_colrE)
rrrr r0rAr r1r2r3)r5rZrefdfÚpthÚwriterÚreaderZ xlsdf_no_headZxlsdf_with_headrrrÚ"test_set_column_names_in_parameterhs*" 
 
 
ÿü z0TestRoundTrip.test_set_column_names_in_parameterc
 
s¬dd„‰dddg}‡fdd„|Dƒ}tt||ƒƒ}t |¡f}t|ƒ$}| ¡D]\}}| ||¡qPW5QRXtj||dd    }|D]}    t     ||    ||    ¡q„W5QRXdS)
NcSs&dddgdddg}}t|||gdS)Né éé!r$r&r"r@)r)Zcol_sheet_nameÚdÚirrrÚtdf‡szDTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.tdfZAAAZBBBZCCCcsg|] }ˆ|ƒ‘qSrr)Ú.0Ús©rPrrÚ
<listcomp>szKTestRoundTrip.test_creating_and_reading_multiple_sheets.<locals>.<listcomp>r©r.rF)
ÚdictÚziprrr Úitemsr0r1r2r3)
r5rÚsheetsÚdfsrGÚewZ    sheetnamer8Z dfs_returnedrRrrSrÚ)test_creating_and_reading_multiple_sheets‚s
 
z7TestRoundTrip.test_creating_and_reading_multiple_sheetsc    Csöt |¡â}tddiddiddiddidœƒ}tddiddiddiddidœƒ}| |¡tj|ddgdd}t ||¡tddiddiddiddidœƒ}tddiddiddiddid    œƒ}| |¡tj|ddgdd}t ||¡W5QRXdS)
Nrr$r"é)©ZOneÚx©ÚTwoÚX©raÚY)ÚZeror#)r^r`rc)rezUnnamed: 4_level_1©r,rF))ÚBegr#©ZMiddler_©ÚTailrb©rjrd))rgzUnnamed: 1_level_1rhrirk©rrrr0r1r2r3)r5rrr8r6ÚactualrrrÚ&test_read_excel_multiindex_empty_levelšsF üÿ    üÿ    
 üÿ    üÿ    
z4TestRoundTrip.test_read_excel_multiindex_empty_levelÚ c_idx_namesTFÚ r_idx_namesÚ c_idx_levelsr$Ú r_idx_levelsc     CsDt |¡.}|dkr@|r@|dkr&|r@tjjdd}|j |¡|pJ|dk}    t dd||||¡}
|
 |¡t    j
|t t |ƒƒt t |ƒƒd} tj |
| |    dtj|
jddd…f<|
 |¡t    j
|t t |ƒƒt t |ƒƒd} tj |
| |    dtj|
jd    dd…f<|
 |¡t    j
|t t |ƒƒt t |ƒƒd} tj |
| |    dW5QRXdS)
Nr$r"z?Column index name cannot be serialized unless it's a MultiIndex)Úreasoné)rFr,)Ú check_namesréÿÿÿÿ)rrÚpytestÚmarkZxfailÚnodeZ
add_markerÚmakeCustomDataframer0r1r2ÚlistÚranger3ÚnpÚnanÚiloc) r5rrorprqrrÚrequestrGrxrur8ZactrrrÚtest_excel_multindex_roundtripÉsT ÿÿÿ  ÿ
 
 
ý
 
 
ý
 
 
ýz,TestRoundTrip.test_excel_multindex_roundtripc
Csøtdddgtjddddœƒ}| ¡}|dj d¡|d<t |¡ª}| |¡tj    |d    d
}t 
||¡tj    |dgd    d }t 
||¡d d „}tj t ddtj    |dg|d    d}W5QRXt 
||¡tj    |dgdd    d}t 
||¡W5QRXdS)Nr$r&r"z
2012-01-01)Úperiods)ÚcolÚ date_stringsr„ú%m/%d/%Yr©rF)Ú parse_datesrFcSs t |d¡S)Nr…)rÚstrptime©r_rrrÚ<lambda>óz;TestRoundTrip.test_read_excel_parse_dates.<locals>.<lambda>zuse 'date_format' instead©Úmatch)r‡Ú date_parserrF)r‡Ú date_formatrF) rr1Z
date_rangeÚcopyÚdtÚstrftimerrr0r2r3Zassert_produces_warningÚ FutureWarning)r5rr8Zdf2rGÚresrŽrrrÚtest_read_excel_parse_datesþs<ÿ 
  ÿü ÿz)TestRoundTrip.test_read_excel_parse_datesc    Csšt tdƒtjt d¡dddg¡}ttdƒ|d}t |¡"}|     |¡tj
|ddgd}W5QRXttdƒt tdƒd    d
d d gg¡ƒ}t  ||¡dS) Nr!z
2020-01-01Z6M)Ústartr‚ÚfreqrBrr$r†z(2020-01-31, 2020-07-31]z(2020-07-31, 2021-01-31]z(2021-01-31, 2021-07-31]z(2021-07-31, 2022-01-31]) r    Ú from_arraysr|r1Zinterval_rangeÚ    Timestamprrrr0r2r3)r5rZmidxr8rGr9r6rrrÚ"test_multiindex_interval_datetimess4ÿþÿ 
üþÿþz0TestRoundTrip.test_multiindex_interval_datetimes)Ú__name__Ú
__module__Ú __qualname__rwrxÚ parametrizerr}r~r:r;rJr\rnrr•ršrrrrr ;s( *þ
,þ
/1!r z
engine,extc@sJeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    e
j   de je je je jg¡dd„ƒZe
j   de je je jg¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z d(d)„Z!d*d+„Z"d,d-„Z#d.d/„Z$d0d1„Z%d2d3„Z&d4d5„Z'd6d7„Z(d8d9„Z)d:d;„Z*d<d=„Z+e
j   d>d?d@g¡e
j   dAdBdCdDg¡e
j   dEdBdCdDg¡dFdG„ƒƒƒZ,dHdI„Z-dJdK„Z.dLdM„Z/e
j   dNdOdPg¡dQdR„ƒZ0dSdT„Z1dUdV„Z2dWdX„Z3dYdZ„Z4d[d\„Z5d]d^„Z6d_d`„Z7dadb„Z8dcdd„Z9dedf„Z:dgdh„Z;didj„Z<dkdl„Z=e
j   dmdne>g¡dodp„ƒZ?dqdr„Z@dsdt„ZAdudv„ZBdwdx„ZCdnS)yÚTestExcelWriterc        Csˆd}d}tj|dfd}tjd|fd}t|ƒ}t|ƒ}d}tjt|d| |¡W5QRXtjt|d| |¡W5QRXdS)Nii@r$)Úshapezsheet is too largerŒ)r}ÚzerosrrwÚraisesÚ
ValueErrorr0)    r5rZbreaking_row_countZbreaking_col_countZrow_arrZcol_arrZrow_dfZcol_dfÚmsgrrrÚtest_excel_sheet_sizeUsz%TestExcelWriter.test_excel_sheet_sizec    Cszttj dd¡ƒ}| |¡t|ƒ}tj|ddd}W5QRXt     ||¡d}t
j t |dt |d¡W5QRXdS)Né
r&rrUzWorksheet named '0' not foundrŒÚ0) rr}ÚrandomÚrandnr0r r1r2rr3rwr¢r£)r5rÚgtÚxlr8r¤rrrÚtest_excel_sheet_by_name_raisefs
 
 z.TestExcelWriter.test_excel_sheet_by_name_raisec    Cs–t|ƒ8}| |d¡| ¡}|jddd…|_| |d¡W5QRXt|ƒ>}tj|ddd}tj|ddd}t ||¡t ||¡W5QRXdS)NZData1rvZData2rrU)    r r0rrAr r1r2rr3)r5ÚframerrHÚframe2rIZfound_dfZ    found_df2rrrÚ!test_excel_writer_context_managerss
 
 z1TestExcelWriter.test_excel_writer_context_managercCsÒ| ¡}tj|jdd…|j d¡f<| |d¡|j|dddgd|j|ddd|j|ddd| |d¡tj|dd    d
}t     
||¡|j|dddtj|ddd
}|j |_ t     
||¡|j|dd d tj|dd    d gd }t     
||¡|j|ddd tj|dd    dgd }t     
||¡|j|ddd tj|dd    ddgd }t     
||¡| |d¡tj|d    d}t     
||¡| |d¡tj|d    d}t     
||¡|d}| |¡tj|d    d}t     
|  ¡|¡dS)NrtrCÚtest1rDr@F©r,rBrrUZNA)Zna_rep)r.rFZ    na_valuesZ88éXgV@ÚSheet1r†r§) rr}r~rrAÚget_locr0r1r2rr3r+Zto_frame)r5r­rÚreconsrRrrrÚtest_roundtripsJ      ÿ     
zTestExcelWriter.test_roundtripc    CsP| ¡}d|d<| |d¡t|ƒ}tj|ddd}W5QRXt ||¡dS)Nr=r<r°rrU)rr0r r1r2rr3)r5r­rZ mixed_framerIrµrrrÚ
test_mixed²s  
zTestExcelWriter.test_mixedc    Cs`|}tjt |j¡dd}||_| |d¡t|ƒ}tj|ddd}W5QRXt     ||¡dS)N©r—r°rrU)
r1Ú DatetimeIndexr}Úasarrayr+r0r r2rr3)r5Útsframerr8r+rIrµrrrÚ test_ts_frame»s 
zTestExcelWriter.test_ts_framecCsh| ¡}tj|jdd…|j d¡f<| |d¡|j|dddgd|j|ddd|j|ddddS)    NrtrCr°rDr@Fr±rB)rr}r~rrAr´r0)r5r­rrrrÚtest_basics_with_nanÇs  z$TestExcelWriter.test_basics_with_nanÚnp_typec    Cs‚ttjjdddd|d}| |d¡t|ƒ}tj|ddd}W5QRX| tj    ¡}t
  ||¡tj|ddd}t
  ||¡dS)    Néöÿÿÿr¦)r¦r&©Úsize©Údtyper°rrU) rr}r¨Úrandintr0r r1r2ÚastypeÚint64rr3)r5r¾rr8rIrµZ    int_frameZrecons2rrrÚtest_int_typesÏs 
  zTestExcelWriter.test_int_typesc    CsZttj d¡|d}| |d¡t|ƒ}tj|ddd |¡}W5QRXt     
||¡dS)Nr¦rÂr°rrU) rr}r¨Z random_sampler0r r1r2rÅrr3)r5r¾rr8rIrµrrrÚtest_float_typesßs 
ÿz TestExcelWriter.test_float_typesc    Cs^tddddgtjd}| |d¡t|ƒ}tj|ddd tj¡}W5QRXt     ||¡dS)Nr$rTFrÂr°rU)
rr}Zbool_r0r r1r2rÅrr3©r5rr8rIrµrrrÚtest_bool_typesìs 
ÿzTestExcelWriter.test_bool_typesc    Cs\tdtjfddtj fgƒ}| |d¡t|ƒ}tj|ddd}W5QRXt ||¡dS)Nr$)r&r"rtr°rrU)    rr}Úinfr0r r1r2rr3rÉrrrÚtest_inf_roundtripøs
 
z"TestExcelWriter.test_inf_roundtripc    Cs8tjt |j¡dd}||_| ¡}tj|jdd…|j     d¡f<| 
|d¡|j
|dddgd|j
|ddd|j
|ddd    t |ƒ}| 
|d¡| 
|d
¡W5QRXt |ƒ>}tj |dd d }t ||¡tj |d
d d }t ||¡W5QRXd t|jƒks t‚d|jd ks t‚d
|jdks4t‚dS)Nr¸rtrCr°rDr@Fr±rBZtest2rrUr&r$)r1r¹r}rºr+rr~rrAr´r0r r r2rr3ÚlenÚ sheet_namesÚAssertionError)r5r­r»rr+rHrIrµrrrÚ test_sheetss& 
 
 zTestExcelWriter.test_sheetsc    CsÆ| ¡}tj|jdd…|j d¡f<| |d¡|j|dddgd|j|ddd|j|dddtd    d
d d gƒ}|j|d|dt|ƒ}t    j
|dd d}W5QRX| ¡}||_t   ||¡dS)NrtrCr°rDr@Fr±rBZAArbrdÚZrrU) rr}r~rrAr´r0rr r1r2rr3)r5r­rZ col_aliasesrIÚrsÚxprrrÚtest_colaliasess 
zTestExcelWriter.test_colaliasesc    Cs,| ¡}tj|jdd…|j d¡f<| |d¡|j|dddgd|j|ddd|j|dddttj     d    d
¡ƒd k}|j|dd g|d t
|ƒ}t j |dd d  tj¡}W5QRXd g|j_|jj|jjksØt‚ttj     d    d
¡ƒd k}|j|dd ddg|d t
|ƒ}t j |dd d  tj¡}W5QRXd g|j_|jj|jjksRt‚ttj     d    d
¡ƒd k}|j|dd |d t
|ƒ}t j |dd d  tj¡}W5QRXd g|j_t ||  t¡¡|j|dddddgd|d| ¡}| ddg¡}t
|ƒ}t j |dd dgd}W5QRXt ||¡dS)NrtrCr°rDr@Fr±rBr¦r&rÚtest)Z index_labelÚ merge_cellsrUÚdummyZdummy2ÚCÚD)rAr+rÖr$)rr}r~rrAr´r0rr¨r©r r1r2rÅrÆr+rErÏrr3ÚboolÚ    set_index)r5rÖr­rr8rIrµrrrÚtest_roundtrip_indexlabels-s^ 
ÿ
ü
ÿ
 
ÿ
 
û
z*TestExcelWriter.test_roundtrip_indexlabelsc    Csrttj dd¡ƒ}d|j_|j||dt|ƒ}tj    ||j
ddd}W5QRXt   ||¡|jjdksnt ‚dS)Nr¦r!r<©rÖrrU)rr}r¨r©r+Únamer0r r1r2rÎrr3rÏ)r5rÖrr8Úxfr9rrrÚtest_excel_roundtrip_indexnamefs
  z.TestExcelWriter.test_excel_roundtrip_indexnamec    Csztjt |j¡dd}||_| ¡}dd„|jDƒ|_|j|d|dt|ƒ}tj|ddd}W5QRXt     
||¡dS)Nr¸cSsg|] }| ¡‘qSr)r)rQr_rrrrT{szATestExcelWriter.test_excel_roundtrip_datetime.<locals>.<listcomp>r°rÝrrU) r1r¹r}rºr+rr0r r2rr3)r5rÖr»rr+ZtsfrIrµrrrÚtest_excel_roundtrip_datetimers
z-TestExcelWriter.test_excel_roundtrip_datetimec
Cs\ttdddƒtdddƒgtddd    d
d d ƒtdd ddddƒggddgddgd}ttdddƒtdddƒgtddd    d
d d ƒtdd ddddƒggddgddgd}t |¡”}t|ƒ}| |d¡W5QRXt|ddd}| |d¡W5QRXt|ƒ}tj    |ddd}    W5QRXt|ƒ}
tj    |
ddd} W5QRXW5QRXt 
|    | ¡t 
| |¡dS)NiÞr$éiÏé    éiÎrtéérMr!r&éé ZDATEZDATETIMErbrd©r+rAr°z
DD.MM.YYYYzDD.MM.YYYY HH-MM-SS)rZdatetime_formatrrU) rrrrrr r0r r1r2r3) r5rrr8Z df_expectedÚ    filename2Zwriter1Zwriter2Zreader1Zrs1Zreader2Zrs2rrrÚtest_excel_date_datetime_formatƒs<"þú"þú     
ý
 
$ z/TestExcelWriter.test_excel_date_datetime_formatc    Cs’ttjjddddtjd}| ¡}t |dd¡|d<t |dd¡ t    ¡|d<| 
|d¡t |ƒ}tj |ddd    }W5QRXt  ||¡dS)
Nr¿r¦©ér$rÀrÂrÚnewr°rU)rr}r¨rÄrÆrr1ÚcutrÅÚstrr0r r2rr3©r5rr8r6rIrµrrrÚ test_to_excel_interval_no_labels¯s 
z0TestExcelWriter.test_to_excel_interval_no_labelsc Cs¦ttjjddddtjd}| ¡}tj|ddddd    d
d d d dddg
d}||d<t t    |ƒ¡|d<| 
|d¡t |ƒ}tj |ddd}W5QRXt  ||¡dS)Nr¿r¦rìrÀrÂrrCrDrØrÙÚEÚFÚGÚHÚIÚJ)Úlabelsrîr°rU)rr}r¨rÄrÆrr1rïZSeriesr{r0r r2rr3)r5rr8r6Z    intervalsrIrµrrrÚtest_to_excel_interval_labels¾sÿ 
z-TestExcelWriter.test_to_excel_interval_labelsc    Cs”ttjjdddddgtjd}| ¡}|d dd„¡|d    <|d d
d„¡|d    <| |d ¡t|ƒ}t    j
|d d d }W5QRXt   ||¡dS)Nr¿r¦rìrÀrC)rArÃcSs
t|dS)N©Úseconds)rr‰rrrrŠØr‹z9TestExcelWriter.test_to_excel_timedelta.<locals>.<lambda>rîcSst|d ¡dS)Nrûi€Q)rÚ total_secondsr‰rrrrŠÚr‹r°rrU) rr}r¨rÄrÆrÚapplyr0r r1r2rr3rñrrrÚtest_to_excel_timedeltaÏsÿÿ 
z'TestExcelWriter.test_to_excel_timedeltac    CsX|jddd ¡}| |d¡t|ƒ}tj|ddd}W5QRXt || d¡¡dS)NÚMZperiod)ÚkindZsht1rrU)    ZresampleZmeanr0r r1r2rr3Z    to_period)r5r»rrÓrIrÒrrrÚtest_to_excel_periodindexâs
 
z)TestExcelWriter.test_to_excel_periodindexc    Cs¦tjt|jƒdtjd dd¡}tj|ddgd}||_|j|ddd    |j|dd
d gd |j|d|d t    |ƒ}t
j |dddgd}W5QRXt   ||¡dS)Nr&rÂrvÚfirstÚsecond©rEr°Fr±rCrDr@rÝrr$rU)r}ÚarangerÍr+rÆÚreshaper    r˜r0r r1r2rr3)r5rÖr­rÚarraysÚ    new_indexrIr8rrrÚtest_to_excel_multiindexës"
z(TestExcelWriter.test_to_excel_multiindexcCsbtdddgdddgtj d¡dœƒ}| ddg¡}|j||d    tj|d
d gd }t     ||¡dS) Nr&r"r¦ríé©rCrDrØrCrDrÝrr$r†)
rr}r¨ÚsamplerÛr0r1r2rr3)r5rÖrr8Zdf1rrrÚ"test_to_excel_multiindex_nan_labelús
$z2TestExcelWriter.test_to_excel_multiindex_nan_labelc     CsÖtjt|jƒdtjd dd¡}tj|ddgd}||_t ddd    d
g¡}||_    d d g}|sbd }|j
|d |dt |ƒ}t j |d |d d gd}    W5QRX|sÆ|j    jdddd}
dd„t|
ŽDƒ|_    t ||    ¡dS)Nr&rÂrvrrr)é(r$)rr&)é2r$)rr&rr$r°rÝ©r.r,rFF)ZsparsifyZadjoinrEcSsg|]}d tt|ƒ¡‘qS)r)ÚjoinÚmaprð)rQÚqrrrrTszATestExcelWriter.test_to_excel_multiindex_cols.<locals>.<listcomp>)r}rrÍr+rÆrr    r˜Ú from_tuplesrAr0r r1r2ÚformatrWrr3) r5rÖr­rrr    Znew_cols_indexr,rIr8ZfmrrrÚtest_to_excel_multiindex_colss("
ÿz-TestExcelWriter.test_to_excel_multiindex_colsc    CsŒ|jtjt|jƒtjdg}t |¡|_ddg|j_|j|d|dt    |ƒ}t
j |dddgd}W5QRXt   ||¡|jjd    ksˆt‚dS)
NrÂÚtimer<r°rÝrr$rU)rr<)r+r}rrÍrÆr    r˜rEr0r r1r2rr3rÏ)r5rÖr»rr    rIrµrrrÚtest_to_excel_multiindex_datess  
 z.TestExcelWriter.test_to_excel_multiindex_datesc    Csztddgddgddgdœƒ}| ¡}t dd    g¡}||_|j|d
d d t|ƒ}tj|d
d }W5QRXt     
||¡dS)Nr¦rír rré<)r>r?Úc)éFéP)éZr%r°FrB©r.) rrr    rr+r0r r1r2rr3)r5rZframe1r®Z multi_indexrIZframe3rrrÚ'test_to_excel_multiindex_no_write_index(s
z7TestExcelWriter.test_to_excel_multiindex_no_write_indexc    Csttgdddgd}tgtjgddgddgd}| |d¡t|ƒ}tj|dd}W5QRXtj||d    d    d
dS) Nrr$r&r@rrér°rF)Zcheck_index_typeZ check_dtype)    rr    rr0r r1r2rr3)r5rr6r8rIr9rrrÚtest_to_excel_empty_multiindex=s 
ÿz.TestExcelWriter.test_to_excel_empty_multiindexc    Cs”tdddgdddggddgd    d
d gd }|j|d ddt|ƒ}tj|d dd}W5QRXtdddgdddggddgd    d
d gd }t ||¡dS)Nç¿¶~úϚ¿?ç9DܜJÎ?ç>éD‚)â?çÜ.4×i¤(@ç33333þ@çÍÌÌ̤œArCrDrbrdrÑrér°ú%.2f©Z float_formatrrU縅ëQ¸¾?çq=
×£pÍ?ç=
×£p=â?ç¤p=
×£(@)rr0r r1r2rr3)r5rr8rIr9r6rrrÚtest_to_excel_float_formatJsý
ýz*TestExcelWriter.test_to_excel_float_formatc    Csptdddgdddggddgd    d
d gd }t d |¡0}|j|ddtj|ddd}t ||¡W5QRXdS)NuƒuƓuƔuƕuƖuƗuAƒrDuXƓrdrÑréz__tmp_to_excel_float_format__.Z    TestSheetrrrUr/)r5rr8r7r9rrrÚtest_to_excel_output_encoding\sýz-TestExcelWriter.test_to_excel_output_encodingc
Csèt d|¡œ}zt|dƒW5QRXWntk
rHt d¡YnXtdddgddd    ggd
d gd d dgd}|j|dddt|ƒ}t    j
|ddd}W5QRXW5QRXtdddgddd    ggd
d gd d dgd}t  ||¡dS)Nuƒu.Úwbz$No unicode file names on this systemr"r#r$r%r&r'rCrDrbrdrÑrér°r(r)rrUr*r+r,r-) rrÚopenÚUnicodeEncodeErrorrwÚskiprr0r r1r2r3)r5rr7r8rIr9r6rrrÚtest_to_excel_unicode_filenameis( ý
$ýz.TestExcelWriter.test_to_excel_unicode_filenameÚ use_headersTFÚ r_idx_nlevelsr$r&r"Ú c_idx_nlevelsc    s(d‡‡fdd„    }|rdnd}|tdgƒ||ƒ}|jdks<t‚|jdtjk    sPt‚d}    d}
tj|    |
||d    } |d
kr d } tj    t
| d || |d dW5QRXn„|| |ƒ}|rÆ|j|    |
|fksàt‚n|j|    d
|
|fksàt‚t t |j ƒƒD]4} t t |jƒƒD] }|j| |ftjk    st‚qqîdS)NTrc
sH|jˆ|ˆ|dtˆƒ$}tj||jd|dW5QR£SQRXdS)N)r,rÖr+r©r.r,)r0r r1r2rÎ)Údatar,Z
parser_hdrr+rß©rÖrrrÚ    roundtripˆs
ÿz;TestExcelWriter.test_excel_010_hemstring.<locals>.roundtrip)r$r&)rrrtr")r6r7r$z_Writing to Excel with MultiIndex columns and no index \('index'=False\) is not yet implemented.rŒFrB)TrT)rr rÏrr}r~rrzrwr¢ÚNotImplementedErrorr|rÍr+rA)r5rÖr7r6r5rr;Z parser_headerr”ZnrowsZncolsr8r¤Úrrrr:rÚtest_excel_010_hemstring‚s2     ÿÿ
z(TestExcelWriter.test_excel_010_hemstringcCsBtdddgdddgdddggdddgd}| |d¡tdddgdddgdddggdddgd}tj|dd    d
}t ||¡tdddd gd d ddggddddgd}| |d¡tj|dd    d
}tdddd gd d ddggddddgd}t ||¡|j|ddddtj|ddd}tdddd gd d ddggƒ}t ||¡dS)Nr$r&r"rCrDr@r°zB.1rrUr!rtér]éúA.1Fr*r8©rr0r1r2rr3©r5rr8r6r9rrrÚtest_duplicated_columns¹s(* ÿ ( 
ÿ z'TestExcelWriter.test_duplicated_columnscCsjtdddgdddgdœƒ}|j|dddgdtj|ddd    }t |d|d¡t |d|d¡dS)
Nr$r&©rCrDr°rDrCr@rr8)rr0r1r2rÚassert_series_equal)r5rÚ write_frameÚ
read_framerrrÚtest_swapped_columnsÖs
z$TestExcelWriter.test_swapped_columnsc    Csztdddgdddgdœƒ}tjtdd|j|dddgd    W5QRXtjtd
d|j|ddd gd    W5QRXdS) Nr$r&rEzNot all names specifiedrŒr°rDrØr@z.'passes columns are not ALL present dataframe'rÙ)rrwr¢ÚKeyErrorr0)r5rrGrrrÚtest_invalid_columnsàsÿz$TestExcelWriter.test_invalid_columnsz#to_excel_index,read_excel_index_col)Tr)FNcCsdtdddgdddgdddgdœƒ}|j|dddg|d|ddg}tj|d|d    }t ||¡dS)
Nr$r&r"r Zcol_subset_bugrCrD©rAr+rUrB)r5rZto_excel_indexZread_excel_index_colrGr6rHrrrÚtest_write_subset_columnsìs    "ÿ ÿz)TestExcelWriter.test_write_subset_columnscCsvtdddgdddgdœƒ}| |d¡tj|ddd}d|jd    <d|jd
<d|jd <tj|dd dd }t ||¡dS)NÚoneú#oneÚtwoú#tworEÚtest_crrU)r$r©r$r$)r&r$ú#©r.ÚcommentrF)rr0r1r2rrr3©r5rr8Zresult1Zresult2rrrÚtest_comment_args 
 
 
z TestExcelWriter.test_comment_argcCsTtdddgdddgdœƒ}| |d¡tj|dd}tj|ddd}t ||¡dS)    NrNrOrPrQrErRr)r.rVrBrWrrrÚtest_comment_defaults
 z$TestExcelWriter.test_comment_defaultcCsbtdddgdddgdœƒ}| |d¡tdddgdddgdœƒ}tj|dddd    }t ||¡dS)
NrNrOrPrQrErRrTrrUrBrCrrrÚtest_comment_used!s
 z!TestExcelWriter.test_comment_usedcCsTtddgddgdœƒ}|j|ddtdgd    gdœƒ}tj|d
d }t ||¡dS) NÚ1z#2Ú2Ú3)r>r?FrBr$r&rT)rVrBrCrrrÚtest_comment_empty_line/s
z'TestExcelWriter.test_comment_empty_linecCsôtddddddƒtddddddƒtddddd    d
ƒtdddd dd ƒtdddd ddƒtddddddƒtddddddƒtddddddƒtdddddd ƒtddddddƒtddddddƒg }td|iƒ}| |d¡tj|ddd }t |d|d¡dS)!NiÝr$rèr&r"é-é8r!éé1r?é*r]é9é#rãé)rçrKéééé5éé%réríé4rCr³r8)rrr0r1r2rrF)r5rZ    datetimesrGrHrrrÚtest_datetimes;s õ  zTestExcelWriter.test_datetimesc
Csntƒ^}ttj dd¡ƒ}t||d}| |¡W5QRX| d¡tj    |dd}t
  ||¡W5QRXdS)Nr¦r&©rrr†) rrr}r¨r©r r0Úseekr1r2rr3)r5rZbior8rHZ    reread_dfrrrÚ test_bytes_ioQs
zTestExcelWriter.test_bytes_iocCs~tdddgdddœgdddgd    d
d gd œƒ}| |d ¡tj|d ddd}| ¡}|j t¡|_|j     d¡|_t
  ||¡dS)Nr>r?rÚer&)rNÚfr$g@ZappleZbananaZcherry)ÚmixedÚnumericrðr³rrrÆ) rr0r1r2rrurþrðrvrÅrr3©r5rr8Úreadr6rrrÚtest_write_lists_dict^sýÿ z%TestExcelWriter.test_write_lists_dictcCsFtddgddgdœƒ}| |d¡tj|ddd}|}t ||¡dS)    Nr$r&r"r!)Úrenderr9r³rr†rBrwrrrÚtest_render_as_column_nameps
 z*TestExcelWriter.test_render_as_column_namecCsVtddggddgd}| dddœ¡}| |¡tj|dgdgd    d
}t ||¡dS) Nr<r=Úcol1Úcol2r@TF)r<r=r)Z true_valuesZ false_valuesrF)rÚreplacer0r1r2rr3)r5rr8r6rHrrrÚ!test_true_and_false_value_optionsxs
ÿz1TestExcelWriter.test_true_and_false_value_optionscCsJtddgddggddgd}|j|dd    d
tj|d d }t ||¡dS) Nr$r&r"r!r|r}r@r³rS)Z freeze_panesrr†rB)r5rr6r9rrrÚtest_freeze_panesƒsz!TestExcelWriter.test_freeze_panescCsJt ¡}t|j|d}ttjdd}tj||d|›d}t ||¡dS©Nrprr†r<)r)rÚ makeDataFramerr0r1r2Zround_trip_pathlibr3©r5rrr8rHrIr9rrrÚtest_path_path_lib‹s
z"TestExcelWriter.test_path_path_libcCsJt ¡}t|j|d}ttjdd}tj||d|›d}t ||¡dSr)rr‚rr0r1r2Zround_trip_localpathr3rƒrrrÚtest_path_local_path“s
z$TestExcelWriter.test_path_local_pathcCs¬t t d¡t d¡ft d¡t d¡fg¡}ttjddd|d}| |¡tj|dd    gdd
}|j    j
d d „|j dDƒd d „|j d    Dƒgdd    gd |_    t   ||¡dS)NZ2018Z2018Q1Z2018Q2)r&r&rÆrÂr@rr$rfcSsg|] }t|ƒ‘qSr)rð)rQrOrrrrT¨szCTestExcelWriter.test_merged_cell_custom_objects.<locals>.<listcomp>)Úlevel)r    rr1ZPeriodrr}Zonesr0r2rAZ
set_levelsÚlevelsrr3)r5rÚmir6r9rrrÚtest_merged_cell_custom_objects›sþÿ
&þz/TestExcelWriter.test_merged_cell_custom_objectsrÃNc    Cs‚|}tjd|d}t|g|d}tjtdd| |¡W5QRX| ¡}t|g|d}tjtdd| |¡W5QRXdS)NZ2019)ÚtzrÂzExcel does not supportrŒ)r1r™rrwr¢r£r0Z to_pydatetime)r5rÃZtz_aware_fixturerrŠr9r8rrrÚ test_raise_when_saving_timezones­sz0TestExcelWriter.test_raise_when_saving_timezonescCshtddgddgdœƒ}|j|dddgdd    t |¡}tdddgdddggddd
gd }t ||¡dS) Nrr$r¦rKrErCrDFrLrAr@rB)r5rr8r9r6rrrÚ'test_excel_duplicate_columns_with_names»s
 
"z7TestExcelWriter.test_excel_duplicate_columns_with_namesc
CsJd}t |¡2}tjtt |¡dt|ddW5QRXW5QRXdS)Nz7if_sheet_exists is only valid in append mode (mode='a')rŒr~)Zif_sheet_exists)rrrwr¢r£ÚreÚescaper )r5rr¤rtrrrÚtest_if_sheet_exists_raisesÄs z+TestExcelWriter.test_if_sheet_exists_raisesc
CsZt |¡F}t||d}tƒ |¡W5QRXt |¡}tƒ}t ||¡W5QRXdS©Nrp)rrr rr0r1r2r3)r5rrrrHr9r6rrrÚtest_excel_writer_empty_frameÌs  
z-TestExcelWriter.test_excel_writer_empty_framec    CsFt |¡2}tƒj||dt |¡}tƒ}t ||¡W5QRXdSrrl)r5rrrr9r6rrrÚtest_to_excel_empty_frameÕs
 
z)TestExcelWriter.test_to_excel_empty_frame)Dr›rœrr¥r¬r¯r¶r·r¼r½rwrxržr}Zint8Úint16Úint32rÆrÇÚfloat16Úfloat32Úfloat64rÈrÊrÌrÐrÔrÜràrárëròrúrÿrr
rrrr r!r.r/r4r>rDrIrKrMrXrYrZr^rorrryr{rr€r„r…r‰Úobjectr‹rŒrr‘r’rrrrrŸ>s‚ 1     
 
     9 ,        4
 þþ
 
        rŸc
@sZeZdZej dejede     d¡deje
de     d¡dg¡dd„ƒZ dd    „Z d
d „Z d S) ÚTestExcelWriterEngineTestsz    klass,extrrrrc
Cs^t |¡J}t|ƒ6}|dkr8t d¡r8t|tƒsFt‚nt||ƒsFt‚W5QRXW5QRXdS)Nrr)rrr ÚtdZ safe_importÚ
isinstancerrÏ)r5ÚklassrrrHrrrÚtest_ExcelWriter_dispatchßs
 
z4TestExcelWriterEngineTests.test_ExcelWriter_dispatchc    Cs&tjtddtdƒW5QRXdS)Nz    No enginerŒZnothing)rwr¢r£r ©r5rrrÚ test_ExcelWriter_dispatch_raisesïsz;TestExcelWriterEngineTests.test_ExcelWriter_dispatch_raisesc Cs¸Gdd„dtƒ}t|ƒtddƒ`d}t |¡>}t|ƒ}t||ƒsLt‚W5QRXt dd¡}| |¡W5QRX|     ¡W5QRXt d¡}|j|ddW5QRX|     ¡dS)    Nc@sPeZdZdZdZdZdZdZdd„Zdd„Z    dd    „Z
e d
d „ƒZ e d d „ƒZdS)zCTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClassF)ZxlsxZxlsr×cSsdS)NrržrrrÚbookûszHTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.bookcSsdt|ƒ_dS©NT)ÚtypeÚ called_saveržrrrÚ_saveþszITestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._savec_sdt|ƒ_dSr¡)r¢Úcalled_write_cells)r5ÚargsÚkwargsrrrÚ _write_cellsszPTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass._write_cellscSsdt|ƒ_dSr¡)r¢Ú called_sheetsržrrrrYszJTestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.sheetscSs.|js
t‚|jst‚|jrt‚d|_d|_dS)NF)r£rÏr¥r©)ÚclsrrrÚassert_called_and_resets
 
 
 
z[TestExcelWriterEngineTests.test_register_writer.<locals>.DummyClass.assert_called_and_resetN)r›rœrr£r¥r©Z_supported_extensionsZ_enginer r¤r¨ÚpropertyrYÚ classmethodr«rrrrÚ
DummyClassôs
r®zio.excel.xlsx.writerr×zsomething.xlsxr$z something.xlsrp)
r rr
rrr›rÏrzr0r«)r5r®rÚfilepathrHr8rrrÚtest_register_writerós  
  z/TestExcelWriterEngineTests.test_register_writerN)r›rœrrwrxržÚparamrršÚ
skip_if_nor rrŸr°rrrrr™Þsþþ
    r™c@seZdZdd„Zdd„ZdS)Ú
TestFSPathc
Cs^t d¡J}tdddgiƒ}| |¡t|ƒ}t |¡}W5QRX||ksPt‚W5QRXdS)Núfoo.xlsxrCr$r&)rrrr0r ÚosÚfspathrÏ)r5rr8r«r9rrrÚtest_excelfile_fspath#s  
 
z TestFSPath.test_excelfile_fspathc
CsDt d¡0}t|ƒ}t |¡t|ƒks,t‚W5QRXW5QRXdS)Nr´)rrr rµr¶rðrÏ)r5rrHrrrÚtest_excelwriter_fspath+s 
z"TestFSPath.test_excelwriter_fspathN)r›rœrr·r¸rrrrr³ sr³rœcCs6dd„ttƒDƒ}dd„t|ƒDƒ}| |¡r2t‚dS)NcSsh|]}| d¡s|’qS©Ú_©Ú
startswith©rQrÞrrrÚ    <setcomp>4s
z%test_subclass_attr.<locals>.<setcomp>cSsh|]}| d¡s|’qSr¹r»r½rrrr¾5s
)Údirr Úsymmetric_differencerÏ)rœZ
attrs_baseZ attrs_klassrrrÚtest_subclass_attr1srÁ)/rrrÚ    functoolsrÚiorrµrÚnumpyr}rwZpandas.util._test_decoratorsÚutilZ_test_decoratorsršZpandasr1rrr    r
Zpandas._testingZ_testingrZpandas.io.excelr r r rrZpandas.io.excel._utilrZfixturerrrxržr±r²r Z usefixturesrŸr™r³ÚvaluesrÁrrrrÚ<module>s€    
 
ÿúþ yýýýðþ
B