+
    NV-j‰®  ã                  ól  € R t ^ RIHt ^ RIHtHt ^ RIt^ RIHt ^ RI	H
t
HtHt ^ RIt^ RIt^ RIt^ RIHtHtHtHtHtHt ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't' ^ R	I(H)t)H*t+H,t,H-t-H.t. ^ RI/t/^ RI0t0^ R
I1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7 ^ RI8H9t9H:t:H;t;H<t< ^ RI=H>t> ]?! ].],,           ]-,           4      t@]@Pƒ                  R4       ]P„                  ! R4      tC]%! R]2R7      tD]'       d   ^ RIEHFtF ^ RI1HGtGHHtHHItIHJtJHKtKHLtL ^ RIMHNtN ]Pž                   ! R R4      4       tP]Pž                   ! R R]#]!,          4      4       tQR R ltR]'R R l4       tS]'R R l4       tSR  R! ltSR" R# ltT]'RnR% R& ll4       tU]'RnR' R( ll4       tURoR* R+ lltUR, R- ltVR. R/ ltWRpR0 R1 lltXR2 R3 ltYR4R5R6R5R7R5R8R5R9R:R;R<R=R>R?R@RARB/	tZ]?! ]ZP·                  4       4      t\RC RD lt]RE RF lt^RG RH lt_]'RIR$RJR$RKR$RLR$RMR$/RN RO ll4       t`]'RIR$RJR$RKR$RPR$RLR$RMR$/RQ RR ll4       t`]'RIR$RJR$RKR$RPR$RLR$RMR$/RS RT ll4       t`RIRRJRRKR)RPRURLRRMR/RV RW llt` ! RX RY]]4      ta ! RZ R[]a4      tb ! R\ R]]a4      tc ! R^ R_4      td ! R` Ra4      teRb Rc ltfRd Re ltgRf Rg lth]PÒ                  Rh Ri l4       tjRqRj Rk lltkRl Rm ltlR# )rzCommon I/O 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)Úimport_optional_dependency)Úfind_stack_level)Úis_boolÚis_file_likeÚ
is_integerÚis_list_like)ÚABCMultiIndexÚ z3^[A-Za-z][A-Za-z0-9+\-+.]*(::[A-Za-z0-9+\-+.]+)*://ÚBaseBufferT)Úbound)ÚTracebackType)ÚCompressionDictÚCompressionOptionsÚFilePathÚ
ReadBufferÚStorageOptionsÚWriteBuffer)Ú
MultiIndexc                  ó‚   € ] tR t^[t$ RtR]R&   R]R&   R]R&   R]R&   R	tR
]R&   ]P                  ! ]	R7      t
R]R&   RtR# )ÚIOArgsz7
Return value of io/common.py:_get_filepath_or_buffer.
ústr | BaseBufferÚfilepath_or_bufferÚstrÚencodingÚmoder,   ÚcompressionFÚboolÚshould_close©Údefault_factoryz	list[Any]Úclose_handles© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r<   ÚdataclassesÚfieldÚlistr?   Ú__static_attributes__r@   ó    Úa/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/io/common.pyr4   r4   [   s>   ‡ ñð )Ó(ØƒMØ
ƒIØ Ó Ø€L�$ÓØ*×0Ò0ÀÔF€M�9×FrK   r4   c                  ó’   € ] tR t^it$ RtR]R&   R]R&   ]P                  ! ]R7      t	R]R&   R	t
R
]R&   R R ltR R ltR R ltRtR# )Ú	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]Úhandler,   r:   r=   zlist[IO[bytes] | IO[str]]Úcreated_handlesFr;   Ú
is_wrappedc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNoner@   )Úformats   "rL   Ú__annotate__ÚIOHandles.__annotate__~   s   € ÷  ñ  �tñ  rK   c                ó‚  € V P                   '       d|   \        V P                  \        4      '       g   Q hV P                  P	                  4        V P                  P                  4        V P                  P                  V P                  4       V P                   F  pVP                  4        K  	  . V n        RV n         R# )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)	rQ   Ú
isinstancerO   r   ÚflushÚdetachrP   ÚremoveÚclose)ÚselfrO   s   & rL   r_   ÚIOHandles.close~   s„   € ð �?�?ˆ?Ü˜dŸk™k¬=×9Ò9Ð9Ð9Ø�K‰K×ÑÔØ�K‰K×ÑÔ Ø× Ñ ×'Ñ'¨¯©Ô4Ø×*Ô*ˆFØ�L‰LŽNñ +à!ˆÔØˆŽrK   c               ó   € V ^8„  d   QhRR/# )rT   rU   zIOHandles[AnyStr]r@   )rW   s   "rL   rX   rY   �   s   € ÷ ñ Ð,ñ rK   c                	ó   € V # ©Nr@   ©r`   s   &rL   Ú	__enter__ÚIOHandles.__enter__�   s   € ØˆrK   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rT   Úexc_typeztype[BaseException] | NoneÚ	exc_valuezBaseException | NoneÚ	tracebackzTracebackType | NonerU   rV   r@   )rW   s   "rL   rX   rY   ’   s2   € ÷ ñ à,ðð (ðð (ð	ð
 
