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
Ë
nñúhâ€ãó—dZddlmZddlmZmZmZmZddlZddl    Z    ddl
Z
ddl m Z m Z mZmZddlZddlZddlmZddlmZddlmZdd    lmZdd
lmZmZdd lmZm Z m!Z!m"Z"ddl#m$cm%Z&dd l'm(Z(dd l)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1e rddl2m3Z3m4Z4m5Z5m6Z6ddlm7Z7Gd„d«Z8Gd„de8«Z9Gd„d«Z:Gd„d«Z;y)zC
Utilities for conversion to writer-agnostic Excel representation.
é)Ú annotations)ÚHashableÚIterableÚMappingÚSequenceN)Ú TYPE_CHECKINGÚAnyÚCallableÚcast)Ú is_list_like)Údoc)Úfind_stack_level)Úmissing)Úis_floatÚ    is_scalar)Ú    DataFrameÚIndexÚ
MultiIndexÚ PeriodIndex)Ú _shared_docs)Ú CSS4_COLORS)Ú CSSResolverÚ
CSSWarning)Úget_level_lengths)Ú pprint_thing)ÚFilePathÚ
IndexLabelÚStorageOptionsÚWriteExcelBuffer©Ú ExcelWritercó6—eZdZdZeZ            d                                    dd„Zy)Ú    ExcelCell©ÚrowÚcolÚvalÚstyleÚ
mergestartÚmergeendNcóX—||_||_||_||_||_||_y©Nr$)Úselfr%r&r'r(r)r*s       úJH:\Change_password\venv_build\Lib\site-packages\pandas/io/formats/excel.pyÚ__init__zExcelCell.__init__Cs.€ðˆŒØˆŒØˆŒØˆŒ
Ø$ˆŒØ ˆ ó)NNN)
r%Úintr&r1r)ú
int | Noner*r2ÚreturnÚNone)Ú__name__Ú
__module__Ú __qualname__Ú
__fields__Ú    __slots__r/©r0r.r#r#?sL„ØI€JØ€IðØ!%Ø#ð!à ð!ðð!ð ð !ðð!ð
ô!r0r#có@‡—eZdZ                                                                dˆfd„ ZˆxZS)Ú CssExcelCellc     óԕ—|rK|rI|||fD
cic]\}
}|
j«|“Œ} }
}t| j««} || «}t‰ |d|||dœ|    ¤Žycc}}
w)N©r%r&r'r(r:)ÚlowerÚ    frozensetÚitemsÚsuperr/)r-r%r&r'r(Ú
css_stylesÚcss_rowÚcss_colÚ css_converterÚkwargsÚpropÚdeclaration_dictÚunique_declarationsÚ    __class__s             €r.r/zCssExcelCell.__init__Us‚ø€ñ ™-ð4>¸gÀwÐ>NÑ3O÷ Ù&/ d¨C—
‘
“ ˜cÑ!ð Ð ñ ô#,Ð,<×,BÑ,BÓ,DÓ"EÐ Ù!Ð"5Ó6ˆEä ‰ÑÐJ˜S c¨s¸%ÑJÀ6ÓJùó sA$)r%r1r&r1r(ú dict | NonerCz3dict[tuple[int, int], list[tuple[str, Any]]] | NonerDr1rEr1rFúCallable | Noner3r4)r5r6r7r/Ú __classcell__)rKs@r.r<r<Tsfø„ðKà ðKððKð
ð Kð Hð KððKððKð'ðKð
÷KñKr0r<có—eZdZUdZeZdddddddœZddddddddddddddœ Zdddd    œZd
d d d dœZ    dDcic]}|j«|“Œc}}Z de d<d.d/d„Z e«Z                d0d„Z                d0d„Zd1d„Zd2d„Zd3d„Zd4d„Z                d5d„Zd6d„Zd7d„Zd8d„Zd9d„Zd:d„Zd;d „Z                d<d!„Zd4d"„Zd4d#„Zd=d$„Z d>d%„Z!d4d&„Z"d=d'„Z#d?d(„Z$d@d)„Z%dAd*„Z&dBd+„Z'dCd,„Z(dBd-„Z)ycc}}w)DÚCSSToExcelConverteraK
    A callable for converting CSS declarations to ExcelWriter styles
 
    Supports parts of CSS 2.2, with minimal CSS 3.0 support (e.g. text-shadow),
    focusing on font styling, backgrounds, borders and alignment.
 
    Operates by first computing CSS styles in a fairly generic
    way (see :meth:`compute_css`) then determining Excel style
    properties from CSS properties (see :meth:`build_xlstyle`).
 
    Parameters
    ----------
    inherited : str, optional
        CSS declarations understood to be the containing scope for the
        CSS processed by :meth:`__call__`.
    ÚtopÚcenterÚbottom)rQztext-topÚmiddleÚbaselinerSz text-bottomTF) ÚboldÚbolderÚ600Ú700Ú800Ú900ÚnormalÚlighterÚ100Ú200Ú300Ú400Ú500)r\ÚitalicÚobliqueéééé)Úserifz
