Ë
    ãš¾j€$  ã                   óü   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZ d„ Zdadd	hZ G d
„ de«      Z edg d¢«       G d„ dej.                  «      «       Z G d„ de«      Zy)é    N)Úsuppress)Úcached_propertyÚwraps)Úparse_qs)ÚAbstractFileSystem)Ú"get_package_version_without_importÚinfer_storage_optionsÚmirror_fromÚtokenizec                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                  óÎ   •— 	  ‰| i |¤ŽS # t         $ rP}|j                  s‚ |j                  ^}} t        |t        «      rd|v rt	        t
        j                  |«      |‚‚ d }~ww xY w)Nzdoes not exist)ÚOSErrorÚargsÚ
isinstanceÚstrÚFileNotFoundErrorÚerrnoÚENOENT)r   ÚkwargsÚ	exceptionÚmessageÚfuncs       €úf/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/fsspec/implementations/arrow.pyÚwrapperz wrap_exceptions.<locals>.wrapper   sg   ø€ ð
	Ù˜Ð( Ñ(Ð(øÜò 	Ø—>’>Øà&Ÿ^™^ˆNˆG�dÜ˜'¤3Ô'Ð,<ÀÑ,GÜ'¬¯©°gÓ>ÀIÐMàûð	ús   ƒ ‹	A$”AAÁA$)r   )r   r   s   ` r   Úwrap_exceptionsr      s    ø€ Ü
ˆ4ƒ[óó ðð €Nó    ÚgcsÚs3c                   ó(  ‡ — e Zd ZdZdZˆ fd„Zed„ «       Zed„ «       Z	ˆ fd„Z
ed„ «       Zdd„Zd	„ Zd
„ Zd„ Zed„ «       Zed„ «       Zed„ «       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zed„ «       Zed„ «       Zdˆ fd„	Zˆ fd„Zˆ xZS )ÚArrowFSWrapperzwFSSpec-compatible wrapper of pyarrow.fs.FileSystem.

    Parameters
    ----------
    fs : pyarrow.fs.FileSystem

    ú/c                 óz   •— t        d«      a|| _        |j                  t        v rd| _        t        ‰| �  di |¤Ž y )NÚpyarrowÚ © )r   ÚPYARROW_VERSIONÚfsÚ	type_nameÚ_EMPTY_ROOT_MARKER_FILESYSTEMSÚroot_markerÚsuperÚ__init__)Úselfr'   r   Ú	__class__s      €r   r,   zArrowFSWrapper.__init__4   s9   ø€ ä<¸YÓGˆØˆŒØ�<‰<Ô9Ñ9Ø!ˆDÔÜ‰ÑÑ"˜6Ó"r   c                 ó.   — | j                   j                  S ©N)r'   r(   ©r-   s    r   ÚprotocolzArrowFSWrapper.protocol<   s   € à�w‰w× Ñ Ð r   c                 óp   — dt        | j                  j                  | j                  j                  «      z   S )NÚhdfs_)r   r'   ÚhostÚportr1   s    r   ÚfsidzArrowFSWrapper.fsid@   s$   € àœ $§'¡'§,¡,°·±·±Ó=Ñ=Ð=r   c                 ó°   •— | j                   rt        ‰| �	  |«      S | j                  |«      j	                  d«      }d|v r|j                  dd«      d   S dS )Nr!   é   r   r$   )r*   r+   Ú_parentÚ_strip_protocolÚlstripÚrsplit)r-   Úpathr.   s     €r   r:   zArrowFSWrapper._parentD   sW   ø€ Ø×ÒÜ‘7‘? 4Ó(Ð(à×#Ñ# DÓ)×0Ñ0°Ó5ˆØ),°©ˆt�{‰{˜3 Ó" 1Ñ%Ð<¸"Ð<r   c                 óR   — t        |«      }|d   }|j                  d«      r|dd  }|S )Nr>   z//r9   )r	   Ú
