hyb
2025-11-04 668edf874b4f77214a8ff4513e60e3c1a973f532
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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
Ë
nñúh§žã
ó*—dZddlmZddlmZmZddlZddlmZddl    m
Z
m Z m Z ddl Z ddlZddlZddlmZmZmZmZmZmZddlZddlZddlmZddlZddlZdd    lmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd
l(m)Z)m*Z+m,Z,m-Z-m.Z.ddl/Z/ddl0Z0dd l1m2Z2m3Z3dd l4m5Z5m6Z6dd l7m8Z8ddl9m:Z:ddl;m<Z<ddl=m>Z>m?Z?m@Z@mAZAddlBmCZCddlDmEZEeFe.e,ze-z«ZGeGj‘d«ej’d«ZJe%de2¬«ZKerddlLmMZMddl1mNZNmOZOmPZPmQZQmRZRmSZSddlTmUZUe j¬Gd„d««ZWe j¬Gd„de#e!««ZXdSd„ZYe'dTd „«ZZe'dUd!„«ZZdVd"„ZZdWd#„Z[e'dXdYd%„«Z\e'    dX                    dZd&„«Z\    d[                    d\d(„Z\d)„Z]d]d*„Z^e:eEd+eEd,dz¬-«                d^                                            d_d.„«Z_d`d/„Z`d0d0d0d0d1d2d3d4d5d6œ    ZaeFeajÅ««Zc                dad7„Zde:eEd,dz¬8«                        dbd9„«Zedcd:„Zfe'd$d$d$d$d$d;œ                                                                    ddd=„«Zge'd$d$d$d$d$d$d>œ                                                                    ded?„«Zge'd$d$d$d$d$d$d>œ                                                                    dfd@„«Zge:eEd,d<z¬8«ddd'dAddd>œ                                                                    dgdB„«ZgGdC„dDee«ZhGdE„dFeh«ZiGdG„dHeh«ZjGdI„dJ«ZkGdK„dL«Zl                        dhdM„ZmdidN„ZndjdO„ZoejàdkdP„«Zq    dl                    dmdQ„Zr                        dndR„Zsy)ozCommon IO api utilitiesé)Ú annotations)ÚABCÚabstractmethodN)Ú defaultdict)ÚHashableÚMappingÚSequence)ÚBufferedIOBaseÚBytesIOÚ    RawIOBaseÚStringIOÚ
TextIOBaseÚ TextIOWrapper)ÚPath)
ÚIOÚ TYPE_CHECKINGÚAnyÚAnyStrÚ DefaultDictÚGenericÚLiteralÚTypeVarÚcastÚoverload)ÚurljoinÚurlparseÚ uses_netlocÚ uses_paramsÚ uses_relative)Ú
BaseBufferÚ ReadCsvBuffer)Ú get_bz2_fileÚ get_lzma_file)Úimport_optional_dependency)Údoc)Úfind_stack_level)Úis_boolÚ is_file_likeÚ
is_integerÚ is_list_like)Ú ABCMultiIndex)Ú _shared_docsÚz^[A-Za-z][A-Za-z0-9+\-+.]*://Ú BaseBufferT)Úbound)Ú TracebackType)ÚCompressionDictÚCompressionOptionsÚFilePathÚ
ReadBufferÚStorageOptionsÚ WriteBuffer)Ú
MultiIndexcóH—eZdZUdZded<ded<ded<ded<d    Zd
ed <y ) ÚIOArgsz?
    Return value of io/common.py:_get_filepath_or_buffer.
    ústr | BaseBufferÚfilepath_or_bufferÚstrÚencodingÚmoder1Ú compressionFÚboolÚ should_closeN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú__annotations__rA©óúCH:\Change_password\venv_build\Lib\site-packages\pandas/io/common.pyr9r9as)…ñð)Ó(؃MØ
ƒIؠӠ؀L$ÔrHr9cóŒ—eZdZUdZded<ded<ej e¬«Zded<d    Z    d
ed <dd „Z
dd „Z                                 dd„Z y)Ú    IOHandlesau
    Return value of io/common.py:get_handle
 
    Can be used as a context manager.
 
    This is used to easily close created buffers and to handle corner cases when
    TextIOWrapper is inserted.
 
    handle: The file handle to be used.
    created_handles: All file handles that are created by get_handle
    is_wrapped: Whether a TextIOWrapper needs to be detached.
    z
IO[AnyStr]Úhandler1r?)Údefault_factoryzlist[IO[bytes] | IO[str]]Úcreated_handlesFr@Ú
is_wrappedcód—|jrut|jt«sJ‚|jj    «|jj «|j j|j«|j D]}|j«Œg|_d|_y)zµ
        Close all created buffers.
 
        Note: If a TextIOWrapper was inserted, it is flushed and detached to
        avoid closing the potentially user-created buffer.
        FN)    rOÚ
isinstancerLrÚflushÚdetachrNÚremoveÚclose)ÚselfrLs  rIrUzIOHandles.closeƒs„€ð ?Š?ܘdŸk™k¬=Ô9Ð 9Ð9Ø K‰K× Ñ Ô Ø K‰K× Ñ Ô  Ø ×  Ñ  × 'Ñ '¨¯ © Ô 4Ø×*Ñ*ò    ˆFØ L‰LNð    à!ˆÔ؈rHcó—|S©NrG©rVs rIÚ    __enter__zIOHandles.__enter__”s€Øˆ rHcó$—|j«yrX)rU)rVÚexc_typeÚ    exc_valueÚ    tracebacks    rIÚ__exit__zIOHandles.__exit__—s €ð      
‰
 rHN©ÚreturnÚNone)razIOHandles[AnyStr])r\ztype[BaseException] | Noner]zBaseException | Noner^zTracebackType | Nonerarb) rBrCrDrErFÚ dataclassesÚfieldÚlistrNrOrUrZr_rGrHrIrKrKnsm…ñ ð ÓØ Ó Ø1B°×1BÑ1BÐSWÔ1X€OÐ.ÓXØ€JÓó ó"ðà,ðð(ðð(ð    ð
 