ñrK   c                	ó&   € V P                  4        R # rd   )r_   )r`   ri   rj   rk   s   &&&&rL   Ú__exit__ÚIOHandles.__exit__’   s   € ð 	�
‰
ŽrK   )rP   rQ   N)rA   rB   rC   rD   rE   rF   rG   rH   rI   rP   rQ   r_   rf   rm   rJ   r@   rK   rL   rN   rN   i   sJ   ‡ ñð ÓØ Ó Ø1<×1BÒ1BÐSWÔ1X€OÐ.ÓXØ€J�Óõ õ"÷ñ rK   rN   c               ó    € V ^8„  d   QhRRRR/# )rT   ÚurlÚobjectrU   r;   r@   )rW   s   "rL   rX   rX   ›   s   € ÷ 0ñ 0�ð 0˜4ñ 0rK   c                ój   € \        V \        4      '       g   R# \        V 4      P                  \        9   # )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)r[   r7   Ú	parse_urlÚschemeÚ_VALID_URLS©rp   s   &rL   Úis_urlrw   ›   s)   € ô �cœ3×ÒÙÜ�S‹>× Ñ ¤KÑ/Ð/rK   c               ó    € V ^8„  d   QhRRRR/# )rT   r6   r7   rU   r@   )rW   s   "rL   rX   rX   ®   s   € × 5Ñ 5 SÐ 5¨SÑ 5rK   c                ó   € R # rd   r@   ©r6   s   &rL   Ú_expand_userr{   ­   s   € Ù25rK   c               ó    € V ^8„  d   QhRRRR/# )rT   r6   r)   rU   r@   )rW   s   "rL   rX   rX   ²   s   € × EÑ E [Ð E°[Ñ ErK   c                ó   € R # rd   r@   rz   s   &rL   r{   r{   ±   s   € ÙBErK   c               ó    € V ^8„  d   QhRRRR/# )rT   r6   ústr | BaseBufferTrU   r@   )rW   s   "rL   rX   rX   µ   s   € ÷ ñ Ð%6ð Ð;Lñ rK   c                óp   € \        V \        4      '       d    \        P                  P	                  V 4      # V # )a5  
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
)r[   r7   ÚosÚpathÚ
expanduserrz   s   &rL   r{   r{   µ   s.   € ô Ð$¤c×*Ò*Ü�w‰w×!Ñ!Ð"4Ó5Ð5ØÐrK   c               ó    € V ^8„  d   QhRRRR/# )rT   Úheaderrq   rU   rV   r@   )rW   s   "rL   rX   rX   È   s   € ÷ Cñ C ð C¨4ñ CrK   c                óî  € V f   R # \        V 4      '       d%   \        \        V 4      p V ^ 8  d   \        R4      hR # \	        V RR7      '       d‚   \        \
        V 4      p \        \        \         V 4      4      '       g   \        R4      h\        ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   \        R4      hR # \        V 4      '       d   \        R4      h\        R4      h)	NzUPassing negative integer to header is invalid. For no header, use header=None insteadF)Ú
allow_setsz*header must be integer or list of integersc              3  ó*   "  € T F	  q^ 8  x € K  	  R# 5i)é    Nr@   )Ú.0Úis   & rL   Ú	<genexpr>Ú&validate_header_arg.<locals>.<genexpr>Ø   s   é € Ð%™f˜�1Žu›fùs   ‚Tz8cannot 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)r…   s   &rL   Úvalidate_header_argr”   È   sÏ   € Ø‚~ÙÜ�&×ÒÜ”c˜6Ó"ˆØ�AŒ:äð9óð ñ 	Ü�F u×-Ó-Ü”h Ó'ˆÜ”3”z 6Ó*×+Ò+ÜÐIÓJÐJß‹3Ñ%™fÓ%�3�3Š3Ñ%™fÓ%×%Ò%ÜÐWÓXÐXÙÜˆv‡‚Üð4ó
ð 	
ô ÐAÓ
BÐBrK   .c               ó$   € V ^8„  d   QhRRRRRR/# )rT   r6   r.   Úconvert_file_liker;   rU   r7   r@   )rW   s   "rL   rX   rX   æ   s$   € ÷ ñ Ø ðØ59ðàñrK   c                ó   € R # rd   r@   ©r6   r–   s   &&rL   Ústringify_pathr™   å   s   € ñ rK   c               ó$   € V ^8„  d   QhRRRRRR/# )rT   r6   r)   r–   r;   rU   r@   )rW   s   "rL   rX   rX   ì   s$   € ÷ ñ Ø#ðØ8<ðàñrK   c                ó   € R # rd   r@   r˜   s   &&rL   r™   r™   ë   s   € ñ rK   Fc               ó$   € V ^8„  d   QhRRRRRR/# )rT   r6   zFilePath | BaseBufferTr–   r;   rU   r   r@   )rW   s   "rL   rX   rX   ñ   s&   € ÷ ,ñ ,Ø.ð,àð,ð ñ,rK   c                óÊ   € V'       g"   \        V 4      '       d   \        \        V 4      # \        V \        P
                  4      '       d   V P                  4       p \        V 4      # )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$   r   r)   r[   r�   ÚPathLikeÚ
__fspath__r{   r˜   s   &&rL   r™   r™   ñ   sO   € ÷. ¤Ð.@×!AÒ!Aô ”KÐ!3Ó4Ð4äÐ$¤b§k¡k×2Ò2Ø/×:Ñ:Ó<ÐÜÐ*Ó+Ð+rK   c               ó$   € V ^8„  d   QhRRRRRR/# )rT   Úargsr   ÚkwargsrU   r@   )rW   s   "rL   rX   rX     s!   € ÷ 3ñ 3�3ð 3 #ð 3¨#ñ 3rK   c                 óB   € ^ RI pVP                  P                  ! V / VB # )zT
Lazy-import wrapper for stdlib urlopen, as that imports a big chunk of
the stdlib.
N)Úurllib.requestÚrequestÚurlopen)r¡   r¢   Úurllibs   *, rL   r¦   r¦     s!   € ó
 à�>‰>×!Ò! 4Ð2¨6Ñ2Ð2rK   c               ó    € V ^8„  d   QhRRRR/# )rT   rp   úFilePath | BaseBufferrU   r;   r@   )rW   s   "rL   rX   rX     s   € ÷ 	ñ 	Ð,ð 	°ñ 	rK   c                óª   € \        V \        4      ;'       d=    \        \        P	                  V 4      4      ;'       d    V P                  R4      '       * # )zF
Returns true if the given URL looks like
something fsspec can handle
)zhttp://zhttps://)r[   r7   r;   Ú_FSSPEC_URL_PATTERNÚmatchÚ
startswithrv   s   &rL   Úis_fsspec_urlr®     sK   € ô 	�3œÓ÷ 	8ð 	8ÜÔ$×*Ñ*¨3Ó/Ó0÷	8ð 	8à—‘Ð6Ó7Ô7ðrK   c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )rT   r6   r©   r8   r7   r:   úCompressionOptions | Noner9   Ústorage_optionsúStorageOptions | NonerU   r4   r@   )rW   s   "rL   rX   rX   )  sL   € ÷ Oñ OØ-ðOàðOð +ðOð ð	Oð
 +ðOð ñOrK   c           	     ó¤  € \        V 4      p \        V4      w  rR\        W4      pV'       dA   \        V R4      '       d/   RV9  d(   \        P
                  ! R\        \        4       R7       Rp\        W%R7      pRV9   d9   VR9   d2   VR 9   d+   \        P
                  ! V RV 2\        \        4       R7       R	V9   d-   VR!9   d&   \        P
                  ! R
\        \        4       R7       TpRV9  d   RV9  d
   VR,          p\        V \        4      '       dª   \        V 4      '       d™   T;'       g    / p^ RIpVP                  P                  WR7      p\!        V4      ;_uu_ 4       p	V	P"                  P%                  RR4      p
V
R8X  d   RR/p\'        V	P)                  4       4      pRRR4       \+        XVVRVR7      # \-        V 4      '       d×   \        V \        4      '       g   Q hV P/                  R4      '       d   V P1                  RR4      p V P/                  R4      '       d   V P1                  RR4      p \3        R4      p. p \3        R4       ^ RIHpHp VV\:        .p VP>                  ! V 3RV/T;'       g    / B pVP?                  4       p\+        VVVV.RVR7      # V'       d   \C        R4      h\        V \        \D        \F        PF                  34      '       d   \+        \I        V 4      VVRVR7      # \        V R4      '       g,   \        V R4      '       g   R\K        V 4       2p\C        V4      h\+        V VVRVR7      #   + '       g   i     EL¬; i  \<         d     ELi ; i  \A        T4       dM    Tf   RR/pM\        T4      pRTR&   TP>                  ! T 3RT/T;'       g    / B pTP?                  4       p EL7i ; i)"a  
If the filepath_or_buffer is a url, translate and return the buffer.
Otherwise passthrough.

Parameters
----------
filepath_or_buffer : a url, filepath (str or pathlib.Path),
                     or buffer

compression : str or dict, default 'infer'
    For on-the-fly compression of the output data. If 'infer' and
    'filepath_or_buffer' is path-like, then detect compression from the
    following extensions: '.gz',
    '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' or '.tar.bz2'
    (otherwise no compression).
    Set to ``None`` for no compression.
    Can also be a dict with key ``'method'`` set
    to one of {``'zip'``, ``'gzip'``, ``'bz2'``, ``'zstd'``, ``'xz'``, ``'tar'``}
    and other key-value pairs are forwarded to
    ``zipfile.ZipFile``, ``gzip.GzipFile``,
    ``bz2.BZ2File``, ``zstandard.ZstdCompressor``, ``lzma.LZMAFile`` or
    ``tarfile.TarFile``, respectively.
    As an example, the following could be passed for faster compression and to
    create a reproducible gzip archive:
    ``compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}``.