sans-serifÚcursiveÚfantasy)
ÚdashedÚ mediumDashDotÚ
dashDotDotÚhairÚdottedÚmediumDashDotDotÚdoubleÚdashDotÚ slantDashDotÚ mediumDashedzdict[str, str] | NoneÚ    inheritedNcóŒ—||j|«|_nd|_tj|j«|_yr,)Ú compute_cssrvÚ    functoolsÚcacheÚ_call_uncachedÚ _call_cached)r-rvs  r.r/zCSSToExcelConverter.__init__¾s:€Ø Ð  Ø!×-Ñ-¨iÓ8ˆDNà!ˆDŒNô&ŸO™O¨D×,?Ñ,?Ó@ˆÕr0có$—|j|«S)aå
        Convert CSS declarations to ExcelWriter style.
 
        Parameters
        ----------
        declarations : str | frozenset[tuple[str, str]]
            CSS string or set of CSS declaration tuples.
            e.g. "font-weight: bold; background: blue" or
            {("font-weight", "bold"), ("background", "blue")}
 
        Returns
        -------
        xlstyle : dict
            A style as interpreted by ExcelWriter when found in
            ExcelCell.style.
        )r|)r-Ú declarationss  r.Ú__call__zCSSToExcelConverter.__call__Ês€ð&× Ñ  Ó.Ð.r0có\—|j||j«}|j|«Sr,)rxrvÚ build_xlstyle)r-r~Ú
propertiess   r.r{z"CSSToExcelConverter._call_uncachedßs+€ð×%Ñ% l°D·N±NÓCˆ
Ø×!Ñ! *Ó-Ð-r0cóʇ—|j|«|j|«|j|«|j|«|j    |«dœ}dˆfd„ Љ|«|S)N)Ú    alignmentÚborderÚfillÚfontÚ number_formatcó’•—t|j««D]*\}}|€||=Œ t|t«sŒ‰|«|rŒ(||=Œ,y)z4Remove key where value is None, through nested dictsN)ÚlistrAÚ
isinstanceÚdict)ÚdÚkÚvÚ remove_nones   €r.rz6CSSToExcelConverter.build_xlstyle.<locals>.remove_noneðsGø€ä˜QŸW™W›Y›ò !‘1ؐ9ؘ!™Ü ¤4Õ(Ù ”NÚØ˜a™Dñ  !r0)rúdict[str, str | None]r3r4)Úbuild_alignmentÚ build_borderÚ
build_fillÚ
build_fontÚbuild_number_format)r-ÚpropsÚoutrs   @r.rz!CSSToExcelConverter.build_xlstyleås`ø€à×-Ñ-¨eÓ4Ø×'Ñ'¨Ó.Ø—O‘O EÓ*Ø—O‘O EÓ*Ø!×5Ñ5°eÓ<ñ 
ˆõ    !ñ    CÔØˆ
r0cóh—|jd«|j|«|j|«dœS)Nz
text-align)Ú
horizontalÚverticalÚ    wrap_text)ÚgetÚ_get_vertical_alignmentÚ_get_is_wrap_text©r-r—s  r.r’z#CSSToExcelConverter.build_alignmentýs6€ð Ÿ)™) LÓ1Ø×4Ñ4°UÓ;Ø×/Ñ/°Ó6ñ
ð    
r0có`—|jd«}|r|jj|«Sy)Nzvertical-align)rÚ VERTICAL_MAP)r-r—Úvertical_aligns   r.ržz+CSSToExcelConverter._get_vertical_alignments.€ØŸ™Ð#3Ó4ˆÙ Ø×$Ñ$×(Ñ(¨Ó8Ð 8Ør0cóF—|jd«€yt|ddv«S)Nz white-space)ÚnowrapÚprezpre-line)rÚboolr s  r.rŸz%CSSToExcelConverter._get_is_wrap_text s*€Ø 9‰9]Ó #Ð +ØÜE˜-Ñ(Ð0MÐMÓNÐNr0có*—dDcic]ƒ}||j|jd|›d«|jd|›d«|j|jd|›d«««|j|jd|›d««dœ“Œ…c}Scc}w)N©rQÚrightrSÚleftzborder-z-stylez-widthz-color)r(Úcolor)Ú _border_stylerÚcolor_to_excel)r-r—Úsides   r.r“z CSSToExcelConverter.build_bordersª€ð;ö
 