ô rHrKcóZ—t|t«syt|«jtvS)zÚ
    Check to see if a URL has a valid protocol.
 
    Parameters
    ----------
    url : str or unicode
 
    Returns
    -------
    isurl : bool
        If `url` has a valid protocol return True otherwise False.
    F)rQr<Ú    parse_urlÚschemeÚ _VALID_URLS©Úurls rIÚis_urlrl s&€ô cœ3Ô ØÜ S‹>×  Ñ  ¤KÐ /Ð/rHr;có—yrXrG©r;s rIÚ _expand_userro²ó€àrHcó—yrXrGrns rIroro·rprHcód—t|t«rtjj    |«S|S)a]
    Return the argument with an initial component of ~ or ~user
    replaced by that user's home directory.
 
    Parameters
    ----------
    filepath_or_buffer : object to be converted if possible
 
    Returns
    -------
    expanded_filepath_or_buffer : an expanded filepath or the
                                  input if not expandable
    )rQr<ÚosÚpathÚ
expanduserrns rIroro¼s+€ôÐ$¤cÔ*܏w‰w×!Ñ!Ð"4Ó5Ð5Ø ÐrHcó`—|€yt|«r!tt|«}|dkr td«‚yt    |d¬«rRtt
|«}t tt|««s td«‚td„|D««r td«‚yt|«r td«‚td«‚)    NrzUPassing negative integer to header is invalid. For no header, use header=None insteadF)Ú
allow_setsz*header must be integer or list of integersc3ó&K—|]    }|dk–—Œ y­w)rNrG)Ú.0Úis  rIú    <genexpr>z&validate_header_arg.<locals>.<genexpr>ßsèø€Ò%˜ˆq1uÑ%ùs‚z8cannot specify multi-index header with negative integersz–Passing a bool to header is invalid. Use header=None for no header or header=int or list-like of ints to specify the row(s) making up the column names) r)rÚintÚ
ValueErrorr*r    ÚallÚmapÚanyr'Ú    TypeError)Úheaders rIÚvalidate_header_argrƒÏs±€Ø €~ØÜ&ÔÜ”c˜6Ó"ˆØ AŠ:äð9óð ð    ÜF uÕ-Ü”h Ó'ˆÜ”3”z 6Ó*Ô+ÜÐIÓJÐ JÜ Ñ%˜fÔ%Ô %ÜÐWÓXÐ XØÜˆv„Üð 4ó
ð    
ô ÐAÓ
BÐBrH.có—yrXrG©r;Úconvert_file_likes  rIÚstringify_pathr‡ìrprHcó—yrXrGr…s  rIr‡r‡ñs€ðrHFcó¦—|st|«rtt|«St|tj
«r|j «}t|«S)aå
    Attempt to convert a path-like object to a string.
 
    Parameters
    ----------
    filepath_or_buffer : object to be converted
 
    Returns
    -------
    str_filepath_or_buffer : maybe a string version of the object
 
    Notes
    -----
    Objects supporting the fspath protocol are coerced
    according to its __fspath__ method.
 
    Any other object is passed through unchanged, which includes bytes,
    strings, buffers, or anything else that's not even path-like.
    )r(rr.rQrsÚPathLikeÚ
__fspath__ror…s  rIr‡r‡øsI€ñ. ¤Ð.@Ô!Aô”KÐ!3Ó4Ð4äÐ$¤b§k¡kÔ2Ø/×:Ñ:Ó<ÐÜ Ð*Ó +Ð+rHcóB—ddl}|jj|i|¤ŽS)z`
    Lazy-import wrapper for stdlib urlopen, as that imports a big chunk of
    the stdlib.
    rN)Úurllib.requestÚrequestÚurlopen)ÚargsÚkwargsÚurllibs   rIrrs#€ó
à !ˆ6>‰>× !Ñ ! 4Ð 2¨6Ñ 2Ð2rHcóŠ—t|t«xr2ttj    |««xr|j d« S)zR
    Returns true if the given URL looks like
    something fsspec can handle
    )zhttp://zhttps://)rQr<r@Ú_RFC_3986_PATTERNÚmatchÚ
startswithrjs rIÚ is_fsspec_urlr—$sA€ô     3œÓò    8Ü Ô"×(Ñ(¨Ó-Ó .ò    8à—‘Ð6Ó7Ð 7ðrHÚstorage_optionsÚcompression_options)r˜r™có&—t|«}t|«\}}t||«}|r6t|d«r*d|vr&t    j
dt t«¬«d}t||¬«}d|vr1|dvr-|d    vr)t    j
|›d
|›tt«¬«|}d |vr    d|vr|dz }t|t«r”t|«r‰|xsi}d dl }|jj||¬ «}t!|«5}    |    j"j%dd«}
|
dk(rddi}t'|    j)««} ddd«t+ ||d|¬«St-|«rºt|t«sJ‚|j/d«r|j1dd«}|j/d«r|j1dd«}t3d«} g}     t3d«d dlm}m}||t:g}     | j>|fd|i|xsi¤Žj?«}t+|||d|¬«S|r tCd«‚t|ttDtFjFf«rt+tI|«||d|¬«St|d«s%t|d«sdtK|«›}tC|«‚t+|||d|¬«S#1swYŒkxYw#t<$rYŒÜwxYw#tA| «$rB|€ddi}nt|«}d|d<| j>|fd|i|xsi¤Žj?«}YŒwxYw)aæ
    If the filepath_or_buffer is a url, translate and return the buffer.
    Otherwise passthrough.
 
    Parameters
    ----------
    filepath_or_buffer : a url, filepath (str, py.path.local or pathlib.Path),
                         or buffer
    {compression_options}
 
        .. versionchanged:: 1.4.0 Zstandard support.
 
    encoding : the encoding to use to decode bytes, default is 'utf-8'
    mode : str, optional
 
    {storage_options}
 
 
    Returns the dataclass IOArgs.
    ÚwriteÚbzDcompression has no effect when passing a non-binary object as input.)Ú
stacklevelN)ÚmethodÚw)Úbz2Úxz)zutf-16zutf-32z( will not write the byte order mark for Útr)ÚheaderszContent-EncodingÚgzipržT)r;r=r?rAr>zs3a://zs3://zs3n://ÚfsspecÚbotocore)Ú ClientErrorÚNoCredentialsErrorr>Úanonz?storage_options passed with file object or non-fsspec file pathFÚreadz)Invalid file path or buffer object type: )&r‡Úget_compression_methodÚinfer_compressionÚhasattrÚwarningsÚwarnÚRuntimeWarningr&ÚdictÚUnicodeWarningrQr<rlrrŽÚRequestrr£Úgetr rªr9r—r–Úreplacer$Úbotocore.exceptionsr§r¨ÚPermissionErrorÚ ImportErrorÚopenÚtupler}ÚbytesÚmmaproÚtype)r;r=r?r>r˜Úcompression_methodÚ fsspec_moder’Úreq_infoÚreqÚcontent_encodingÚreaderr¥Úerr_types_to_retry_with_anonr§r¨Úfile_objÚmsgs                  rIÚ_get_filepath_or_bufferrÇ0sš€ô>(Ð(:Ó;Ðô'=¸[Ó&IÑ#И Ü*Ð+=Ð?QÓRÐñœgÐ&8¸'ÔBÀsÐRVÁ܏ ‰ Ø RÜ Ü'Ó)õ    
ð
"Ðä{Ð+=Ô>€Kð
     ˆt‰ Ø  -Ñ /Ø Ð,Ñ ,ä ‰ ؈mÐCÀHÀ:Ð NÜ Ü'Ó)õ    
ð€KØ
+Ñ #¨[Ñ"8ؐsш äÐ$¤cÔ*¬vÐ6HÔ/Ið*Ò/¨Rˆó    ð—>‘>×)Ñ)Ð*<ÀoÐ)ÓVˆÜ XÓ ð    ) #Ø"Ÿ{™{Ÿ™Ð/AÀ4ÓHÐ Ø 6Ò)à'¨Ð0 ܘSŸX™X›ZÓ(ˆF÷     )ô Ø%ØØ#ØØô 
ð    
ôÐ'Ô(ÜØ ¤ô
ð    
ð
ð × (Ñ (¨Ô 2Ø!3×!;Ñ!;¸HÀgÓ!NÐ Ø × (Ñ (¨Ô 2Ø!3×!;Ñ!;¸HÀgÓ!NÐ Ü+¨HÓ5ˆð35Ð$ð     Ü & zÔ 2÷ ð Ø"Üð,Ð (ð    Ø"v—{‘{Ø"ñØ)4ðØ9HÒ9NÈBñç‰d‹fð ôØ'ØØ#ØØô 
ð    
ñ
ÜØ Mó
ð    
ôÐ$¤s¬E´4·9±9Ð&=Ô>ÜÜ+Ð,>Ó?ØØ#ØØô 
ð    
ô    Ð" FÔ+¬wÐ7IÈ7Ô/Sà9¼$Ð?QÓ:RÐ9SÐTˆÜ˜‹oÐä Ø-ØØØØ ô  ð÷u    )ñ    )ûôTò    Ù ð    ûôÐ1Ó2ò        ØÐ&Ø#)¨4 .‘ô#' Ó"7Ø*. Ñ'Ø"v—{‘{Ø"ñØ)4ðØ9HÒ9NÈBñç‰d‹fó ð        ús1Ã<?J$ÇJ1Ç!'KÊ$J.Ê1    J=Ê<J=ËA LÌLcó2—ddlm}td||««S)z©
    converts an absolute native path to a FILE URL.
 
    Parameters
    ----------
    path : a path in native format
 
    Returns
    -------
    a valid FILE URL
    r)Ú pathname2urlzfile:)rrÉr)rtrÉs  rIÚfile_path_to_urlrÊãs€õ,ä 7™L¨Ó.Ó /Ð/rHÚtarr¤r Úzipr¡Úzstd)    ú.tarú.tar.gzú.tar.bz2ú.tar.xzú.gzú.bz2ú.zipú.xzz.zstcó®—t|t«r!t|«}    |jd«}||fSi}|}||fS#t$r}t d«|‚d}~wwxYw)a
    Simplifies a compression argument to a compression method string and
    a mapping containing additional arguments.
 
    Parameters
    ----------
    compression : str or mapping
        If string, specifies the compression method. If mapping, value at key
        'method' specifies compression method.
 
    Returns
    -------
    tuple of ({compression method}, Optional[str]
              {compression arguments}, Dict[str, Any])
 
    Raises
    ------
    ValueError on mapping missing 'method' key
    ržz.If mapping, compression must have key 'method'N)rQrr±ÚpopÚKeyErrorr})r?Úcompression_argsr¾Úerrs    rIr«r«s{€ô.+œwÔ'Ü  Ó,Ðð    XØ!1×!5Ñ!5°hÓ!?Ð ð Ð/Ð /Ð/ðÐØ(ÐØ Ð/Ð /Ð/øô ò    XÜÐMÓNÐTWÐ Wûð    Xús:º    AÁ AÁA)r™có0—|€y|dk(r^t|d¬«}t|t«sytj    «D](\}}|j «j |«sŒ&|cSy|tvr|Sddgtt«z}d|›d|›}t|«‚)a/
    Get the compression method for filepath_or_buffer. If compression='infer',
    the inferred compression method is returned. Otherwise, the input
    compression method is returned unchanged, unless it's invalid, in which
    case an error is raised.
 
    Parameters
    ----------
    filepath_or_buffer : str or file handle
        File path or object.
    {compression_options}
 
        .. versionchanged:: 1.4.0 Zstandard support.
 
    Returns
    -------
    string or None
 
    Raises
    ------
    ValueError on invalid compression specified.
    NÚinferT)r†úUnrecognized compression type: z
Valid compression types are )
r‡rQr<Úextension_to_compressionÚitemsÚlowerÚendswithÚ_supported_compressionsÚsortedr})r;r?Ú    extensionÚvalidrÆs     rIr¬r¬&sÁ€ð4ÐØðgÒä+Ð,>ÐRVÔWÐÜÐ,¬cÔ2àô'?×&DÑ&DÓ&Fò    #Ñ "ˆI{Ø!×'Ñ'Ó)×2Ñ2°9Õ=Ø"Ò"ð    #ððÔ-Ñ-ØÐà dˆOœfÔ%<Ó=Ñ =€Eà
)¨+¨ð7'Ø', gð    /ðô S‹/ÐrHcól—t|«j}|j«std|›d«‚y)z±
    Check if parent directory of a file exists, raise OSError if it does not
 
    Parameters
    ----------
    path: Path or str
        Path to check parent directory of
    z1Cannot save file into a non-existent directory: 'ú'N)rÚparentÚis_dirÚOSError)rtrès  rIÚcheck_parent_directoryrë]s7€ô$‹Z× Ñ €FØ =‰=Œ?ÜÐJÈ6È(ÐRSÐTÓUÐUð rH)r=r?Ú
memory_mapÚerrorsr˜Ú path_or_bufcó—yrXrG©rîr>r=r?rìÚis_textrír˜s        rIÚ
get_handleròkó€ðrH)r=r?rìrñrír˜có—yrXrGrðs        rIròròzrórHcó—yrXrGrðs        rIròrò‰rórHTcó —|xsd}|xsd}t||«r    d|vr|dz }tj|«t|t«rtj
|«t |||||¬«}|j}    t|    |«\}    }}
t|    t«} t|j«} | jd«}d|vr| rtt    |    ««|r8|dk7r"|jjdd    «|_ n(|dk(r#d|jvr|xjdz c_ |d
k(rXt|    t«r$tj d)|    |jd œ| ¤Ž}    nŒtj d)|    |jd œ| ¤Ž}    nh|d k(rt#«|    fd|ji| ¤Ž}    nD|dk(r³t%|    |jfi| ¤Ž}    |    j&jdk(r|
j)|    «|    j&j+«} t-| «dk(r+|    j&j/| j««}    nª| st1d|›«‚t1d| ›«‚|dk(rî| j3d|j«t|    t«rt5d)d|    i| ¤Ž}    n t5d)d|    i| ¤Ž}    t|    t4«sJ‚d|    j&jvr|
j)|    «|    j&j7«}t-|«dk(r%|    j&j9|d«}|€J‚|}    n·|st1d|›«‚t1d|›«‚|dk(rt;«|    |jfi| ¤Ž}    nw|dk(rbt=d«}d|jvrd|j>d)i| ¤Ži}nd|j@d)i| ¤Ži}|j.|    fd|ji|¤Ž}    nd|›}t1|«‚t|    t«rJ‚|
j)|    «nvt|    t«rf|jBr3d|jvr%t/|    |j|jB|d    ¬«}    nt/|    |j«}    |
j)|    «d}|s7|jd k(r(t|    tD«rtG|    |jB¬!«}    nž|rœ|s|st|    |j«r‚tI|    d"«rtI|    d#«r tI|    d$«s tK|    «}    tM|    |jB|d    ¬«}    |
j)|    «t|jt«xs |jN }d|jvr.tI|    d%«s"tQd&tS|j«›d'«‚|
jU«|jNr7t|jt«rJ‚|
j)|j«tW|    |
||j¬(«S)*a#
    Get file handle for given path/buffer and mode.
 
    Parameters
    ----------
    path_or_buf : str or file handle
        File path or object.
    mode : str
        Mode to open path_or_buf with.
    encoding : str or None
        Encoding to use.
    {compression_options}
 
           May be a dict with key 'method' as compression mode
           and other keys as compression options if compression
           mode is 'zip'.
 
           Passing compression options as keys in dict is
           supported for compression modes 'gzip', 'bz2', 'zstd' and 'zip'.
 
        .. versionchanged:: 1.4.0 Zstandard support.
 
    memory_map : bool, default False
        See parsers._parser_params for more information. Only used by read_csv.
    is_text : bool, default True
        Whether the type of the content passed to the file/buffer is string or
        bytes. This is not the same as `"b" not in mode`. If a string content is
        passed to a binary file/buffer, a wrapper is inserted.
    errors : str, default 'strict'
        Specifies how encoding and decoding errors are to be handled.
        See the errors argument for :func:`open` for a full list
        of options.
    storage_options: StorageOptions = None
        Passed to _get_filepath_or_buffer
 
    Returns the dataclass IOHandles
    úutf-8Ústrictrœ)r=r?r>r˜ržÚrrÍr¢r-r¤)Úfilenamer>)Úfileobjr>r r>rÌézZero files found in ZIP file z9Multiple files found in ZIP file. Only one file per ZIP: rËÚnamerûrz Zero files found in TAR archive zDMultiple files found in TAR archive. Only one file per TAR archive: r¡Ú    zstandardÚdctxÚcctxrÝ)r=ríÚnewlineFÚrb)r=ÚreadableÚwritableÚseekablerªz1Expected file path name or file-like object, got z type)rLrNrOr?rG),Ú_is_binary_modeÚcodecsÚlookuprQr<Ú lookup_errorrÇr;Ú_maybe_memory_mapr±r?r×rër>rµr¤ÚGzipFiler"Ú _BytesZipFileÚbufferÚappendÚnamelistÚlenr¹r}Ú
setdefaultÚ _BytesTarFileÚgetnamesÚ extractfiler#r$ÚZstdDecompressorÚZstdCompressorr=rÚ_BytesIOWrapperr­Ú
_IOWrapperrrArr½ÚreverserK)rîr>r=r?rìrñrír˜ÚioargsrLÚhandlesÚis_pathrÙÚ    zip_namesÚfilesÚfilerÍÚ    open_argsrÆrOs                    rIròrò˜s €ðdÒ"˜7€Hà Ò x€Fô{ DÔ)¨c¸©oØ ‰ ˆô ‡MM(Ôܐ&œ#ÔÜ×јFÔ#ô%ØØØØ Ø'ô €Fð× &Ñ &€Fô
#4°F¸JÓ"GÑ€FˆJ˜ä˜¤Ó%€GܘF×.Ñ.Ó/ÐØ"×&Ñ& xÓ0€Kð $™7Üœs 6›{Ô+âØ ˜&Ò  à Ÿ+™+×-Ñ-¨c°2Ó6ˆFKØ ˜FÒ " s°&·+±+Ñ'=ð KŠK˜3Ñ Kð ˜&Ò  Ü˜&¤#Ô&ôŸ™ðØ#ØŸ™ñð'ñ’ô Ÿ™ðð#ØŸ™ñ    ð
'ñ ’ð˜EÒ !ð$”\“^Øñà—[‘[ðð#ñŠFð˜EÒ !ô#ؘŸ ™ ñØ'7ñˆFð}‰}×!Ñ! SÓ(Ø—‘˜vÔ&Ø"ŸM™M×2Ñ2Ó4    Üy“> QÒ&Ø#Ÿ]™]×/Ñ/°    · ± ³Ó@’FÙ"Ü$Ð'DÀ[ÀMÐ%RÓSÐSä$ð2Ø2;°ð>óðð ˜EÒ !Ø × 'Ñ '¨°· ± Ô <ܘ&¤#Ô&Ü&ÑG¨FÐGÐ6FÑG‘ô
'ñØ"ðØ&6ñô˜f¤mÔ4Ð 4Ð4ؐf—m‘m×(Ñ(Ò(Ø—‘˜vÔ&ØŸ ™ ×.Ñ.Ó0Üu“: ’?Ø!Ÿ=™=×4Ñ4°U¸1±XÓ>DØÐ+Ð+Ð+Ø!‘FÙÜ$Ð'GÈ À}Ð%UÓVÐVä$ð:Ø:?¸ðBóðð ˜DÒ  ð%”]“_ؘŸ ™ ñØ'7ñ‰Fð
˜FÒ "Ü-¨kÓ:ˆDؐf—k‘kÑ!Ø#Ð%: T×%:Ñ%:Ñ%NÐ=MÑ%NÐO‘    à#Ð%8 T×%8Ñ%8Ñ%LÐ;KÑ%LÐM    ØT—Y‘YØñà—[‘[ððñ‰Fð4°K°=ÐAˆCܘS“/Ð !ä˜f¤cÔ*Ð*Ð*؏‰vÕä    FœCÔ     ð ?Š?˜s¨&¯+©+Ñ5䨨— ‘ ØŸ™ØØô ‰Fô˜& &§+¡+Ó.ˆF؏‰vÔð€JÙ v—{‘{ dÒ*¬z¸&Ä*Ô/Mä Ø Ø—_‘_ô
‰ñ
Ù‘z¤_°V¸V¿[¹[Ô%Iô˜ 
Ô+ܘ6 :Ô.ܘ6 :Ô.ä Ó'ˆFôØ Ø—_‘_ØØô    
ˆð     ‰vÔô v×0Ñ0´#Ó 6Ò M¸&×:MÑ:Mð
ˆ
ð ˆfk‰kѤ'¨&°&Ô"9Üð ܘ×1Ñ1Ó2Ð3°5ð :ó
ð    
ð
 ‡OOÔØ ×Òܘf×7Ñ7¼Ô=Ð=Ð=؏‰v×0Ñ0Ô1ä ðð ØØ×&Ñ&ô
rHcóD‡—eZdZdZe«Zedd„«Zdˆfd„ ZˆxZ    S)Ú_BufferedWriterz
    Some objects do not support multiple .write() calls (TarFile and ZipFile).
    This wrapper writes to the underlying buffer on close.
    có—yrXrGrYs rIÚwrite_to_bufferz_BufferedWriter.write_to_buffer¶s€à rHcó*•—|jry|j«jr7|jd«|j5|j «ddd«n|jj «t‰|«y#1swYŒxYw)Nr)ÚclosedÚ    getbufferÚnbytesÚseekr r$rUÚsuper)rVÚ    __class__s €rIrUz_BufferedWriter.closeºspø€Ø ;Š;à Ø >‰>Ó × "Ò "à I‰IaŒLØ—‘ñ 'Ø×$Ñ$Ô&÷ 'ð 'ð K‰K× Ñ Ô Ü ‰‰ ÷     'ð 'ús ÁB        Br`)