encoding : the encoding to use to decode bytes, default is 'utf-8'
mode : str, optional

storage_options : dict, optional
    Extra options that make sense for a particular storage connection, e.g.
    host, port, username, password, etc. For HTTP(S) URLs the key-value pairs
    are forwarded to ``urllib.request.Request`` as header options. For other
    URLs (e.g. starting with "s3://", and "gcs://") the key-value pairs are
    forwarded to ``fsspec.open``. Please see ``fsspec`` and ``urllib`` for more
    details, and for more examples on storage options refer `here
    <https://pandas.pydata.org/docs/user_guide/io.html?
    highlight=storage_options#reading-writing-remote-files>`_.


Returns the dataclass IOArgs.
ÚwriteÚbzDcompression has no effect when passing a non-binary object as input.)Ú
stacklevelN)ÚmethodÚwz( will not write the byte order mark for Úaz‡zip and tar do not support mode 'a' properly. This combination will result in multiple files with same name being added to the archive.Út)ÚheaderszContent-EncodingÚgzipr·   T)r6   r8   r:   r<   r9   zs3a://zs3://zs3n://ÚfsspecÚbotocore)ÚClientErrorÚNoCredentialsErrorr9   Úanon)r6   r8   r:   r?   r<   r9   z?storage_options passed with file object or non-fsspec file pathFÚreadz)Invalid file path or buffer object type: )Úbz2Úxz)zutf-16zutf-32)ÚzipÚtar)&r™   Úget_compression_methodÚinfer_compressionÚhasattrÚwarningsÚwarnÚRuntimeWarningr"   ÚdictÚUnicodeWarningr[   r7   rw   r¤   r¥   ÚRequestr¦   r»   Úgetr
   rÂ   r4   r®   r­   Úreplacer!   Úbotocore.exceptionsr¿   rÀ   ÚPermissionErrorÚImportErrorÚopenÚtupler�   ÚbytesÚmmapr{   Útype)r6   r8   r:   r9   r±   Úcompression_methodÚfsspec_moder§   Úreq_infoÚreqÚcontent_encodingÚreaderr½   Úerr_types_to_retry_with_anonr¿   rÀ   Ú	open_fileÚfile_objÚmsgs   &&&&&              rL   Ú_get_filepath_or_bufferrä   )  sï  € ôb (Ð(:Ó;Ðô '=¸[Ó&IÑ#ÐÜ*Ð+=ÓRÐ÷ œgÐ&8¸'×BÒBÀsÐRVÄÜ�ŠØRÜÜ'Ó)õ	
ð
 "Ðä�{Ô>€Kð
 	ˆtŒØ -Ô/ØÐ,Ô,ä�ŠØˆmÐCÀHÀ:ÐNÜÜ'Ó)õ	
ð ˆd„{Ð)¨^Ô;ä�Šð*ô Ü'Ó)õ	
ð €KØ
�+Ô #¨[Ô"8Ø�sÕˆäÐ$¤c×*Ò*¬vÐ6H×/IÒ/Ið *×/Ð/¨Rˆó 	ð —>‘>×)Ñ)Ð*<Ð)ÓVˆÜ�X×Ô #Ø"Ÿ{™{Ÿ™Ð/AÀ4ÓHÐØ 6Ô)à'¨Ð0�Ü˜SŸX™X›ZÓ(ˆF÷ ô Ø%ØØ#ØØô
ð 	
ô Ð'×(Ò(ÜØ¤÷
ò 
ð 	
ð 
ð ×(Ñ(¨×2Ò2Ø!3×!;Ñ!;¸HÀgÓ!NÐØ×(Ñ(¨×2Ò2Ø!3×!;Ñ!;¸HÀgÓ!NÐÜ+¨HÓ5ˆð 35Ð$ð	Ü& zÔ2÷ð Ø"Üð,Ð(ð	(ØŸšØ"ñØ)4ðØ9H×9NÐ9NÈBñˆIð !—~‘~Ó'ˆHô Ø'ØØ#Ø$˜+ØØô
ð 	
÷ 
ÜØMó
ð 	
ô Ð$¤s¬E´4·9±9Ð&=×>Ò>ÜÜ+Ð,>Ó?ØØ#ØØô
ð 	
ô 	Ð" F×+Ò+¬wÐ7IÈ7×/SÒ/Sà9¼$Ð?QÓ:RÐ9SÐTˆÜ˜‹oÐäØ-ØØØØôð ÷{ ×ÐûôT ô 	Úð	ûô Ð1Ó2ô 
	(ØÒ&Ø#)¨4 .‘ô #' Ó"7�Ø*.� Ñ'ØŸšØ"ñØ)4ðØ9H×9NÐ9NÈBñˆIð !—~‘~Ó'‹Hð
	(ús>   Å)AMÉM! É(M3 ÊM3 ÍM	Í!M0Í/M0Í3AOÎ6OÏOc               ó    € V ^8„  d   QhRRRR/# )rT   r‚   r7   rU   r@   )rW   s   "rL   rX   rX   û  s   € ÷ 0ñ 0˜3ð 0 3ñ 0rK   c                ó2   € ^ RI Hp \        RV! V 4      4      # )z‰
converts an absolute native path to a FILE URL.

Parameters
----------
path : a path in native format

Returns
-------
a valid FILE URL
)Úpathname2urlzfile:)r¤   rç   r   )r‚   rç   s   & rL   Úfile_path_to_urlrè   û  s   € õ ,ä�7™L¨Ó.Ó/Ð/rK   ú.tarrÆ   ú.tar.gzú.tar.bz2ú.tar.xzú.gzr¼   ú.bz2rÃ   ú.ziprÅ   ú.xzrÄ   z.zstÚzstdc               ó    € V ^8„  d   QhRRRR/# )rT   r:   r-   rU   z"tuple[str | None, CompressionDict]r@   )rW   s   "rL   rX   rX     s   € ÷  0ñ  0Ø#ð 0à'ñ 0rK   c                óº   € \        V \        4      '       d!   \        V 4      p VP                  R4      pW!3# / pT pW!3#   \         d   p\        R4      ThRp?ii ; i)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)r[   r   rÍ   ÚpopÚKeyErrorr�   )r:   Úcompression_argsrÚ   Úerrs   &   rL   rÇ   rÇ     sx   € ô. �+œw×'Ò'Ü Ó,Ðð	XØ!1×!5Ñ!5°hÓ!?Ðð Ð/Ð/ð ÐØ(ÐØÐ/Ð/øô ô 	XÜÐMÓNÐTWÐWûð	Xús   £> ¾AÁ	AÁAc               ó$   € V ^8„  d   QhRRRRRR/# )rT   r6   r©   r:   ú
str | NonerU   r@   )rW   s   "rL   rX   rX   >  s)   € ÷ Dñ DØ-ðDØ<FðDàñDrK   c                óÆ  € Vf   R# VR8X  d£   \        V \        4      '       d    RV 9   d   V P                  R4      ^ ,          p \        V RR7      p \        V \        4      '       g   R# \        P                  4        F.  w  r!V P                  4       P                  V4      '       g   K,  Vu # 	  R# V\        9   d   V# RR.\        \        4      OpRV RV 2p\        V4      h)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 : str or dict, default 'infer'
    For on-the-fly compression of the output data. If 'infer' and
    'filepath_or_buffer' is path-like, then detect compression from the
    following extensions: '.gz',
    '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' or '.tar.bz2'
    (otherwise no compression).
    Set to ``None`` for no compression.
    Can also be a dict with key ``'method'`` set
    to one of {``'zip'``, ``'gzip'``, ``'bz2'``, ``'zstd'``, ``'xz'``, ``'tar'``}
    and other key-value pairs are forwarded to
    ``zipfile.ZipFile``, ``gzip.GzipFile``,
    ``bz2.BZ2File``, ``zstandard.ZstdCompressor``, ``lzma.LZMAFile`` or
    ``tarfile.TarFile``, respectively.
    As an example, the following could be passed for faster compression and to
    create a reproducible gzip archive:
    ``compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}``.

Returns
-------
string or None

Raises
------
ValueError on invalid compression specified.
NÚinferz::T)r–   úUnrecognized compression type: z
Valid compression types are )r[   r7   Úsplitr™   Úextension_to_compressionÚitemsÚlowerÚendswithÚ_supported_compressionsÚsortedr�   )r6   r:   Ú	extensionÚvalidrã   s   &&   rL   rÈ   rÈ   >  sï   € ðN ÒÙð �gÔäÐ(¬#×.Ò.°4Ð;MÔ3Mà!3×!9Ñ!9¸$Ó!?ÀÕ!BÐÜ+Ð,>ÐRVÔWÐÜÐ,¬c×2Ò2áô '?×&DÑ&DÖ&FÑ"ˆIØ!×'Ñ'Ó)×2Ñ2°9×=Ô=Ø"Ò"ñ 'Gñ ð Ô-Ô-ØÐà�dÐ=œVÔ$;Ó<Ð=€Eà
)¨+¨ð 7'Ø', gð	/ð ô �S‹/ÐrK   c               ó    € V ^8„  d   QhRRRR/# )rT   r‚   z
Path | strrU   rV   r@   )rW   s   "rL   rX   rX   …  s   € ÷ Vñ V ð V°ñ VrK   c                óz   € \        V 4      P                  pVP                  4       '       g   \        RV R24      hR# )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)r‚   r	  s   & rL   Úcheck_parent_directoryr  …  s9   € ô �$‹Z×Ñ€FØ�=‰=�?Š?ÜÐJÈ6È(ÐRSÐTÓUÐUñ rK   r8   r:   Ú
memory_mapÚerrorsr±   c               ó<   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR/	# )rT   Úpath_or_bufr©   r9   r7   r8   rù   r:   r-   r  r;   Úis_textzLiteral[False]r  r±   r0   rU   zIOHandles[bytes]r@   )rW   s   "rL   rX   rX   ”  sb   € ÷ 
ñ 
Ø&ð
à
ð
ð ð	
ð
 $ð