ðð Ø×+Ñ+Ø—I‘I ¨ v¨VÐ4Ó5Ø—I‘I ¨ v¨VÐ4Ó5Ø×'Ñ'¨¯    ©    °G¸D¸6ÀÐ2HÓ(IÓJóð
×,Ñ,¨U¯Y©Y¸ÀÀÀfÐ7MÓ-NÓOñ ñ ò
 
ð
    
ùò
 
s…BBcó,—|€|€|€y|€|€y|dvry|j|«}|€y|dvr|S|dk(ry|dk(r|dvryy|dk(r|dvryy    ||jvr|j|Stjd
t    |«›t
t «¬ «y) NÚnone)r±Úhidden)NÚgrooveÚridgeÚinsetÚoutsetÚsolidrrrp)roÚthinrqrlruzUnhandled border style format: ©Ú
stacklevel)Ú_get_width_nameÚBORDER_STYLE_MAPÚwarningsÚwarnÚreprrr)r-r(Úwidthr¬Ú
width_names     r.r­z!CSSToExcelConverter._border_stylesԀð ˆ=˜U˜]¨u¨}àà ˆ=˜U˜]àà Ð&Ñ &Øà×)Ñ)¨%Ó0ˆ
Ø Ð Øà ÐIÑ IàÐ à HÒ ØØ HÒ ØÐ-Ñ-ØØ%Ø HÒ ØÐ-Ñ-ØØ!Ø d×+Ñ+Ñ +à×(Ñ(¨Ñ/Ð /ä M‰MØ1´$°u³+°Ð?ÜÜ+Ó-õ ð
r0cóJ—|j|«}|dkry|dkry|dkryy)Ngñh㈵øä>gÍÌÌÌÌÌô?r¸gffffff@ÚmediumÚthick)Ú_width_to_float)r-Ú width_inputrÀs   r.r»z#CSSToExcelConverter._get_width_nameVs3€Ø×$Ñ$ [Ó1ˆØ 4Š<ØØ SŠ[ØØ SŠ[ØØr0có,—|€d}|j|«S)NÚ2pt)Ú _pt_to_float)r-rÀs  r.rÅz#CSSToExcelConverter._width_to_float`s€Ø ˆ=؈EØ× Ñ  Ó'Ð'r0có\—|jd«sJ‚t|jd««S)NÚpt)ÚendswithÚfloatÚrstrip)r-Ú    pt_strings  r.rÉz CSSToExcelConverter._pt_to_floates,€Ø×!Ñ! $Ô'Ð'Ð'ܐY×%Ñ% dÓ+Ó,Ð,r0cóV—|jd«}|dvr|j|«ddœSy)Nzbackground-color)NÚ transparentr±r·)ÚfgColorÚ patternType)rr®)r-r—Ú
fill_colors   r.r”zCSSToExcelConverter.build_fillis7€ð—Y‘YÐ1Ó2ˆ
Ø Ð:Ñ :Ø#×2Ñ2°:Ó>ÈwÑWÐ Wð ;r0cót—|jd«}t|t«r|jdd«n|}d|iS)Nz number-formatõ§ú;Ú format_code)rr‹ÚstrÚreplace)r-r—Úfcs   r.r–z'CSSToExcelConverter.build_number_formatps6€Ø Y‰YÓ 'ˆÜ&0°´SÔ&9ˆRZ‰Z˜˜cÔ "¸rˆØ˜rÐ"Ð"r0c óV—|j|«}|j|«}|r|dnd|j|«|j|«|j    |«|j |«d|vrdndd|vxsd|j |jd««|j|«dœ    S)NrÚ    underlineÚsinglez line-throughr¬)    ÚnameÚfamilyÚsizerVrcrÝÚstriker¬Úshadow)    Ú_get_font_namesÚ_get_decorationÚ_select_font_familyÚ_get_font_sizeÚ _get_is_boldÚ_get_is_italicr®rÚ _get_shadow)r-r—Ú
font_namesÚ
decorations    r.r•zCSSToExcelConverter.build_fontus¯€ð×)Ñ)¨%Ó0ˆ
Ø×)Ñ)¨%Ó0ˆ
á%/J˜q’M°TØ×.Ñ.¨zÓ:Ø×'Ñ'¨Ó.Ø×%Ñ% eÓ,Ø×)Ñ)¨%Ó0Ø&1°ZÑ&?™(ÀTØ%¨Ð3Ò<¸Ø×(Ñ(¨¯©°7Ó);Ó<à×&Ñ& uÓ-ñ 
ð     
r0có`—|jd«}|r|jj|«Sy)Nz font-weight)rÚBOLD_MAP)r-r—Úweights   r.rèz CSSToExcelConverter._get_is_bold‡s+€Ø—‘˜=Ó)ˆÙ Ø—=‘=×$Ñ$ VÓ,Ð ,Ør0có`—|jd«}|r|jj|«Sy)Nz
font-style)rÚ
ITALIC_MAP)r-r—Ú
font_styles   r.réz"CSSToExcelConverter._get_is_italics+€Ø—Y‘Y˜|Ó,ˆ
Ù Ø—?‘?×&Ñ& zÓ2Ð 2Ør0cóJ—|jd«}||j«Sy)Nztext-decorationr:)rÚsplit)r-r—rìs   r.råz#CSSToExcelConverter._get_decoration“s)€Ø—Y‘YÐ0Ó1ˆ
Ø Ð !Ø×#Ñ#Ó%Ð %àr0có—d|vryy)NrÝrÞr:)r-rìs  r.Ú_get_underlinez"CSSToExcelConverter._get_underlinešs€Ø ˜*Ñ $ØØr0cóP—d|vr"ttjd|d««Sy)Nz text-shadowz ^[^#(]*[1-9])r§ÚreÚsearchr s  r.rêzCSSToExcelConverter._get_shadowŸs(€Ø ˜EÑ !ÜœŸ    ™     .°%¸ Ñ2FÓGÓHÐ HØr0có$—tjd|jdd««}g}|D]b}|dddk(r|ddjdd«}n.|dddk(r|ddjd    d«}n|j    «}|sŒR|j |«Œd|S)
Nz›(?x)
            (
            "(?:[^"]|\\")+"
            |
            '(?:[^']|\\')+'
            |
            [^'",]+
            )(?=,|\s*$)
        z font-familyÚreú"éÿÿÿÿz\"ú'z\')røÚfindallrrÚÚstripÚappend)r-r—Úfont_names_tmprërßs     r.räz#CSSToExcelConverter._get_font_names¤s©€ÜŸ™ð ð I‰Im RÓ (ó 