startswith)Úclsr>   Úopss      r   r;   zArrowFSWrapper._strip_protocolK   s1   € ä# DÓ)ˆØ�6‰{ˆØ�?‰?˜4Ô à˜˜�8ˆDØˆr   c                 ó@  — | j                  |«      }ddlm} 	 | j                  j	                   ||«      «      D �cg c]  }| j                  |«      ‘Œ }}|r|S |D �cg c]  }|d   ‘Œ	 c}S c c}w # t        t        f$ r  | j                  |fi |¤Žg}Y ŒAw xY wc c}w )Nr   )ÚFileSelectorÚname)	r;   Ú
pyarrow.fsrD   r'   Úget_file_infoÚ_make_entryr   ÚNotADirectoryErrorÚinfo)r-   r>   Údetailr   rD   ÚentryÚentriess          r   ÚlszArrowFSWrapper.lsT   s¯   € Ø×#Ñ# DÓ)ˆÝ+ð	2ð "ŸW™W×2Ñ2±<ÀÓ3EÓFöàð × Ñ  Õ'ðˆGð ñ ØˆNà/6Ö7 e�E˜&“MÒ7Ð7ùòøô "Ô#5Ð6ò 	2Ø �t—y‘y Ñ0¨Ñ0Ð1ŠGð	2üò
 8s(   ™#A2 ¼A-ÁA2 ÁBÁ-A2 Á2#BÂBc                 ó‚   — | j                  |«      }| j                  j                  |g«      \  }| j                  |«      S r0   )r;   r'   rG   rH   )r-   r>   r   rJ   s       r   rJ   zArrowFSWrapper.infod   s;   € Ø×#Ñ# DÓ)ˆØ—‘×&Ñ&¨ vÓ.‰ˆØ×Ñ Ó%Ð%r   c                 óh   — | j                  |«      }	 | j                  |«       y# t        $ r Y yw xY w)NTF)r;   rJ   r   ©r-   r>   s     r   ÚexistszArrowFSWrapper.existsi   s;   € Ø×#Ñ# DÓ)ˆð	Ø�I‰I�dŒOð øô !ò 	Ùð	ús   “% ¥	1°1c                 ó„  — ddl m} |j                  |j                  u rd}n{|j                  |j                  u rd}n`|j                  |j
                  u rFt        t        j                  t        j                  t        j                  «      |j                  «      ‚d}|j                  |j                  ||j                  dœS )Nr   )ÚFileTypeÚ	directoryÚfileÚother)rE   ÚsizeÚtypeÚmtime)rF   rT   rY   Ú	DirectoryÚFileÚNotFoundr   r   r   ÚosÚstrerrorr>   rX   rZ   )r-   rJ   rT   Úkinds       r   rH   zArrowFSWrapper._make_entryr   s�   € Ý'à�9‰9˜×*Ñ*Ñ*Ø‰DØ�Y‰Y˜(Ÿ-™-Ñ'Ø‰DØ�Y‰Y˜(×+Ñ+Ñ+Ü#¤E§L¡L´"·+±+¼e¿l¹lÓ2KÈTÏYÉYÓWÐWàˆDð —I‘IØ—I‘IØØ—Z‘Zñ	
ð 	
r   c                 óV  — | j                  |«      j                  d«      }| j                  |«      j                  d«      }| j                  |d«      5 }|› dt        j                  d«      › �}	 | j                  |d«      5 }t        j                  ||«       d d d «       | j                  j                  ||«       	 d d d «       y # 1 sw Y   Œ/xY w# t        $ rA t        t        «      5  | j                  j                  |«       d d d «       ‚ # 1 sw Y   ‚ xY ww xY w# 1 sw Y   y xY w)Nr!   Úrbz.tmp.é   Úwb)r;   ÚrstripÚ_openÚsecretsÚ	token_hexÚopenÚshutilÚcopyfileobjr'   ÚmoveÚBaseExceptionr   r   Údelete_file)r-   Úpath1Úpath2r   ÚlstreamÚ	tmp_fnameÚrstreams          r   Úcp_filezArrowFSWrapper.cp_file…   s  € à×$Ñ$ UÓ+×2Ñ2°3Ó7ˆØ×$Ñ$ UÓ+×2Ñ2°3Ó7ˆà�Z‰Z˜˜tÓ$ð 		¨Ø ˜' ¤w×'8Ñ'8¸Ó';Ð&<Ð=ˆIðØ—Y‘Y˜y¨$Ó/ð 9°7Ü×&Ñ& w°Ô8÷9à—‘—‘˜Y¨Õ.÷		ð 		÷9ð 9ûô !ò ÜÔ/Ó0ñ 3Ø—G‘G×'Ñ'¨	Ô2÷3à÷3àúðú÷		ð 		úsN   ÁDÁ/CÂCÂ$CÃC	ÃCÃDÃ*DÄ	DÄDÄDÄDÄD(c                 ó¼   — | j                  |«      j                  d«      }| j                  |«      j                  d«      }| j                  j                  ||«       y )Nr!   )r;   re   r'   rl   )r-   ro   rp   r   s       r   ÚmvzArrowFSWrapper.mv•   sJ   € à×$Ñ$ UÓ+×2Ñ2°3Ó7ˆØ×$Ñ$ UÓ+×2Ñ2°3Ó7ˆØ�‰�‰�U˜EÕ"r   c                 ó\   — | j                  |«      }| j                  j                  |«       y r0   )r;   r'   rn   rQ   s     r   Úrm_filezArrowFSWrapper.rm_file›   s$   € à×#Ñ# DÓ)ˆØ�‰×Ñ˜DÕ!r   c                 óî   — | j                  |«      j                  d«      }| j                  |«      r)|r| j                  j	                  |«       y t        d«      ‚| j                  j                  |«       y )Nr!   z0Can't delete directories without recursive=False)r;   re   Úisdirr'   Ú
delete_dirÚ
ValueErrorrn   )r-   r>   Ú	recursiveÚmaxdepths       r   ÚrmzArrowFSWrapper.rm    s\   € à×#Ñ# DÓ)×0Ñ0°Ó5ˆØ�:‰:�dÔÙØ—‘×"Ñ" 4Õ(ä Ð!SÓTÐTà�G‰G×Ñ Õ%r   c                 óŽ  — |dk(  r0|r| j                   j                  }n]| j                   j                  }nF|dk(  r| j                   j                  }n*|dk(  r| j                   j                  }nt        d|›�«      ‚i }|dk7  s|s)t        t        j                  d«      d   «      dk\  rd |d<    ||fi |¤Ž}t        | ||||fi |¤ŽS )	Nrb   rd   Úabz'unsupported mode for Arrow filesystem: ú.r   é   Úcompression)
r'   Úopen_input_fileÚopen_input_streamÚopen_output_streamÚopen_append_streamr|   Úintr&   ÚsplitÚ	ArrowFile)	r-   r>   ÚmodeÚ
block_sizeÚseekabler   ÚmethodÚ_kwargsÚstreams	            r   rf   zArrowFSWrapper._open«   sÅ   € à�4Š<ÙØŸ™×0Ñ0‘àŸ™×2Ñ2‘Ø�TŠ\Ø—W‘W×/Ñ/‰FØ�TŠ\Ø—W‘W×/Ñ/‰FäÐFÀtÀhÐOÓPÐPàˆØ�4Š<™xÜ”?×(Ñ(¨Ó-¨aÑ0Ó1°QÒ6à)-�˜Ñ&Ù˜Ñ( Ñ(ˆä˜˜v t¨T°:ÑHÀÑHÐHr   c                 óŒ   — | j                  |«      }|r| j                  |d¬«       y | j                  j                  |d¬«       y )NT)Úexist_okF©r}   )r;   Úmakedirsr'   Ú
create_dir)r-   r>   Úcreate_parentsr   s       r   ÚmkdirzArrowFSWrapper.mkdirÂ   s<   € à×#Ñ# DÓ)ˆÙØ�M‰M˜$¨ˆMÕ.à�G‰G×Ñ˜t¨uÐÕ5r   c                 ó`   — | j                  |«      }| j                  j                  |d¬«       y )NTr”   )r;   r'   r–   )r-   r>   r“   s      r   r•   zArrowFSWrapper.makedirsÊ   s)   € à×#Ñ# DÓ)ˆØ�‰×Ñ˜4¨4ÐÕ0r   c                 ó\   — | j                  |«      }| j                  j                  |«       y r0   )r;   r'   r{   rQ   s     r   ÚrmdirzArrowFSWrapper.rmdirÏ   s$   € à×#Ñ# DÓ)ˆØ�‰×Ñ˜4Õ r   c                 ón   — | j                  |«      }| j                  j                  |«      j                  S r0   )r;   r'   rG   rZ   rQ   s     r   ÚmodifiedzArrowFSWrapper.modifiedÔ   s-   € à×#Ñ# DÓ)ˆØ�w‰w×$Ñ$ TÓ*×0Ñ0Ð0r   c                 óP   •— |j                  d|dv«       t        ‰| �  |||fi |¤ŽS )NrŽ   )Nr   )Ú
setdefaultr+   Úcat_file)r-   r>   ÚstartÚendr   r.   s        €r   r    zArrowFSWrapper.cat_fileÙ   s1   ø€ Ø×Ñ˜* e°9Ð&<Ô=Ü‰wÑ  e¨SÑ;°FÑ;Ð;r   c                 óL   •— |j                  dd«       t        ‰| �  ||fi |¤Ž y )NrŽ   F)rŸ   r+   Úget_file)r-   ÚrpathÚlpathr   r.   s       €r   r¤   zArrowFSWrapper.get_fileÝ   s'   ø€ Ø×Ñ˜* eÔ,Ü‰Ñ˜ Ñ0¨Ó0r   )F)FN)rb   NT)T)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   r,   Úpropertyr2   r   r7   r:   Úclassmethodr;   rN   rJ   rR   rH   r   rt   rv   rx   r   rf   r˜   r•   r›   r�   r    r¤   Ú__classcell__©r.   s   @r   r    r    )   s.  ø„ ñð €Kô#ð ñ!ó ð!ð ñ>ó ð>ô=ð ñó ðó8ò &ò
ò
ð& ñó ðð ñ#ó ð#ð
 ñ"ó ð"ð ò&ó ð&ð òIó ðIð, ò6ó ð6ð ò1ó ð1ð ñ!ó ð!ð ñ1ó ð1õ<÷1ð 1r   r    r‘   )