ð ð
ð ð
ð ð
ð $ð
ð ñ
rK   c               ó   € R # rd   r@   ©r  r9   r8   r:   r  r  r  r±   s   &&$$$$$$rL   Ú
get_handler  “  s   € ñ rK   r  c               ó<   € V ^8„  d   QhRRRRRRRRR	R
RRRRRRRR/	# )rT   r  r©   r9   r7   r8   rù   r:   r-   r  r;   r  zLiteral[True]r  r±   r0   rU   zIOHandles[str]r@   )rW   s   "rL   rX   rX   ¢  sb   € ÷ 
ñ 
Ø&ð
à
ð
ð ð	
ð
 $ð
ð ð
ð ð
ð ð
ð $ð
ð ñ
rK   c               ó   € R # rd   r@   r  s   &&$$$$$$rL   r  r  ¡  s   € ñ rK   c               ó<   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRRRR/	# )rT   r  r©   r9   r7   r8   rù   r:   r-   r  r;   r  r  r±   r0   rU   ú!IOHandles[str] | IOHandles[bytes]r@   )rW   s   "rL   rX   rX   °  sb   € ÷ 
,ñ 
,Ø&ð
,à
ð
,ð ð	
,ð
 $ð
,ð ð
,ð ð
,ð ð
,ð $ð
,ð 'ñ
,rK   c               ó   € R # rd   r@   r  s   &&$$$$$$rL   r  r  ¯  s   € ñ ),rK   Tc               ó<   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRRRR/	# )rT   r  r©   r9   r7   r8   rù   r:   r°   r  r;   r  r  r±   r²   rU   r  r@   )rW   s   "rL   rX   rX   ½  sm   € ÷ fñ fØ&ðfà
ðfð ð	fð
 +ðfð ðfð ðfð ðfð +ðfð 'ñfrK   c               ó*  € T;'       g    RpT;'       g    Rp\        W4      '       d   RV9  d
   VR,          p\        P                  ! V4       \        V\        4      '       d   \        P
                  ! V4       \        V VVVVR7      pVP                  p	\        W”4      w  r”p