rBrCrDrEr r rr$rUÚ __classcell__©r+s@rIr"r"®s-ø„ññ
‹Y€Fàò óð ÷ ñ rHr"cóT‡—eZdZ                d                                    dˆfd„ Zdd„Zdd„Zd    d„ZˆxZS)
rc 󬕗t‰|«||_||_t    j
j d||j|«|dœ|¤Ž|_y)N)rýr>rûrG)    r*Ú__init__Ú archive_namerýÚtarfileÚTarFiler¹Ú extend_moder )rVrýr>rûr1r‘r+s      €rIr0z_BytesTarFile.__init__ÉsZø€ô    ‰ÑÔØ(ˆÔ؈Œ    ô(/§¡×';Ñ';ð(
ØØ×!Ñ! $Ó'Øñ(
ðñ    (
ˆ rHcóª—|jdd«}|dk7r|S|j-t|j«j}|dvr
|›d|dd›}|S)Nrœr-rŸ)rÒrÕrÓú:rü)rµrýrÚsuffix)rVr>r7s   rIr4z_BytesTarFile.extend_modeÝs_€Ø|‰|˜C Ó$ˆØ 3Š;؈KØ 9‰9Ð  Ü˜$Ÿ)™)“_×+Ñ+ˆFØÐ/Ñ/ؘ˜q ¨¨   Ð-Øˆ rHcó"—|j€yt|j«}|jdk(r|jd«jS|jdvr*|jd«jd«jS|jS)z¶
        If an explicit archive_name is not given, we still want the file inside the zip
        file not to be named something.tar, because that causes confusion (GH39465).
        NrÎr-)rÏrÐrÑ)rýrr7Ú with_suffix©rVrús  rIÚinfer_filenamez_BytesTarFile.infer_filenameçsz€ð