ÚreadÚreadintoÚseekÚtellÚwriteÚflushÚreadableÚwritableÚcloserŽ   c                   ó@   — e Zd Zdd„Zd„ Zed„ «       Zed„ «       Zd„ Zy)r‹   Nc                 óf   — || _         || _        || _        || _        |x| _        | _        || _        y r0   )r>   rŒ   r'   r‘   Ú	blocksizer�   r   )r-   r'   r‘   r>   rŒ   r�   r   s          r   r,   zArrowFile.__init__ò   s3   € ØˆŒ	ØˆŒ	àˆŒØˆŒà+5Ð5ˆŒ˜œØˆ�r   c                 ó   — | S r0   r%   r1   s    r   Ú	__enter__zArrowFile.__enter__ü   s   € Øˆr   c                 ó.   — | j                   j                  S r0   )r‘   Úclosedr1   s    r   r¾   zArrowFile.closedÿ   s   € à�{‰{×!Ñ!Ð!r   c                 ól   — | j                   j                  «       r| j                   j                  «       S y r0   )r‘   rŽ   rX   r1   s    r   rX   zArrowFile.size  s(   € à�;‰;×ÑÔ!Ø—;‘;×#Ñ#Ó%Ð%Ør   c                 ó"   — | j                  «       S r0   )r·   )r-   r   s     r   Ú__exit__zArrowFile.__exit__	  s   € Ø�z‰z‹|Ðr   r0   )	r§   r¨   r©   r,   r¼   r«   r¾   rX   rÁ   r%   r   r   r‹   r‹   â   s9   „ ó òð ñ"ó ð"ð ñó ðó
r   r‹   c                   óD   ‡ — e Zd ZdZdZ	 	 	 	 	 	 dˆ fd„	Zed„ «       Zˆ xZS )ÚHadoopFileSystemz]A wrapper on top of the pyarrow.fs.HadoopFileSystem
    to connect it's interface with fsspecÚhdfsc                 óP   •— ddl m}  |||||||¬«      }	t        ‰