ˆðˆ
Ø"ò    (ˆDؐBQˆx˜3ŠØ˜A˜bz×)Ñ)¨%°Ó5‘ؐbq˜S’ؘA˜bz×)Ñ)¨%°Ó5‘à—z‘z“|ÚØ×!Ñ! $Õ'ð    (ðÐr0cóN—|jd«}|€|S|j|«S)Nz    font-size)rrÉ)r-r—rás   r.rçz"CSSToExcelConverter._get_font_size¾s+€Øy‰y˜Ó%ˆØ ˆ<؈KØ× Ñ  Ó&Ð&r0cóX—d}|D]"}|jj|«}|sŒ!|S|Sr,)Ú
FAMILY_MAPr)r-rëràrßs    r.ræz'CSSToExcelConverter._select_font_familyÄs<€ØˆØò    ˆDØ—_‘_×(Ñ(¨Ó.ˆFÚØàˆ ð     ð
ˆ r0cóê—|€y|j|«r|j|«S    |j|S#t$r3t    j
dt |«›tt«¬«YywxYw)NzUnhandled color format: r¹)    Ú _is_hex_colorÚ_convert_hex_to_excelÚ NAMED_COLORSÚKeyErrorr½r¾r¿rr©r-r's  r.r®z"CSSToExcelConverter.color_to_excelÍsv€Ø ˆ;Øà × Ñ ˜cÔ "Ø×-Ñ-¨cÓ2Ð 2ð    Ø×$Ñ$ SÑ)Ð )øÜò    Ü M‰MØ*¬4°«9¨+Ð6ÜÜ+Ó-ö ð
ð     ús§6¶9A2Á1A2có6—t|jd««S)Nú#)r§Ú
startswith)r-Ú color_strings  r.rz!CSSToExcelConverter._is_hex_colorÞs€ÜL×+Ñ+¨CÓ0Ó1Ð1r0có¶—|jd«}|j|«r(|ddz|ddzz|ddzzj«S|j«S)Nr rrfre)ÚlstripÚ_is_shorthand_colorÚupper©r-rÚcodes   r.rz)CSSToExcelConverter._convert_hex_to_excelás]€Ø×"Ñ" 3Ó'ˆØ × #Ñ # LÔ 1ؘ‘G˜a‘K $ q¡'¨A¡+Ñ-°°Q±¸!± Ñ;×BÑBÓDÐ Dà—:‘:“<Ð r0có|—|jd«}t|«dk(ryt|«dk(rytd|›«‚)zcCheck if color code is shorthand.
 
        #FFF is a shorthand as opposed to full #FFFFFF.
        r éTéFzUnexpected color )rÚlenÚ
ValueErrorrs   r.rz'CSSToExcelConverter._is_shorthand_colorèsC€ð
×"Ñ" 3Ó'ˆÜ ˆt‹9˜Š>ØÜ ‹Y˜!Š^ØäÐ0°°Ð?Ó@Ð @r0r,)rvú
str | Noner3r4)r~z str | frozenset[tuple[str, str]]r3údict[str, dict[str, str]])r—úMapping[str, str]r3r)r—rr3zdict[str, bool | str | None])r—rr3r)r—rr3z bool | None)r—rr3z dict[str, dict[str, str | None]])r(rrÀrr¬r)rÆrr3r)rÀrr3rÍ)rÏrÙr3rÍ)r—r)r—rr3r‘)r—rr3z$dict[str, bool | float | str | None])r—rr3ú Sequence[str])rìrr3r)r—rr3z float | None)rërr3r2)r'rr3r)rrÙr3r§)rrÙr3rÙ)*r5r6r7Ú__doc__rr    r¢rîrñrr?r¼Ú__annotations__r/rrxrr{rr’ržrŸr“r­r»rÅrÉr”r–r•rèrérårörêrärçrær®rrr)Ú.0r(s00r.rPrPms‰…ñð"€LðØØØØØñ €LðØØØØØØØØØØØØñ€Hð"ØØñ€JðØØØñ    €Jð 
÷à ð     ‰ ‹ uÑóÐð(%Ó$ôAñ“-€Kð/Ø<ð/à    "ó/ð*.Ø<ð.à    "ó.ó ó0
óó Oð
 
Ø&ð 
à    )ó 
ó5ónó(ó
-óXó#ð
 
Ø&ð
à    -ó
ó$ó ó óó
ó
ó4'ó óó"2ó ô AùóA
sµCrPcó—eZdZdZdZdZ                                    d                                                                            dd„Zedd„«Zd„Z    dd„Z
dd    „Z dd
„Z dd „Z dd „Zdd „Zedd„«Zdd„Zdd„Zeed¬«                            d                                                                    dd„«Zy)ÚExcelFormattera9
    Class for formatting a DataFrame to a list of ExcelCells,
 
    Parameters
    ----------
    df : DataFrame or Styler
    na_rep: na representation
    float_format : str, default None
        Format string for floating point numbers
    cols : sequence, optional
        Columns to write
    header : bool or sequence of str, default True
        Write out column names. If a list of string is given it is
        assumed to be aliases for the column names
    index : bool, default True
        output row names (index)
    index_label : str or sequence, default None
        Column label for index column(s) if desired. If None is given, and
        `header` and `index` are True, then the index names are used. A
        sequence should be given if the DataFrame uses MultiIndex.
    merge_cells : bool, default False
        Format MultiIndex and Hierarchical Rows as merged cells.
    inf_rep : str, default `'inf'`
        representation for np.inf values (which aren't representable in Excel)
        A `'-'` sign will be added in front of -inf.
    style_converter : callable, optional
        This translates Styler styles (CSS) into ExcelWriter styles.
        Defaults to ``CSSToExcelConverter()``.
        It should have signature css_declarations string -> excel style.
        This is only called for body cells.
    ii@Nc ó²—d|_||_t|t«sA||_|jj «|j }|