\        V	\        4      p\        VP                  4      pVP                  R4      pRV9  d   V'       d   \        \	        V	4      4       V'       Ed˜   VR8w  d#   VP                  P                  RR	4      Vn        M1VR8X  d+   RVP                  9  d   V;P                  R,          un        VR
8X  dc   \        V	\        4      '       d'   \        P                   ! R'RV	RVP                  /VB p	EMÐ\        P                   ! R'RV	RVP                  /VB p	EMªVR8X  d&   ^ RIpVP$                  ! V	3RVP                  /VB p	EM~VR8X  d¿   \'        V	VP                  3/ VB p	V	P(                  P                  R8X  d‹   V
P+                  V	4       V	P(                  P-                  4       p\/        V4      ^8X  d,   V	P(                  P1                  VP                  4       4      p	EMßV'       g   \3        RV  24      h\3        RV 24      hEM¹VR8X  Ed   VP5                  RVP                  4       \        V	\        4      '       d   \7        R'RV	/VB p	M\7        R'RV	/VB p	\        V	\6        4      '       g   Q hRV	P(                  P                  9   d‹   V
P+                  V	4       V	P(                  P9                  4       p\/        V4      ^8X  d,   V	P(                  P;                  V^ ,          4      pVf   Q hTp	MËV'       g   \3        RV  24      h\3        RV 24      hM¦VR8X  d$   ^ RIpVP>                  ! V	VP                  3/ VB p	M|VR8X  df   \A        R4      pRVP                  9   d   RVPB                  ! R'/ VB /pMRVPD                  ! R'/ VB /pVP0                  ! V	3RVP                  /VB p	MRV 2p\3        V4      h\        V	\        4      '       d   Q hV
P+                  V	4       M„\        V	\        4      '       do   VPF                  '       d7   RVP                  9  d&   \1        V	VP                  VPF                  VR	R7      p	M\1        W˜P                  4      p	V
P+                  V	4       RpV'       g@   VP                  R8X  d/   \        V	\H        4      '       d   \K        V	VPF                  R7      p	MÑV'       dÊ   V'       g$   V'       g   \        W˜P                  4      '       dŸ   \M        V	R 4      '       d%   \M        V	R!4      '       d   \M        V	R"4      '       g   \O        V	4      p	\Q        V	VPF                  VR	R7      p	V
P+                  V	4       \        VP                  \        4      ;'       g    VPR                  '       * pRVP                  9   d5   \M        V	R#4      '       g#   \U        R$\W        VP                  4       R%24      hV
PY                  4        VPR                  '       dY   \        VP                  \        4      '       d   Q hV
P+                  VP                  4       V
P[                  VP\                  4       \_        V	V
VVP                  R&7      # )(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 : str or dict, default 'infer'
    For on-the-fly compression of the output data. If 'infer' and 'path_or_buf'
    is path-like, then detect compression from the following extensions: '.gz',
    '.bz2', '.zip', '.xz', '.zst', '.tar', '.tar.gz', '.tar.xz' or '.tar.bz2'
    (otherwise no compression).
    Set to ``None`` for no compression.
    Can also be a dict with key ``'method'`` set
    to one of {``'zip'``, ``'gzip'``, ``'bz2'``, ``'zstd'``, ``'xz'``, ``'tar'``}
    and other key-value pairs are forwarded to
    ``zipfile.ZipFile``, ``gzip.GzipFile``,
    ``bz2.BZ2File``, ``zstandard.ZstdCompressor``, ``lzma.LZMAFile`` or
    ``tarfile.TarFile``, respectively.
    As an example, the following could be passed for faster compression and to
    create a reproducible gzip archive:
    ``compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}``.

       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'.

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µ   )r8   r:   r9   r±   r·   Úrrñ   rº   r(   r¼   Úfilenamer9   ÚfileobjrÃ   NrÅ   zZero files found in ZIP file z9Multiple files found in ZIP file. Only one file per ZIP: rÆ   Únamez Zero files found in TAR archive zDMultiple files found in TAR archive. Only one file per TAR archive: rÄ   Ú	zstandardÚdctxÚcctxrü   )r8   r  ÚnewlineFÚrb)r8   ÚreadableÚwritableÚseekablerÂ   z1Expected file path name or file-like object, got z type)rO   rP   rQ   r:   r@   )0Ú_is_binary_modeÚcodecsÚlookupr[   r7   Úlookup_errorrä   r6   Ú_maybe_memory_maprÍ   r:   rô   r  r9   rÑ   r¼   ÚGzipFilerÃ   ÚBZ2FileÚ_BytesZipFileÚbufferÚappendÚnamelistÚlenrÕ   r�   Ú
setdefaultÚ_BytesTarFileÚgetnamesÚextractfileÚlzmaÚLZMAFiler!   ÚZstdDecompressorÚZstdCompressorr8   r   Ú_BytesIOWrapperrÉ   Ú
_IOWrapperr   r<   r“   rÙ   ÚreverseÚextendr?   rN   )r  r9   r8   r:   r  r  r  r±   ÚioargsrO   ÚhandlesÚis_pathrö   rÃ   Ú	zip_namesÚfilesÚfiler:  rñ   Ú	open_argsrã   rQ   s   &&$$$$$$              rL   r  r  ½  sh  € ðz ×"Ð"˜7€Hà×Ð�x€Fô �{×)Ò)¨c¸¬oØ��ˆô ‡M‚M�(ÔÜ�&œ#×ÒÜ×Ò˜FÔ#ô %ØØØØØ'ô€Fð ×&Ñ&€Fô
 #4°FÓ"GÑ€F˜ä˜¤Ó%€GÜ˜F×.Ñ.Ó/ÐØ"×&Ñ& xÓ0€Kð �$„Ÿ7Üœs 6›{Ô+ç€{Ø˜&Ô à Ÿ+™+×-Ñ-¨c°2Ó6ˆF�KØ˜FÔ" s°&·+±+Ô'=ð �KŠK˜3Õ�Kð ˜&Ô Ü˜&¤#×&Ò&ô Ÿšñ Ø#ðàŸ™ðð 'ñ’ô Ÿšñ ð #ðð  Ÿ™ð	ð
 'ñ’ð ˜EÔ!Ûð —[’[Øñà—[‘[ðð #ñŠFð ˜EÔ!ô #ØØ—‘ñð #ñˆFð
 �}‰}×!Ñ! SÔ(Ø—‘˜vÔ&Ø"ŸM™M×2Ñ2Ó4�	Ü�y“> QÔ&Ø#Ÿ]™]×/Ñ/°	·±³Ó@’Fß"Ü$Ð'DÀ[ÀMÐ%RÓSÐSä$ð2Ø2;°ð>óð ñ )ð ˜EÕ!Ø×'Ñ'¨°·±Ô<Ü˜&¤#×&Ò&Ü&ÑG¨FÐGÐ6FÑG‘ô
 'ñ Ø"ðà&ñ�ô ˜f¤m×4Ò4Ð4Ð4Ø�f—m‘m×(Ñ(Ô(Ø—‘˜vÔ&ØŸ™×.Ñ.Ó0�Ü�u“: ”?Ø!Ÿ=™=×4Ñ4°U¸1µXÓ>�DØÒ+Ð+Ð+Ø!‘FßÜ$Ð'GÈÀ}Ð%UÓVÐVä$ð:Ø:?¸ðBóð ð )ð  ˜DÔ ó à—]’]ØØ—‘ñð #ñ‰Fð ˜FÔ"Ü-¨kÓ:ˆDØ�f—k‘kÔ!Ø# T×%:Ò%:Ñ%NÐ=MÑ%NÐO‘	à# T×%8Ò%8Ñ%LÐ;KÑ%LÐM�	Ø—Y’YØñà—[‘[ðð ñ‰Fð 4°K°=ÐAˆCÜ˜S“/Ð!ä˜f¤c×*Ò*Ð*Ð*Ø�‰�vÕä	�FœC×	 Ò	 ð �?�?ˆ?˜s¨&¯+©+Ô5äØØ—‘ØŸ™ØØô‰Fô ˜&§+¡+Ó.ˆFØ�‰�vÔð €Jß�v—{‘{ dÔ*¬z¸&Ä*×/MÒ/Mä ØØ—_‘_ô
‰÷ 
ß—z¤_°V¿[¹[×%IÒ%Iô ˜ 
×+Ò+Ü˜6 :×.Ò.Ü˜6 :×.Ò.ä Ó'ˆFô ØØ—_‘_ØØô	
ˆð 	�‰�vÔô �v×0Ñ0´#Ó6×MÐM¸&×:MÑ:Mô
ˆ
ð ˆf�k‰kÔ¤'¨&°&×"9Ò"9ÜðÜ˜×1Ñ1Ó2Ð3°5ð:ó
ð 	
ð
 ‡O�OÔØ××ÐÜ˜f×7Ñ7¼×=Ò=Ð=Ð=Ø�‰�v×0Ñ0Ô1Ø�‰�v×+Ñ+Ô,äð ð  ØØ×&Ñ&ô
ð 
rK   c                  óV   a € ] tR tRtRt]! 4       t]R R l4       tR V 3R llt	Rt
V ;t# )Ú_BufferedWriteriæ  zƒ
Some objects do not support multiple .write() calls (TarFile and ZipFile).
This wrapper writes to the underlying buffer on close.
c               ó   € V ^8„  d   QhRR/# rS   r@   )rW   s   "rL   rX   Ú_BufferedWriter.__annotate__ï  s   € ×*Ñ* Ñ*rK   c                	ó   € R # rd   r@   re   s   &rL   Úwrite_to_bufferÚ_BufferedWriter.write_to_bufferî  s   € Ù'*rK   c               ó   € V ^8„  d   QhRR/# rS   r@   )rW   s   "rL   rX   rL  ñ  s   € ÷ ñ �tñ rK   c                	ód  <€ V P                   '       d   R # V P                  4       P                  '       d@   V P                  ^ 4       V P                  ;_uu_ 4        V P                  4        R R R 4       MV P                  P                  4        \        SV `  4        R #   + '       g   i     L ; ird   )ÚclosedÚ	getbufferÚnbytesÚseekr2  rN  r_   Úsuper)r`   Ú	__class__s   &€rL   r_   Ú_BufferedWriter.closeñ  sl   ø€ Ø�;�;ˆ;áØ�>‰>Ó×"×"Ð"à�I‰I�aŒLØ——“Ø×$Ñ$Ô&÷ �ð �K‰K×ÑÔÜ‰‰Ž÷	 —ús   ÁBÂB/	r@   )rA   rB   rC   rD   rE   r
   r2  r   rN  r_   rJ   Ú__classcell__©rW  s   @rL   rJ  rJ  æ  s)   ø† ññ
 ‹Y€FàÜ*ó Ø*÷ö rK   rJ  c                  óV   a € ] tR tRtRR V 3R llltR R ltR R ltR R	 ltR