9‰9Ð Øä˜Ÿ    ™    “?ˆØ ?‰?˜fÒ $Ø×'Ñ'¨Ó+×0Ñ0Ð 0Ø _‰_РBÑ BØ×'Ñ'¨Ó+×7Ñ7¸Ó;×@Ñ@Ð @؏}‰}ÐrHcóè—|jxs|j«xsd}tj|¬«}t    |j ««|_|jj||«y)NrË)rý)    r1r;r2ÚTarInforÚgetvalueÚsizer Úaddfile)rVr1Útarinfos   rIr$z_BytesTarFile.write_to_bufferösT€à×(Ñ(ÒJ¨D×,?Ñ,?Ó,AÒJÀUˆ Ü—/‘/ |Ô4ˆÜ˜4Ÿ=™=›?Ó+ˆŒ Ø  ‰ ×јG TÕ*rH)NrùNN)
rýú
str | Noner>zLiteral['r', 'a', 'w', 'x']rûz-ReadBuffer[bytes] | WriteBuffer[bytes] | Noner1rBrarb)r>r<rar<©rarBr`)rBrCrDr0r4r;r$r,r-s@rIrrÈsUø„ð Ø,/ØAEØ#'ð 
àð
ð*ð
ð?ð    
ð
!ð 
ð
õ
ó(ó ÷+rHrcóB‡—eZdZ    d                            dˆfd„ Zdd„Zdd„ZˆxZS)r c ó̕—t‰|«|jdd«}||_|j    dt
j «t j||fi|¤Ž|_y)Nrœr-r?)    r*r0rµr1rÚzipfileÚ ZIP_DEFLATEDÚZipFiler )rVrr>r1r‘r+s     €rIr0z_BytesZipFile.__init__ÿs]ø€ô    ‰ÑÔØ|‰|˜C Ó$ˆØ(ˆÔà×ј-¬×)=Ñ)=Ô>ô(/§¡Ø $ñ(
Ø ñ(
ˆ rHcó—t|jjtjt
f«rUt |jj«}|jdk(r|jd«jS|jSy)z¶
        If an explicit archive_name is not given, we still want the file inside the zip
        file not to be named something.zip, because that causes confusion (GH39465).
        rÔr-N)
rQr rúrsrŠr<rr7r9rýr:s  rIr;z_BytesZipFile.infer_filenamese€ô
d—k‘k×*Ñ*¬R¯[©[¼#Ð,>Ô ?ܘDŸK™K×0Ñ0Ó1ˆH؏‰ &Ò(Ø×+Ñ+¨BÓ/×4Ñ4Ð4Ø—=‘=Ð  ØrHcóœ—|jxs|j«xsd}|jj||j    ««y)NrÌ)r1r;r Úwritestrr>)rVr1s  rIr$z_BytesZipFile.write_to_buffers:€à×(Ñ(ÒJ¨D×,?Ñ,?Ó,AÒJÀUˆ Ø  ‰ ×ј\¨4¯=©=«?Õ;rHrX)rz1FilePath | ReadBuffer[bytes] | WriteBuffer[bytes]r>r<r1rBrarbrCr`)rBrCrDr0r;r$r,r-s@rIr r þs=ø„ð
$(ð    
à?ð
ðð
ð!ð    
ð
õ 
ó$
÷<rHr có4—eZdZdd„Zdd„Zd    d„Zd    d„Zd    d„Zy)
rcó—||_yrX)r )rVr s  rIr0z_IOWrapper.__init__*s    €Øˆ rHcó.—t|j|«SrX©Úgetattrr )rVrýs  rIÚ __getattr__z_IOWrapper.__getattr__-ó€Üt—{‘{ DÓ)Ð)rHcód—t|jd«r|jj«Sy)NrT)r­r rrYs rIrz_IOWrapper.readable0ó&€Ü 4—;‘; 
Ô +Ø—;‘;×'Ñ'Ó)Ð )ØrHcód—t|jd«r|jj«Sy)NrT)r­r rrYs rIrz_IOWrapper.seekable5rTrHcód—t|jd«r|jj«Sy)NrT)r­r rrYs rIrz_IOWrapper.writable:rTrHN)r r rarb)rýr<)rar@)rBrCrDr0rQrrrrGrHrIrr#s„óó*óó
ô
rHrcó(—eZdZddd„Zdd„Zdd    d„Zy)
rcó.—||_||_d|_y)NrH)r r=Úoverflow)rVr r=s   rIr0z_BytesIOWrapper.__init__Cs€ØˆŒ Ø ˆŒ ð
ˆ rHcó.—t|j|«SrXrO)rVÚattrs  rIrQz_BytesIOWrapper.__getattr__LrRrHcó—|j€J‚|jj|«j|j«}|j|z}||dks|t |«k\r    d|_|S|d|}||d|_|S)NrrH)r rªÚencoder=rYr)rVÚnÚ
bytestringÚcombined_bytestringÚ    to_returns     rIrªz_BytesIOWrapper.readOs‰€Ø{‰{Ð&Ð&Ð&Ø—[‘[×%Ñ% aÓ(×/Ñ/°· ± Ó>ˆ
à"Ÿm™m¨jÑ8ÐØ ˆ9˜˜Aš ¤cÐ*=Ó&>Ò!>؈DŒMØ&Ð &à+¨B¨QÐ/ˆIØ/°°Ð3ˆDŒMØÐ rHN)r÷)r zStringIO | TextIOBaser=r<rarb)r[r<)éÿÿÿÿ)r^z
int | Nonerar»)rBrCrDr0rQrªrGrHrIrr@s„ôó*õ rHrcóä—g}|t|d«xst|t«z}|s|||fStt|«}t|t«rt |d«}|j |«    ttj|j«dtj¬««}t|«D]}|j«Œ    |||gfS#t|«D]}|j«ŒwxYw)zTry to memory map file/buffer.Úfilenorr)Úaccess) r­rQr<rr!r¹rrr¼rdÚ ACCESS_READÚreversedrU)rLrìrÚwrappeds    rIr
r
]sé€ð!#€GØ”'˜& (Ó+ÒF¬z¸&Ä#Ó/FÑF€J٠ؐz 7Ð*Ð*ô”- Ó (€Fô&œ#Ôܐf˜dÓ#ˆØ‰vÔð ôÜ I‰IØ— ‘ “ ¬4×+;Ñ+;ô ó
ˆô ˜wÓ'ò    ˆFà L‰LNñ    ð J      Ð )Ð)øô    ˜wÓ'ò    ˆFà L‰LNñ    ús Á)=C à "C/có°—d}t|«}t|t«s|S    tjj |«}|S#t tf$rY|SwxYw)zTest whether file exists.F)r‡rQr<rsrtÚexistsrr})r;rjs  rIÚ file_existsrks`€à €FÜ'Ð(:Ó;ÐÜ Ð(¬#Ô .؈ ð Ü—‘—‘Р2Ó3ˆð €Møô ”zÐ "ò Ø Ø €Mð ús¡AÁAÁAcóî—d|vsd|vrd|vStjtjtjf}t    t |«|«ryt |t««xsdt|d|«vS)z+Whether the handle is opened in binary moder¢rœFr>)    rÚ StreamWriterÚ StreamReaderÚStreamReaderWriterÚ
issubclassr½rQÚ_get_binary_io_classesrP)rLr>Ú text_classess   rIrrs€€ð ˆd{c˜T‘kؐdˆ{Ðô
    ×ÑÜ×ÑÜ×!Ñ!ð    €Lô ”$v“,  Ô-Øä fÔ4Ó6Ó 7ò ¸3Ä'ؐ˜óCð<ðrHcóȗttf}tdd¬«}|9|j«j    d«5}|t |«fz }ddd«|S|S#1swY|SxYw)z!IO classes that that expect bytesrþÚignore)ríNrH)r
r r$rÚ stream_readerr½)Úbinary_classesrÍrÃs   rIrqrq¢sp€ô)7¼    Ð'B€Nô & k¸(Ô C€DØ ÐØ × "Ñ "Ó $× 2Ñ 2°3Ó 7ð    .¸6Ø œt F›|˜oÑ -ˆN÷    .ð Ј>Ð÷    .ð Ðús »AÁA!c󦇗‰t‰t«rgŠtt|«xr't|t« xrt    ˆfd„|D«««S)a¥
    Check whether or not the `columns` parameter
    could be converted into a MultiIndex.
 
    Parameters
    ----------
    columns : array-like
        Object which may or may not be convertible into a MultiIndex
    index_col : None, bool or list, optional
        Column or columns to use as the (possibly hierarchical) index
 
    Returns
    -------
    bool : Whether or not columns could become a MultiIndex
    c3óZ•K—|]"}|t‰«vsŒt|t«–—Œ$y­wrX)rerQrº)ryÚcÚ    index_cols  €rIr{z+is_potential_multi_index.<locals>.<genexpr>Ís#øèø€ÒR¨¸Ä$ÀyÃ/Ò9Q”