€
t«}
|
|_nd|_d|_||_    |œtt|«j|j««s td«‚tt|«j|j««tt|««k7r td«‚|j!|¬«|_    |jj|_ ||_||_||_||_||_|    |_y)Nrz,passes columns are not ALL present dataframez.Not all names specified in 'columns' are found)Úcolumns)Ú
rowcounterÚna_repr‹rÚstylerÚ_computeÚdatarPÚstyle_converterÚdfrrÚ intersectionr%r
ÚsetÚreindexÚ float_formatÚindexÚ index_labelÚheaderÚ merge_cellsÚinf_rep) r-r,r'r0Úcolsr3r1r2r4r5r+s            r.r/zExcelFormatter.__init__s€ðˆŒØˆŒ ܘ"œiÔ(؈DŒKØ K‰K×  Ñ  Ô "Ø—‘ˆBØÐ&Ü"5Ó"7Ø4CˆDÕ  àˆDŒKØ#'ˆDÔ  ØˆŒØ Ð ä”u˜T“{×/Ñ/°·
±
Ó;Ô<ÜÐMÓNÐNä”5˜“;×+Ñ+¨B¯J©JÓ7Ó8¼CÄÀDà   »NÒJäÐOÓPÐPà—j‘j¨jÓ.ˆDŒGà—w‘w—‘ˆŒ Ø(ˆÔ؈Œ
Ø&ˆÔ؈Œ Ø&ˆÔ؈ r0có"—ddidddddœdddœdœS)    NrVTr¸r©rRrQ)ršr›)r‡Úbordersr„r:©r-s r.Ú header_stylezExcelFormatter.header_styleGs0€ð˜TNàØØ Øñ    ð )1¸eÑDñ    
ð        
r0có|—t|«r"tj|«r |j}nvt    |«rktj
|«r |j }nItj|«rd|j ›}n$|jt|j|z«}t|dd« td«‚|S)Nú-Útzinfoz{Excel does not support datetimes with timezones. Please ensure that datetimes are timezone unaware before writing to Excel.) rrÚisnar'rÚisposinf_scalarr5Úisneginf_scalarr0rÍÚgetattrrr s  r.Ú _format_valuezExcelFormatter._format_valueTs£€Ü SŒ>œgŸl™l¨3Ô/Ø—+‘+‰CÜ cŒ]Ü×&Ñ& sÔ+Ø—l‘l‘Ü×(Ñ(¨Ô-ؘ$Ÿ,™,˜Ð(‘Ø×"Ñ"Ð.ܘD×-Ñ-°Ñ3Ó4Ü 3˜ $Ó 'Ð 3Üð@óð ð
ˆ
r0c#óÎK—|jjdkDr|js td«‚|js |j
sy|j}|j |jd¬«}t|«}d}d}|jrIt|jjt«r%t|jjd«dz
}|jrüt|j«D] \}}t||||j ¬«–—Œ"tt#||j$|j&««D]\}\}}}    |j)|    «}
|j+«D]b\} } d\} }| dkDr
||| z| z}} t-||| zdz|
| |j t/|j0dd«|| |j2| |¬    «
–—ŒdŒ‘||_ytt#|Ž«D]h\} }
d
j5t7t8|
««}t-||| zdz||j t/|j0dd«|| |j2¬ «–—Œj||_y­w) Nrez]Writing to Excel with MultiIndex columns and no index ('index'=False) is not yet implemented.F©ÚsparsifyÚ include_namesrr>©NNÚ ctx_columns©
r%r&r'r(rCrDrErFr)r*ú.©r%r&r'r(rCrDrErF)r%Únlevelsr1ÚNotImplementedErrorÚ _has_aliasesr3Ú _format_multir4rr‹r,rrÚ    enumerateÚnamesr#r:ÚzipÚlevelsÚcodesÚtakerAr<rAr(r+ÚjoinÚmaprr&)r-r%Ú
level_strsÚ level_lengthsÚ    coloffsetÚlnumrßÚspansrSÚ level_codesÚvaluesÚiÚspan_valr)r*rs                r.Ú_format_header_miz ExcelFormatter._format_header_mifs_èø€Ø <‰<× Ñ  !Ò #Ø—:’:Ü)ðDóðð
×!Ò! T§[¢[Ø à—,‘,ˆØ×*Ñ*Ø×%Ñ%°Uð+ó
ˆ
ô*¨*Ó5ˆ ؈    Øˆà :Š:œ* T§W¡W§]¡]´JÔ?ܘDŸG™GŸM™M¨!Ñ,Ó-°Ñ1ˆIà × Ò ä'¨¯ © Ó6ò ‘
dÜØØ!ØØ×+Ñ+ô    óð ô7@ܐM 7§>¡>°7·=±=ÓAó7ò Ñ2Ñ2u˜f kð Ÿ™ [Ó1Ø#(§;¡;£=ò‘KAxØ+5Ñ(J Ø !’|Ø/3°YÀ±]ÀXÑ5M H˜
Ü&Ø Ø%¨™M¨AÑ-Ø" 1™IØ"×/Ñ/Ü#*¨4¯;©;¸ ÀtÓ#LØ $Ø !Ø&*×&:Ñ&:Ø#-Ø!)ô ó ñ    ð     ðFˆô'¤s¨JÐ'7Ó8ò ‘    6Ø—H‘HœS¤¨vÓ6Ó7Ü"ØØ! A™ ¨Ñ)ØØ×+Ñ+Ü& t§{¡{°MÀ4ÓHØ ØØ"&×"6Ñ"6ô    ó    ð ðˆùs‚I#I%c #óK—|js |jrbd}|jrOd}t|jjt
«r)t |jjj«}|j}|jrŽtt|j«|_t |j«t |j«k7r8tdt |j«›dt |j«›d«‚|j}t|«D]P\}}t|j||z||jt!|j"dd«d||j$¬«–—ŒRyy­w)NrrezWriting z cols but got z aliasesrHrK)rNr3r1r‹r,rrrQr%r rrrPr<r&r:rAr(r+)r-rZÚcolnamesÚcolindexÚcolnames     r.Ú_format_header_regularz%ExcelFormatter._format_header_regular«s7èø€Ø × Ò  § £ ؈IàzŠzؐ    Ü˜dŸg™gŸm™m¬ZÔ8Ü # D§G¡G§M¡M×$7Ñ$7Ó 8Ià—|‘|ˆHØ× Ò Ü"¤8¨T¯[©[Ó9” ܐt—{‘{Ó#¤s¨4¯<©<Ó'8Ò8Ü$Ø"¤3 t§|¡|Ó#4Ð"5ð6#Ü#& t§{¡{Ó#3Ð"4°Hð>óðð Ÿ;™;ä%.¨xÓ%8ò
Ñ!˜'Ü"ØŸ™Ø  9Ñ,ØØ×+Ñ+Ü& t§{¡{°MÀ4ÓHØØ$Ø"&×"6Ñ"6ô    ó    ñ
ð%!,ùs‚E=E?có‡—t‰jt«r‰j«}n‰j    «}d}‰j
j jr“‰j
j jDcgc]}||nd‘Œ
c}dgt‰j«zz}tjd„d„|D««r)ˆfd„t|«D«}‰xjdz c_ tj||«Scc}w)Nr:rûcó—|xr|Sr,r:)ÚxÚys  r.ú<lambda>z/ExcelFormatter._format_header.<locals>.<lambda>Øs
€¨QªW°1€r0c3ó&K—|]    }|dk7–—Œ y­w)rûNr:)r!ris  r.ú    <genexpr>z0ExcelFormatter._format_header.<locals>.<genexpr>Øsèø€Ò6LÀ1°q¸BµwÑ6Lùs‚c3óh•K—|])\}}t‰j||‰j«–—Œ+y­wr,)r#r&r:)r!rdr'r-s   €r.rmz0ExcelFormatter._format_header.<locals>.<genexpr>Ùs2øèø€òá%˜ #ô˜dŸo™o¨x¸¸d×>OÑ>O×Pñùsƒ/2re)r‹r%rrarfr,r1rQrryÚreducerPr&Ú    itertoolsÚchain)r-ÚgenÚgen2rir%s`    r.Ú_format_headerzExcelFormatter._format_headerÊsßø€ô d—l‘l¤JÔ /Ø×(Ñ(Ó*‰Cà×-Ñ-Ó/ˆCà$&ˆà 7‰7=‰=× Ò Ø7;·w±w·}±}×7JÑ7JÖK°!˜˜ ‘1¨2Ñ-ÒKØðOäD—L‘LÓ!ñO"ñ"ˆCô×ÑÑ 4Ñ6LÈÔ6LÔMóä)2°3«ôð—’ 1Ñ$•܏‰˜s DÓ)Ð)ùòLs DcóŠ—t|jjt«r|j    «S|j «Sr,)r‹r,r1rÚ_format_hierarchical_rowsÚ_format_regular_rowsr9s r.Ú _format_bodyzExcelFormatter._format_bodyàs2€Ü d—g‘g—m‘m¤ZÔ 0Ø×1Ñ1Ó3Ð 3à×,Ñ,Ó.Ð .r0c #óPK—|js |jr|xjdz c_|jrË|jrDt |jt ttjtf«r|jd}nV|jr't |jt«r |j}n#|jjjd}t |jt«r|xjdz c_|r5|jdur't!|jdz
d||j"«–—|jj}t |jjt$«r$|jjj'«}t)|«D]P\}}t+|j|zd||j"t-|j.dd«|d|j0¬«–—ŒRd}nd}|j3|«Ed{–—†y7Œ­w)NrerFÚ    ctx_indexrK)rNr3r&r1r2r‹rŠÚtupleÚnpÚndarrayrrÙr,rQr%rr#r:rÚ to_timestamprPr<rAr(r+Ú_generate_body)r-r2Ú index_valuesÚidxÚidxvalrZs      r.rwz#ExcelFormatter._format_regular_rowsæs£èø€Ø × Ò  § ¢ Ø OŠO˜qÑ  Oð :‹:ð×Ò¤JØ× Ñ ¤4¬´·
±
¼EÐ"Bô%ð#×.Ñ.¨qÑ1‘ à×!Ò!¤j°×1AÑ1AÄ3Ô&GØ"×.Ñ.‘ à"Ÿg™gŸm™m×1Ñ1°!Ñ4 ä˜$Ÿ,™,¬
Ô3Ø—’ 1Ñ$•á˜tŸ{™{°%Ñ7Ü §¡°!Ñ 3°Q¸ ÀT×EVÑEVÓWÒWð Ÿ7™7Ÿ=™=ˆLܘ$Ÿ'™'Ÿ-™-¬Ô5Ø#Ÿw™wŸ}™}×9Ñ9Ó; ä(¨Ó6ò
‘ VÜ"ØŸ™¨#Ñ-ØØØ×+Ñ+Ü& t§{¡{°KÀÓFØØØ"&×"6Ñ"6ô    ó    ð
ð‰IàˆIà×&Ñ& yÓ1×1Ò1ús‚HH&ÈH$ÈH&c#óTK—|js |jr|xjdz c_d}|jrÍ|jjj
}|j r@t|j tttjtf«r |j }t|jt«r!|jr|xjdz c_t!j"|ŽrH|jdur:t%|«D],\}}t'|jdz
|||j(«–—Œ.|jr;|jjj+dd¬«}t-|«}t/||jjj0|jjj2«D]¼\}}}    |j5|    |j6|j8¬«}
|j;«D]v\} } d\} }| dkDr|j| z| zdz
} |}t=|j| z||
| |j(t?|j@dd«| ||jB| |¬    «
–—Œx|dz }Œ¾n„t/|jjŽD]e}t%|«D]P\}}t=|j|z|||j(t?|j@dd«|||jB¬
«–—ŒR|dz }Œg|jE|«Ed{–—†y7Œ­w) NrerFTrD)Ú
allow_fillÚ
fill_valuerGrzrIrK)#rNr3r&r1r,rQr2r‹rŠr{r|r}rr%rr4ÚcomÚ any_not_nonerPr#r:rOrrRrSrTrUÚ _can_hold_naÚ    _na_valuerAr<rAr(r+r)r-ÚgcolidxÚ index_labelsÚcidxrßrXrYr\rSr]r^r_r`r)r*Ú indexcolvalsrÚ indexcolvals                  r.rvz(ExcelFormatter._format_hierarchical_rowss×èø€Ø × Ò  § ¢ Ø OŠO˜qÑ  Oàˆà :‹:ØŸ7™7Ÿ=™=×.Ñ.ˆLà×Ò¤JØ× Ñ ¤4¬´·
±
¼EÐ"Bô%ð $×/Ñ/ ô ˜$Ÿ,™,¬
Ô3¸×8HÒ8HØ—’ 1Ñ$•ô×Ñ Ñ.°4·;±;ÀeÑ3KÜ"+¨LÓ"9òX‘JD˜$Ü# D§O¡O°aÑ$7¸¸tÀT×EVÑEVÓWÓWðXð×Óà!ŸW™WŸ]™]×8Ñ8Ø!°ð9ó
ô!2°*Ó = ä25Ø! 4§7¡7§=¡=×#7Ñ#7¸¿¹¿¹×9LÑ9Ló3ò!Ñ.E˜6 ;ð$Ÿ[™[Ø#Ø#)×#6Ñ#6Ø#)×#3Ñ#3ð)óFð (-§{¡{£}ò™ ˜˜8Ø/9Ñ,˜
 HØ# aš<Ø)-¯©¸1Ñ)<¸xÑ)GÈ!Ñ)K˜JØ'.˜HÜ*Ø $§¡°!Ñ 3Ø 'Ø & q¡    Ø"&×"3Ñ"3Ü'.¨t¯{©{¸KÈÓ'NØ$%Ø$+Ø*.×*>Ñ*>Ø'1Ø%-ô ó ð ð"˜q‘L‘Gñ5!ô<%(¨¯©¯©Ð$7ò !LÜ,5°lÓ,Cò