tV ;t	# )r7  iÿ  c               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )rT   r!  rù   r9   zLiteral['r', 'a', 'w', 'x']r   z-ReadBuffer[bytes] | WriteBuffer[bytes] | NoneÚarchive_namer¢   r   rU   rV   r@   )rW   s   "rL   rX   Ú_BytesTarFile.__annotate__   sF   € ÷ 
ñ 
àð
ð *ð
ð ?ð	
ð
 !ð
ð ð
ð 
ñ
rK   c           	     	ó°   <€ \         SV `  4        W@n        Wn        \        P
                  P                  ! RR VRV P                  V4      RV/VB V n        R# )r!  r9   r   Nr@   )	rV  Ú__init__r]  r!  ÚtarfileÚTarFilerÕ   Úextend_moder2  )r`   r!  r9   r   r]  r¢   rW  s   &&&&&,€rL   r`  Ú_BytesTarFile.__init__   sb   ø€ ô 	‰ÑÔØ(ÔØŒ	ô (/§¡×';Ò';ñ (
Øð(
à×!Ñ! $Ó'ð(
ð ð(
ð ñ	(
ˆŽrK   c               ó    € V ^8„  d   QhRRRR/# )rT   r9   r7   rU   r@   )rW   s   "rL   rX   r^    s   € ÷ ñ  ð ¨ñ rK   c                	óÀ   € VP                  R R4      pVR8w  d   V# V P                  e5   \        V P                  4      P                  pVR9   d   V RVR,           2pV# )rµ   r(   r¸   Ú::é   NN)rí   rð   rî   )rÑ   r!  r   Úsuffix)r`   r9   ri  s   && rL   rc  Ú_BytesTarFile.extend_mode  s]   € Ø�|‰|˜C Ó$ˆØ�3Œ;ØˆKØ�9‰9Ò Ü˜$Ÿ)™)“_×+Ñ+ˆFØÐ/Ô/Ø˜˜q ¨¥ Ð-�ØˆrK   c               ó   € V ^8„  d   QhRR/# ©rT   rU   rù   r@   )rW   s   "rL   rX   r^  !  s   € ÷ ñ  
ñ rK   c                ó2  € V P                   f   R# \        V P                   4      pVP                  R8X  d   VP                  R4      P                   # VP                  R9   d+   VP                  R4      P                  R4      P                   # VP                   # )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!  r   ri  Úwith_suffix©r`   r  s   & rL   Úinfer_filenameÚ_BytesTarFile.infer_filename!  sz   € ð
 �9‰9ÒÙä˜Ÿ	™	“?ˆØ�?‰?˜fÔ$Ø×'Ñ'¨Ó+×0Ñ0Ð0Ø�_‰_Ð BÔBØ×'Ñ'¨Ó+×7Ñ7¸Ó;×@Ñ@Ð@Ø�}‰}ÐrK   c               ó   € V ^8„  d   QhRR/# rS   r@   )rW   s   "rL   rX   r^  0  s   € ÷ +ñ + ñ +rK   c                	ó  € V P                   ;'       g    V P                  4       ;'       g    R p\        P                  ! VR7      p\	        V P                  4       4      Vn        V P                  P                  W 4       R# )rÆ   )r!  N)	r]  rp  ra  ÚTarInfor5  ÚgetvalueÚsizer2  Úaddfile)r`   r]  Útarinfos   &  rL   rN  Ú_BytesTarFile.write_to_buffer0  sX   € à×(Ñ(×JÐJ¨D×,?Ñ,?Ó,A×JÐJÀUˆÜ—/’/ |Ô4ˆÜ˜4Ÿ=™=›?Ó+ˆŒØ�‰×Ñ˜GÖ*rK   )r]  r2  r!  )Nr  NN)
rA   rB   rC   rD   r`  rc  rp  rN  rJ   rY  rZ  s   @rL   r7  r7  ÿ  s!   ø† ÷
ò 
õ.õ÷+ó +rK   r7  c                  óJ   a € ] tR tRtR	R V 3R llltR R ltR R ltRtV ;t# )
r1  i8  c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rT   rG  z1FilePath | ReadBuffer[bytes] | WriteBuffer[bytes]r9   r7   r]  rù   r¢   r   rU   rV   r@   )rW   s   "rL   rX   Ú_BytesZipFile.__annotate__9  s<   € ÷ 
ñ 
à?ð
ð ð
ð !ð	
ð
 ð
ð 
ñ
rK   c                	óÌ   <€ \         SV `  4        VP                  R R4      pW0n        VP	                  R\
        P                  4       \
        P                  ! W3/ VB V n        R# )rµ   r(   r:   N)	rV  r`  rÑ   r]  r6  ÚzipfileÚZIP_DEFLATEDÚZipFiler2  )r`   rG  r9   r]  r¢   rW  s   &&&&,€rL   r`  Ú_BytesZipFile.__init__9  sY   ø€ ô 	‰ÑÔØ�|‰|˜C Ó$ˆØ(Ôà×Ñ˜-¬×)=Ñ)=Ô>ô (/§¢Øñ(