| �  dd|	i|¤Ž y)a;  

        Parameters
        ----------
        host: str
            Hostname, IP or "default" to try to read from Hadoop config
        port: int
            Port to connect on, or default from Hadoop config if 0
        user: str or None
            If given, connect as this username
        kerb_ticket: str or None
            If given, use this ticket for authentication
        replication: int
            set replication factor of file for write operations. default value is 3.
        extra_conf: None or dict
            Passed on to HadoopFileSystem
        r   )rÃ   )r5   r6   ÚuserÚkerb_ticketÚreplicationÚ
extra_confr'   Nr%   )rF   rÃ   r+   r,   )r-   r5   r6   rÆ   rÇ   rÈ   rÉ   r   rÃ   r'   r.   s             €r   r,   zHadoopFileSystem.__init__  s;   ø€ õ6 	0áØØØØ#Ø#Ø!ô
ˆô 	‰ÑÑ)˜BÐ) &Ó)r   c                 óH  — t        | «      }i }|j                  dd «      r|d   |d<   |j                  dd «      r|d   |d<   |j                  dd «      r|d   |d<   |j                  dd «      r4t        |d   «      }|j                  dd «      rt        |d   d   «      |d<   |S )Nr5   ÚusernamerÆ   r6   Ú	url_queryrÈ   r   )r	   Úgetr   r‰   )r>   rB   ÚoutÚqueriess       r   Ú_get_kwargs_from_urlsz&HadoopFileSystem._get_kwargs_from_urls:  s«   € ä# DÓ)ˆØˆØ�7‰7�6˜4Ô Ø˜f™+ˆC�‰KØ�7‰7�:˜tÔ$Ø˜j™/ˆC�‰KØ�7‰7�6˜4Ô Ø˜f™+ˆC�‰KØ�7‰7�; Ô%Ü˜s ;Ñ/Ó0ˆGØ�{‰{˜=¨$Ô/Ü%(¨°Ñ)?ÀÑ)BÓ%C��MÑ"Øˆ
r   )Údefaultr   NNé   N)	r§   r¨   r©   rª   r2   r,   ÚstaticmethodrÐ   r­   r®   s   @r   rÃ   rÃ     s=   ø„ ñ-ð €Hð ØØØØØõ%*ðN ñó ôr   rÃ   )r   Úior^   rg   rj   Ú
contextlibr   Ú	functoolsr   r   Úurllib.parser   Úfsspec.specr   Úfsspec.utilsr   r	   r
   r   r   r&   r)   r    ÚIOBaser‹   rÃ   r%   r   r   ú<module>rÛ      sˆ   ðÛ Û 	Û 	Û Û Ý ß ,Ý !å *÷ó òð$ €Ø"'¨ Ð ôv1Ð'ô v1ñr Øòóô�—	‘	ó óðô8;�~õ ;r   