Ñ(˜˜[Ü*Ø $§¡°#Ñ 5Ø 'Ø +Ø"&×"3Ñ"3Ü'.¨t¯{©{¸KÈÓ'NØ$'Ø$+Ø*.×*>Ñ*>ô    ó    ð
ð˜q‘L‘Gð !ð×&Ñ& wÓ/×/Ò/ús‚LL(Ì L&Ì!L(có,—t|j«S)z1Whether the aliases for column names are present.)r r3r9s r.rNzExcelFormatter._has_aliasescs€ô˜DŸK™KÓ(Ð(r0c #ó:K—tt|j««D]v}|jjdd…|f}t |«D]I\}}t |j|z||z|dt|jdd«|||j¬«–—ŒKŒxy­w)NÚctxrK) Úrangerr%r,ÚilocrPr<r&rAr(r+)r-rZÚcolidxÚseriesr_r's      r.rzExcelFormatter._generate_bodyhs—èø€äœC § ¡ Ó-Ó.ò     ˆFØ—W‘W—\‘\¢! V )Ñ,ˆFÜ# FÓ+ò
‘3Ü"ØŸ™¨!Ñ+Ø Ñ*ØØÜ& t§{¡{°E¸4Ó@ØØ"Ø"&×"6Ñ"6ô    ó    ñ
ñ     ùs‚BBc#óÂK—tj|j«|j««D]&}|j    |j
«|_|–—Œ(y­wr,)rprqrtrxrBr')r-Úcells  r.Úget_formatted_cellsz"ExcelFormatter.get_formatted_cellsxsMèø€Ü—O‘O D×$7Ñ$7Ó$9¸4×;LÑ;LÓ;NÓOò    ˆDØ×)Ñ)¨$¯(©(Ó3ˆDŒHØ‹Jñ    ùs‚AAÚstorage_options)r™c    
óº—ddlm}    |jj\}
} |
|jkDs| |j
kDr+t d|
›d| ›d|j›d|j
›«‚|€i}|j«} t||    «rd} n|    ||||¬«}d    }     |j| ||||¬
«| r|j«yy#| r|j«wwxYw) ab
        writer : path-like, file-like, or ExcelWriter object
            File path or existing ExcelWriter
        sheet_name : str, default 'Sheet1'
            Name of sheet which will contain DataFrame
        startrow :
            upper left cell row to dump data frame
        startcol :
            upper left cell column to dump data frame
        freeze_panes : tuple of integer (length 2), default None
            Specifies the one-based bottommost row and rightmost column that
            is to be frozen
        engine : string, default None
            write engine to use if writer is a path - you can also set this
            via the options ``io.excel.xlsx.writer``,
            or ``io.excel.xlsm.writer``.
 
        {storage_options}
 
        engine_kwargs: dict, optional
            Arbitrary keyword arguments passed to excel engine.
        rr z-This sheet is too large! Your sheet size is: z, z Max sheet size is: NF)Úenginer™Ú engine_kwargsT)ÚstartrowÚstartcolÚ freeze_panes) Úpandas.io.excelr!r,ÚshapeÚmax_rowsÚmax_colsrr˜r‹Ú _write_cellsÚclose)r-ÚwriterÚ