˜1œe×$ÑRùsƒ+–+)rQr@rr+r~)Úcolumnsrzs `rIÚis_potential_multi_indexr|´sTø€ð&МJ y´$Ô7؈    ä Ü ˆG‹ ò    Sܘ7¤MÓ2Ð 2ò    Sä ÓR¨gÔRÓ Ró ðrHcó—t|«}tt«}t|«D]\\}}||}|dkDr@|dz||<|r$t    |t
«sJ‚|dd|d›d|›fz}n|›d|›}||}|dkDrŒ@|||<|dz||<Œ^|S)a:
    Rename column names if duplicates exist.
 
    Currently the renaming is done by appending a period and an autonumeric,
    but a custom pattern may be supported in the future.
 
    Examples
    --------
    >>> dedup_names(["x", "y", "x", "x"], is_potential_multiindex=False)
    ['x', 'y', 'x.1', 'x.2']
    rrüNrbú.)rerr|Ú    enumeraterQrº)ÚnamesÚis_potential_multiindexÚcountsrzÚcolÚ    cur_counts      rIÚ dedup_namesr…Ñs€ô ‹K€EÜ)4´SÓ)9€Fä˜EÓ"ò$‰ˆˆ3ؘ3‘Kˆ    à˜!ŠmØ# a™-ˆF3‰Ká&ä! #¤uÔ-Ð-Ð-ؘ#˜2h S¨¡W I¨Q¨y¨kÐ":Ð!<Ñ<‘à˜˜Q˜y˜kÐ*Ø˜s™ ˆIð˜!‹mðˆˆa‰Ø !‘mˆˆsŠ ð$ð" €LrH)rkÚobjectrar@)r;r<rar<)r;r.rar.)r;ústr | BaseBufferTrar‡)r‚r†rarb).)r;r3r†r@rar<)r;r.r†r@rar.)F)r;zFilePath | BaseBufferTr†r@rar‡)rkúFilePath | BaseBufferrar@)r÷NrùN) r;rˆr=r<r?úCompressionOptions | Noner>r<r˜úStorageOptions | Nonerar9)rtr<rar<)r?r2raz"tuple[str | None, CompressionDict])r;rˆr?rBrarB)rtz
Path | strrarb)rîrˆr>r<r=rBr?r2rìr@rñzLiteral[False]rírBr˜r5razIOHandles[bytes])rîrˆr>r<r=rBr?r2rìr@rñz Literal[True]rírBr˜r5razIOHandles[str])rîrˆr>r<r=rBr?r2rìr@rñr@rírBr˜r5raú!IOHandles[str] | IOHandles[bytes])rîrˆr>r<r=rBr?r‰rìr@rñr@rírBr˜rŠrar‹)rLr:rìr@raz/tuple[str | BaseBuffer, bool, list[BaseBuffer]])r;rˆrar@)rLrˆr>r<rar@)raztuple[type, ...]rX)r{zSequence[Hashable] | MultiIndexrzzbool | Sequence[int] | Nonerar@)r€úSequence[Hashable]rr@rarŒ)trEÚ
__future__rÚabcrrrÚ collectionsrÚcollections.abcrrr    rcÚ    functoolsr¤Úior
r r r rrr¼rsÚpathlibrÚrer2ÚtypingrrrrrrrrrrÚ urllib.parserrrgrrrr®rFÚpandas._typingr r!Ú pandas.compatr"r#Úpandas.compat._optionalr$Úpandas.util._decoratorsr%Úpandas.util._exceptionsr&Úpandas.core.dtypes.commonr'r(r)r*Úpandas.core.dtypes.genericr+Úpandas.core.shared_docsr,ÚsetriÚdiscardÚcompiler”r.Útypesr0r1r2r3r4r5r6Úpandasr7Ú    dataclassr9rKrlrorƒr‡rr—rÇrÊrÞÚvaluesrâr«r¬rëròr"rr rrr
rkrÚ    lru_cacherqr|r…rGrHrIú<module>r§sÃðÙÝ"÷óÝ#÷ñó
ÛÛ ÷÷ó Û    ÝÛ    Û÷ ÷ ÷ ÷õóÛ÷÷õ?Ý'Ý4÷óõ 5å0á- +Ñ-° Ñ;Ó<€ Ø ×ѐBÔØB—J‘JÐ?Ó@Ðám¨:Ô6€ ñÝ#÷÷õ"ð ×Ñ÷    ð    óð    ð ×Ñô.˜‘ó.óð.ób0ð$
òó
ðð
òó
ðóó&Cð:
óó
ðð
à?BðØ#ðØ8<ðàòó
ðð$ð,Ø.ð,àð,ðó,òD3ó    ñØ Ð!2Ñ3Ø$Ð%:Ñ;Ð>RÑRôð Ø-1ØØ-1ð lØ-ðlàðlð+ðlð ð    lð
+ð lð  ò ló    ðló^0ð& ØØØØ Ø Ø Ø Ø ñ
ÐñÐ6×=Ñ=Ó?Ó@Ðð 0Ø#ð 0à'ó 0ñF˜Ð&;Ñ<Ð?SÑSÔTð3Ø-ð3Ø<Fð3àò3óUð3ól Vð
ð
Ø&)ØàØ&)ñ Ø&ð à
ð ðð     ð
$ð ð ð ðð ð ð ð$ð ðò ó
ð ð
ð
Ø&)ØØ ØØ&)ñ Ø&ð à
ð ðð     ð
$ð ð ð ðð ð ð ð$ð ðò ó
ð ð
ð
Ø&)ØØØØ&)ñ Ø&ð à
ð ðð     ð
$ð ð ð ðð ð ð ð$ð ð'ò ó
ð ñ˜Ð&;Ñ<¸}ÑLÔMð
 Ø-1ØØØØ-1ñPØ&ðPà
ðPðð    Pð
+ð Pð ð PððPð ðPð+ðPð'òPóNðPôjg˜sôô43+Oô3+ôl"<Oô"<÷Jñ÷:ñð:*Ø ð*Ø*.ð*à4ó*óD óð* ×Ñòóðð&.2ðØ ,ðà*ðð
óð:"Ø ð"Ø8<ð"àô"rH