Ø ñ(
ˆŽrK   c               ó   € V ^8„  d   QhRR/# rl  r@   )rW   s   "rL   rX   r|  N  s   € ÷ 
ñ 
 
ñ 
rK   c                ó(  € \        V P                  P                  \        P                  \
        34      '       dX   \        V P                  P                  4      pVP                  R8X  d   VP                  R4      P                  # VP                  # R# )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)
r[   r2  r  r�   rž   r7   r   ri  rn  r!  ro  s   & rL   rp  Ú_BytesZipFile.infer_filenameN  sh   € ô
 �d—k‘k×*Ñ*¬R¯[©[¼#Ð,>×?Ò?Ü˜DŸK™K×0Ñ0Ó1ˆHØ�‰ &Ô(Ø×+Ñ+¨BÓ/×4Ñ4Ð4Ø—=‘=Ð ÙrK   c               ó   € V ^8„  d   QhRR/# rS   r@   )rW   s   "rL   rX   r|  Z  s   € ÷ <ñ < ñ <rK   c                	ó´   € V P                   ;'       g    V P                  4       ;'       g    R pV P                  P                  WP	                  4       4       R# )rÅ   N)r]  rp  r2  Úwritestrru  )r`   r]  s   & rL   rN  Ú_BytesZipFile.write_to_bufferZ  s>   € à×(Ñ(×JÐJ¨D×,?Ñ,?Ó,A×JÐJÀUˆØ�‰×Ñ˜\¯=©=«?Ö;rK   )r]  r2  rd   )	rA   rB   rC   rD   r`  rp  rN  rJ   rY  rZ  s   @rL   r1  r1  8  s   ø† ÷
ò 
õ*
÷<ó <rK   r1  c                  óR   € ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltRt	R# )r?  i`  c               ó    € V ^8„  d   QhRRRR/# )rT   r2  r   rU   rV   r@   )rW   s   "rL   rX   Ú_IOWrapper.__annotate__g  s   € ÷ ñ ˜zð ¨dñ rK   c                	ó   € Wn         R # rd   ©r2  )r`   r2  s   &&rL   r`  Ú_IOWrapper.__init__g  s   € ØŽrK   c               ó    € V ^8„  d   QhRRRR/# )rT   r!  r7   rU   r   r@   )rW   s   "rL   rX   r‹  j  ó   € ÷ *ñ * ð *¨ñ *rK   c                	ó.   € \        V P                  V4      # rd   ©Úgetattrr2  )r`   r!  s   &&rL   Ú__getattr__Ú_IOWrapper.__getattr__j  ó   € Ü�t—{‘{ DÓ)Ð)rK   c               ó   € V ^8„  d   QhRR/# ©rT   rU   r;   r@   )rW   s   "rL   rX   r‹  m  ó   € ÷ ñ ˜$ñ rK   c                	ór   € \        V P                  R 4      '       d   V P                  P                  4       # R# )r'  T)rÉ   r2  r'  re   s   &rL   r'  Ú_IOWrapper.readablem  ó)   € Ü�4—;‘; 
×+Ò+Ø—;‘;×'Ñ'Ó)Ð)ÙrK   c               ó   € V ^8„  d   QhRR/# r˜  r@   )rW   s   "rL   rX   r‹  r  r™  rK   c                	ór   € \        V P                  R 4      '       d   V P                  P                  4       # R# )r)  T)rÉ   r2  r)  re   s   &rL   r)  Ú_IOWrapper.seekabler  rœ  rK   c               ó   € V ^8„  d   QhRR/# r˜  r@   )rW   s   "rL   rX   r‹  w  r™  rK   c                	ór   € \        V P                  R 4      '       d   V P                  P                  4       # R# )r(  T)rÉ   r2  r(  re   s   &rL   r(  Ú_IOWrapper.writablew  rœ  rK   r�  N)
rA   rB   rC   rD   r`  r”  r'  r)  r(  rJ   r@   rK   rL   r?  r?  `  s    † õõ*õõ
÷
ñ rK   r?  c                  óB   € ] tR tRtR
R R lltR R ltRR R lltRtR	# )r>  i}  c               ó$   € V ^8„  d   QhRRRRRR/# )rT   r2  zStringIO | TextIOBaser8   r7   rU   rV   r@   )rW   s   "rL   rX   Ú_BytesIOWrapper.__annotate__€  s#   € ÷ ñ Ð4ð Àð ÐRVñ rK   c                	ó,   € Wn         W n        R V n        R# )rK   N©r2  r8   Úoverflow)r`   r2  r8   s   &&&rL   r`  Ú_BytesIOWrapper.__init__€  s   € ØŒØ Œð
 ˆŽrK   c               ó    € V ^8„  d   QhRRRR/# )rT   Úattrr7   rU   r   r@   )rW   s   "rL   rX   r¥  ‰  r�  rK   c                	ó.   € \        V P                  V4      # rd   r’  )r`   r«  s   &&rL   r”  Ú_BytesIOWrapper.__getattr__‰  r–  rK   c               ó    € V ^8„  d   QhRRRR/# )rT   Únz
int | NonerU   r×   r@   )rW   s   "rL   rX   r¥  Œ  s   € ÷ ñ �jð ¨%ñ rK   c                	ó  € V P                   f   Q hV P                   P                  V4      P                  V P                  4      pV P                  V,           pVe   V^ 8  g   V\        V4      8¼  d
   RV n        V# VR V pW1R  V n        V# )NrK   )r2  rÂ   Úencoder8   r¨  r5  )r`   r¯  Ú
bytestringÚcombined_bytestringÚ	to_returns   &&   rL   rÂ   Ú_BytesIOWrapper.readŒ  s‡   € Ø�{‰{Ò&Ð&Ð&Ø—[‘[×%Ñ% aÓ(×/Ñ/°·±Ó>ˆ
à"Ÿm™m¨jÕ8ÐØŠ9˜˜Aœ ¤cÐ*=Ó&>Ô!>ØˆDŒMØ&Ð&à+¨B¨QÐ/ˆIØ/°Ð3ˆDŒMØÐrK   r§  N)r  )éÿÿÿÿ)rA   rB   rC   rD   r`  r”  rÂ   rJ   r@   rK   rL   r>  r>  }  s   † ÷õ*÷ó rK   r>  c               ó$   € V ^8„  d   QhRRRRRR/# )rT   rO   r5   r  r;   rU   z/tuple[str | BaseBuffer, bool, list[BaseBuffer]]r@   )rW   s   "rL   rX   rX   š  s$   € ÷ !*ñ !*Øð!*Ø*.ð!*à4ñ!*rK   c                ó  € . pT\        V R4      ;'       g    \        V \        4      ,          pV'       g   WV3# \        \        V 4      p \        V \        4      '       d   \        V R4      p VP                  V 4        \        \        P                  ! V P                  4       ^ \        P                  R7      4      p\        V4       F  p V P                  4        K  	  W1V.3#   \        T4       F  p T P                  4        K  	  i ; i)zTry to memory map file/buffer.Úfilenor&  )Úaccess)rÉ   r[   r7   r   r    rÕ   r3  r?  rØ   r¹  ÚACCESS_READÚreversedr_   )rO   r  rC  Úwrappeds   &&  rL   r.  r.  š  sã   € ð !#€GØ”'˜& (Ó+×FÐF¬z¸&Ä#Ó/FÕF€JßØ 7Ð*Ð*ô ”- Ó(€Fô �&œ#×ÒÜ�f˜dÓ#ˆØ�‰�vÔðô Ü�IŠIØ—‘“ØÜ×'Ñ'ôó
ˆô ˜wÖ'ˆFà�L‰LŽNñ (ð   	Ð)Ð)øô	 ˜wÖ'ˆFà�L‰LŽNò (ús   Á>>C# Ã#$Dc               ó    € V ^8„  d   QhRRRR/# )rT   r6   r©   rU   r;   r@   )rW   s   "rL   rX   rX   ¾  s   € ÷ ñ Ð$9ð ¸dñ rK   c                óÀ   € Rp\        V 4      p \        V \        4      '       g   V#  \        P                  P                  V 4      pV#   \        \        3 d     T# i ; i)zTest whether file exists.F)r™   r[   r7   r�   r‚   Úexistsr“   r�   )r6   rÀ  s   & rL   Úfile_existsrÁ  ¾  sc   € à€FÜ'Ð(:Ó;ÐÜÐ(¬#×.Ò.ØˆðÜ—‘—‘Ð 2Ó3ˆð €Møô ”zÐ"ô ØØ€Mðús   §A ÁAÁAc               ó$   € V ^8„  d   QhRRRRRR/# )rT   rO   r©   r9   r7   rU   r;   r@   )rW   s   "rL   rX   rX   Ì  s"   € ÷ ñ Ð1ð ¸ð Àñ rK   c                ó  € RV9   g   RV9   d   RV9   # \         P                  \         P                  \         P                  3p\	        \        V 4      V4      '       d   R# \        V \        4       4      ;'       g    R\        V RV4      9   # )z+Whether the handle is opened in binary moderº   rµ   Fr9   )	r+  ÚStreamWriterÚStreamReaderÚStreamReaderWriterÚ
issubclassrÙ   r[   Ú_get_binary_io_classesr“  )rO   r9   Útext_classess   && rL   r*  r*  Ì  sˆ   € ð ˆd„{�c˜T”kØ�d‰{Ðô
 	×ÑÜ×ÑÜ×!Ñ!ð	€Lô ”$�v“, ×-Ò-Ùä�fÔ4Ó6Ó7÷ ð ¸3Ä'Ø�˜óCñ <ð rK   c               ó   € V ^8„  d   QhRR/# )rT   rU   ztuple[type, ...]r@   )rW   s   "rL   rX   rX   â  s   € ÷ ñ Ð 0ñ rK   c                 óò   € \         \        3p \        RRR7      pVeF   VP                  4       P	                  R4      ;_uu_ 4       pV \        V4      3,          p RRR4       V # V #   + '       g   i     T # ; i)z!IO classes that that expect bytesr"  Úignore)r  NrK   )r	   r   r!   r<  Ústream_readerrÙ   )Úbinary_classesrñ   rß   s      rL   rÈ  rÈ  á  sq   € ô )7¼	Ð'B€Nô & k¸(ÔC€DØÒØ×"Ñ"Ó$×2Ñ2°3×7Ô7¸6Øœt F›|˜oÕ-ˆN÷ 8ð Ðˆ>Ð÷ 8Ö7ð Ðús   ÁA%Á%A6	c               ó$   € V ^8„  d   QhRRRRRR/# )rT   ÚcolumnszSequence[Hashable] | MultiIndexÚ	index_colzbool | Sequence[int] | NonerU   r;   r@   )rW   s   "rL   rX   rX   ó  s&   € ÷ ñ Ø,ðà*ðð 
ñrK   c                óZ  a€ Ve   \        V\        4      '       d   \        4       oM\        V4      o\        \        V 4      ;'       d`    \        V \        4      '       * ;'       dC    \
        ;QJ d'    V3R lV  4       F  '       d   K   R4      # 	  R4      # ! V3R lV  4       4      4      # )au  
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
c              3  óT   <"  € T F  qS9  g   K  \        V\        4      x € K  	  R # 5ird   )r[   rÖ   )rŠ   ÚcÚindex_columnss   & €rL   rŒ   Ú+is_potential_multi_index.<locals>.<genexpr>  s#   øé € ÐP©g¨À-Ñ9OÔ$”
˜1œe×$Ð$«gùs   ƒ(�(FT)r[   r;   Úsetr5  r'   r�   )rÐ  rÑ  rÕ  s   &&@rL   Úis_potential_multi_indexrØ  ó  sš   ø€ ð& ÒœJ y´$×7Ò7Ü›‰ä˜I›ˆäÜˆG‹÷ 	Qð 	QÜ˜7¤MÓ2Ô2÷	Qð 	Qç‹CÔP©gÓP�CŒCóð ò óð ð ÔP©gÓPÓPóð rK   c               ó$   € V ^8„  d   QhRRRRRR/# )rT   ÚnameszSequence[Hashable]Úis_potential_multiindexr;   rU   r@   )rW   s   "rL   rX   rX     s$   € ÷ "ñ "Øð"Ø8<ð"àñ"rK   c                óD  € \        V 4      p \        \        4      p\        V 4       Fv  w  r4W$,          pV^ 8”  dT   V^,           W$&   V'       d0   \	        V\
        4      '       g   Q h. VRR OVR,           RV 2N5pMV RV 2pW$,          pKZ  W@V&   V^,           W$&   Kx  	  V # )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']
NÚ.r¶  )rI   r   rŽ   Ú	enumerater[   rÖ   )rÚ  rÛ  Úcountsr‹   ÚcolÚ	cur_counts   &&    rL   Údedup_namesrâ    s«   € ô �‹K€EÜ)4´SÓ)9€Fä˜EÖ"‰ˆØ•Kˆ	à˜!ŒmØ# a�-ˆF‰Kç&ä! #¤u×-Ò-Ð-Ð-Ø;˜˜C˜R˜Ð; S¨¥W I¨Q¨y¨kÐ":Ñ;‘à˜˜Q˜y˜kÐ*�Ø�ŠIàˆa‰Ø !•mˆ‹ñ #ð" €LrK   ).)F)r  Nr  Nrd   )mrE   Ú
__future__r   Úabcr   r   r+  Úcollectionsr   Úcollections.abcr   r   r   rG   Ú	functoolsr¼   Úior	   r
   r   r   r   r   rØ   r�   Úpathlibr   Úrera  Útypingr   r   r   r   r   r   r   r   r   r   Úurllib.parser   r   rs   r   r   r   rÊ   r~  Úpandas._typingr   r    Úpandas.compat._optionalr!   Úpandas.util._exceptionsr"   Úpandas.core.dtypes.commonr#   r$   r%   r&   Úpandas.core.dtypes.genericr'   r×  ru   ÚdiscardÚcompiler«   r)   Útypesr+   r,   r-   r.   r/   r0   r1   Úpandasr2   Ú	dataclassr4   rN   rw   r{   r”   r™   r¦   r®   rä   rè   rþ   Úvaluesr  rÇ   rÈ   r  r  rJ  r7  r1  r?  r>  r.  rÁ  r*  Ú	lru_cacherÈ  rØ  râ  r@   rK   rL   Ú<module>rù     s–  ðÙ å "÷ó Ý #÷ñ ó
 Û Û ÷÷ ó Û 	Ý Û 	Û ÷÷ ÷ ÷õ ó Û ÷õ ?Ý 4÷ó õ 5á�- +Õ-°Õ;Ó<€Ø × Ñ �BÔ Ø—j’jÐ!WÓXÐ á�m¨:Ô6€÷ Ý#÷÷ õ "ð ×Ñ÷
Gð 
Gó ð
Gð ×Ñô.�˜•ó .ó ð.õb0ð$ 
Ü 5ó 
Ø 5ð 
Ü Eó 
Ø Eõõ&Cð: 
öó 
ðð
 
öó 
ð÷
,õD3õ	÷Oõd0ð& ˆEØˆuØ�ØˆuØ	ˆ6Ø
ˆEØ
ˆEØ	ˆ4Ø
ˆFð
Ð ñ Ð6×=Ñ=Ó?Ó@Ð õ 0õFDõNVð 
ð
ð ð	
ð
 '*ð
ð ð
ð ð
ð '*ö
ó 
ð
ð 
ð
ð ð	
ð
 '*ð
ð ð
ð !ð
ð ð
ð '*ö
ó 
ð
ð 
ð
,ð ð	
,ð
 '*ð
,ð ð
,ð ð
,ð ð
,ð '*ö
,ó 
ð
,ðfð  ð	fð
 .2ðfð ðfð ðfð ðfð .2÷fôR	�g˜sô ô26+�Oô 6+ôr%<�Oô %<÷Pñ ÷:ñ õ:!*õHõð* ×Ñôó ð÷"÷>"rK   