sheet_namerržrŸr›r™rœr!Únum_rowsÚnum_colsÚformatted_cellsÚ    need_saves              r.ÚwritezExcelFormatter.write}sý€õD    0à!ŸW™WŸ]™]ш(Ø d—m‘mÒ # x°$·-±-Ò'?ÜØ?À¸zÈÈHÈ:ðV&Ø&*§m¡m _°B°t·}±}°oðGóð ð
Ð  ØˆMà×2Ñ2Ó4ˆÜ f˜kÔ *؉Iá ØØØ /Ø+ô    ˆFð ˆIð     Ø × Ñ ØØØ!Ø!Ø)ð  ô ñØ— ‘ •ðø‰yØ— ‘ •ðús ÂCÃC)    rûNNTTNFÚinfN)r'rÙr0rr6zSequence[Hashable] | Noner3zSequence[Hashable] | boolr1r§r2zIndexLabel | Noner4r§r5rÙr+rMr3r4)r3z dict[str, dict[str, str | bool]])r3úIterable[ExcelCell])r3r§)rZr1r3r®)ÚSheet1rrNNNN)r¦z)FilePath | WriteExcelBuffer | ExcelWriterr§rÙrr1ržr1rŸztuple[int, int] | Noner›rr™zStorageOptions | NonerœrLr3r4)r5r6r7rr¢r£r/Úpropertyr:rBrarfrtrxrwrvrNrr˜r rr¬r:r0r.r#r#ösŽ„ñð@€HØ€Hð
Ø#'Ø*.Ø,0ØØ)-Ø!ØØ+/ð+ðð+ð!ð    +ð
(ð +ð *ð +ðð+ð'ð+ðð+ðð+ð)ð+ð
ó+ðZò
 
óð
 
òó$CóJó>*ó,/ó ,2ó\M0ð^ò)óð)óó ñ
    ˜Ð&7Ñ8Ô9ð#ØØØ/3Ø!Ø15Ø%)ðDà9ðDððDðð    Dð
ð Dð -ð DððDð/ðDð#ðDð
òDó:ñDr0r#)<rÚ
__future__rÚcollections.abcrrrrryrprøÚtypingrr    r
r r½Únumpyr|Úpandas._libs.libr Úpandas.util._decoratorsr Úpandas.util._exceptionsrÚpandas.core.dtypesrÚpandas.core.dtypes.commonrrÚpandasrrrrÚpandas.core.commonÚcoreÚcommonr†Úpandas.core.shared_docsrÚpandas.io.formats._color_datarÚpandas.io.formats.cssrrÚpandas.io.formats.formatrÚpandas.io.formats.printingrÚpandas._typingrrrrr!r#r<rPr#r:r0r.ú<module>rÄs±ðñõ#÷óó ÛÛ    ÷óó ãå)Ý'Ý4å&÷÷
ó÷ !РÝ0å5÷õ7Ý3á÷óõ#÷!ñ!ô*K9ôK÷2FAñFA÷R LòLr0