§
    g˜ºh¯!  ã                   ó
  — 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 G d„ d	e¦  «        Z ed
g d¢¦  «         G d„ dej        ¦  «        ¦   «         Z G d„ de¦  «        ZdS )é    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           $ rK}|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       €úd/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/fsspec/implementations/arrow.pyÚwrapperz wrap_exceptions.<locals>.wrapper   sˆ   ø€ ð
	Ø�4˜Ð( Ð(Ð(Ð(øÝð 	ð 	ð 	Ø”>ð Øà&œ^ˆNˆG�dÝ˜'¥3Ñ'Ô'ð Ð,<ÀÐ,GÐ,GÝ'­¬°gÑ>Ô>ÀIÐMàøøøøð	øøøs   ƒ ‹
A •AAÁA )r   )r   r   s   ` r   Úwrap_exceptionsr      s3   ø€ Ý
ˆ4�[„[ðð ð ð ñ „[ðð €Nó    c                   óf  ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Ze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                 óf   •— t          d¦  «        a|| _         t          ¦   «         j        di |¤Ž d S )NÚpyarrow© )r   ÚPYARROW_VERSIONÚfsÚsuperÚ__init__)Úselfr$   r   Ú	__class__s      €r   r&   zArrowFSWrapper.__init__3   s:   ø€ å<¸YÑGÔGˆØˆŒØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r   c                 ó   — | j         j        S ©N)r$   Ú	type_name©r'   s    r   ÚprotocolzArrowFSWrapper.protocol9   s   € àŒwÔ Ð r   c                 óP   — dt          | j        j        | j        j        ¦  «        z   S )NÚhdfs_)r   r$   ÚhostÚportr,   s    r   ÚfsidzArrowFSWrapper.fsid=   s   € à� $¤'¤,°´´Ñ=Ô=Ñ=Ð=r   c                 ór   — t          |¦  «        }|d         }|                     d¦  «        r
|dd …         }|S )NÚpathz//é   )r	   Ú
startswith)Úclsr4   Úopss      r   Ú_strip_protocolzArrowFSWrapper._strip_protocolA   s>   € å# DÑ)Ô)ˆØ�6Œ{ˆØ�?Š?˜4Ñ Ô ð 	à˜˜˜”8ˆDØˆr   Fc                 ó¸   ‡ — ‰                       |¦  «        }ddlm} ˆ fd„‰ j                              ||¦  «        ¦  «        D ¦   «         }|r|S d„ |D ¦   «         S )Nr   )ÚFileSelectorc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r"   )Ú_make_entry)Ú.0Úentryr'   s     €r   ú
<listcomp>z%ArrowFSWrapper.ls.<locals>.<listcomp>N   s7   ø€ ð 
ð 
ð 
àð ×Ò˜UÑ#Ô#ð
ð 
ð 
r   c                 ó   — g | ]
}|d          ‘ŒS )Únamer"   )r>   r?   s     r   r@   z%ArrowFSWrapper.ls.<locals>.<listcomp>U   s   € Ð7Ð7Ð7 e�E˜&”MÐ7Ð7Ð7r   )r9   Ú
pyarrow.fsr;   r$   Úget_file_info)r'   r4   Údetailr   r;   Úentriess   `     r   ÚlszArrowFSWrapper.lsJ   s�   ø€ Ø×#Ò# DÑ)Ô)ˆØ+Ð+Ð+Ð+Ð+Ð+ð
ð 
ð 
ð 
àœ×.Ò.¨|¨|¸DÑ/AÔ/AÑBÔBð
ñ 
ô 
ˆð ð 	8ØˆNà7Ð7¨wÐ7Ñ7Ô7Ð7r   c                 ó�   — |                       |¦  «        }| j                             |g¦  «        \  }|                      |¦  «        S r*   )r9   r$   rD   r=   )r'   r4   r   Úinfos       r   rI   zArrowFSWrapper.infoW   sB   € Ø×#Ò# DÑ)Ô)ˆØ”×&Ò&¨ vÑ.Ô.‰ˆØ×Ò Ñ%Ô%Ð%r   c                 ó~   — |                       |¦  «        }	 |                      |¦  «         dS # t          $ r Y dS w xY w)NTF)r9   rI   r   ©r'   r4   s     r   ÚexistszArrowFSWrapper.exists\   sT   € Ø×#Ò# DÑ)Ô)ˆð	Ø�IŠI�d‰OŒOˆOð �4øõ !ð 	ð 	ð 	Ø�5�5ð	øøøs   —. ®
<»<c                 ó  — ddl m} |j        |j        u rd}n]|j        |j        u rd}nL|j        |j        u r<t          t          j        t          j
        t          j        ¦  «        |j        ¦  «        ‚d}|j        |j        ||j        dœS )Nr   )ÚFileTypeÚ	directoryÚfileÚother)rB   ÚsizeÚtypeÚmtime)rC   rN   rS   Ú	DirectoryÚFileÚNotFoundr   r   r   ÚosÚstrerrorr4   rR   rT   )r'   rI   rN   Úkinds       r   r=   zArrowFSWrapper._make_entrye   s›   € Ø'Ð'Ð'Ð'Ð'Ð'àŒ9˜Ô*Ð*Ð*ØˆDˆDØŒY˜(œ-Ð'Ð'ØˆDˆDØŒY˜(Ô+Ð+Ð+Ý#¥E¤Lµ"´+½e¼lÑ2KÔ2KÈTÌYÑWÔWÐWàˆDð ”IØ”IØØ”Zð	
ð 
ð 	
r   c                 ó¢  — |                       |¦  «                             d¦  «        }|                       |¦  «                             d¦  «        }|                      |d¦  «        5 }|› dt          j        d¦  «        › �}	 |                      |d¦  «        5 }t          j        ||¦  «         d d d ¦  «         n# 1 swxY w Y   | j         	                    ||¦  «         nU# t          $ rH t          t          ¦  «        5  | j                             |¦  «         d d d ¦  «         n# 1 swxY w Y   ‚ w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Úrbz.tmp.é   Úwb)r9   Ú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_filex   s  € à×$Ò$ UÑ+Ô+×2Ò2°3Ñ7Ô7ˆØ×$Ò$ UÑ+Ô+×2Ò2°3Ñ7Ô7ˆà�ZŠZ˜˜tÑ$Ô$ð 		¨Ø Ð=Ð=¥wÔ'8¸Ñ';Ô';Ð=Ð=ˆIðØ—Y’Y˜y¨$Ñ/Ô/ð 9°7ÝÔ& w°Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9à”—’˜Y¨Ñ.Ô.Ð.Ð.øÝ ð ð ð ÝÕ/Ñ0Ô0ð 3ð 3Ø”G×'Ò'¨	Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3àðøøøð /ð		ð 		ð 		ñ 		ô 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		øøøð 		ð 		ð 		ð 		ð 		ð 		sr   Á'EÂC!ÂB:Â.C!Â:B>	Â>C!ÃB>	ÃC!Ã EÃ!D3Ã?D&ÄD3Ä&D*Ä*D3Ä-D*Ä.D3Ä3EÅEÅEc                 óÜ   — |                       |¦  «                             d¦  «        }|                       |¦  «                             d¦  «        }| j                             ||¦  «         d S )Nr   )r9   r_   r$   rf   )r'   ri   rj   r   s       r   ÚmvzArrowFSWrapper.mvˆ   s`   € à×$Ò$ UÑ+Ô+×2Ò2°3Ñ7Ô7ˆØ×$Ò$ UÑ+Ô+×2Ò2°3Ñ7Ô7ˆØŒ�Š�U˜EÑ"Ô"Ð"Ð"Ð"r   c                 ód   — |                       |¦  «        }| j                             |¦  «         d S r*   )r9   r$   rh   rK   s     r   Úrm_filezArrowFSWrapper.rm_fileŽ   s1   € à×#Ò# DÑ)Ô)ˆØŒ×Ò˜DÑ!Ô!Ð!Ð!Ð!r   Nc                 ó  — |                       |¦  «                             d¦  «        }|                      |¦  «        r-|r| j                             |¦  «         d S t          d¦  «        ‚| j                             |¦  «         d S )Nr   z0Can't delete directories without recursive=False)r9   r_   Úisdirr$   Ú
delete_dirÚ
ValueErrorrh   )r'   r4   Ú	recursiveÚmaxdepths       r   ÚrmzArrowFSWrapper.rm“   s‡   € à×#Ò# DÑ)Ô)×0Ò0°Ñ5Ô5ˆØ�:Š:�dÑÔð 	&Øð UØ”×"Ò" 4Ñ(Ô(Ð(Ð(Ð(å Ð!SÑTÔTÐTàŒG×Ò Ñ%Ô%Ð%Ð%Ð%r   r\   Tc                 ój  — |dk    r|r| j         j        }nE| j         j        }n8|dk    r| j         j        }n%|dk    r| j         j        }nt          d|›�¦  «        ‚i }|dk    s|s6t          t                               d¦  «        d         ¦  «        dk    rd |d<    ||fi |¤Ž}t          | ||||fi |¤ŽS )	Nr\   r^   Úabz'unsupported mode for Arrow filesystem: ú.r   é   Úcompression)
r$   Úopen_input_fileÚopen_input_streamÚopen_output_streamÚopen_append_streamrv   Úintr#   ÚsplitÚ	ArrowFile)	r'   r4   ÚmodeÚ
block_sizeÚseekabler   ÚmethodÚ_kwargsÚstreams	            r   r`   zArrowFSWrapper._openž   sã   € à�4Š<ˆ<Øð 3ØœÔ0��àœÔ2��Ø�TŠ\ˆ\Ø”WÔ/ˆFˆFØ�TŠ\ˆ\Ø”WÔ/ˆFˆFåÐOÀtÐOÐOÑPÔPÐPàˆØ�4Š<ˆ<˜xˆ<Ý•?×(Ò(¨Ñ-Ô-¨aÔ0Ñ1Ô1°QÒ6Ð6à)-�˜Ñ&Ø�˜Ð(Ð( Ð(Ð(ˆå˜˜v t¨T°:ÐHÐHÀÐHÐHÐHr   c                 óž   — |                       |¦  «        }|r|                      |d¬¦  «         d S | j                             |d¬¦  «         d S )NT)Úexist_okF©rw   )r9   Úmakedirsr$   Ú
create_dir)r'   r4   Úcreate_parentsr   s       r   ÚmkdirzArrowFSWrapper.mkdirµ   sZ   € à×#Ò# DÑ)Ô)ˆØð 	6Ø�MŠM˜$¨ˆMÑ.Ô.Ð.Ð.Ð.àŒG×Ò˜t¨uÐÑ5Ô5Ð5Ð5Ð5r   c                 óh   — |                       |¦  «        }| j                             |d¬¦  «         d S )NTrŽ   )r9   r$   r�   )r'   r4   r�   s      r   r�   zArrowFSWrapper.makedirs½   s6   € à×#Ò# DÑ)Ô)ˆØŒ×Ò˜4¨4ÐÑ0Ô0Ð0Ð0Ð0r   c                 ód   — |                       |¦  «        }| j                             |¦  «         d S r*   )r9   r$   ru   rK   s     r   ÚrmdirzArrowFSWrapper.rmdirÂ   s1   € à×#Ò# DÑ)Ô)ˆØŒ×Ò˜4Ñ Ô Ð Ð Ð r   c                 ój   — |                       |¦  «        }| j                             |¦  «        j        S r*   )r9   r$   rD   rT   rK   s     r   ÚmodifiedzArrowFSWrapper.modifiedÇ   s.   € à×#Ò# DÑ)Ô)ˆØŒw×$Ò$ TÑ*Ô*Ô0Ð0r   c                 óL   •— |dv|d<    t          ¦   «         j        |fd d dœ|¤ŽS )N)Nr   rˆ   )ÚstartÚend)r%   Úcat_file)r'   r4   r™   rš   r   r(   s        €r   r›   zArrowFSWrapper.cat_fileÌ   s8   ø€ Ø"¨)Ð3ˆˆzÑØ�u‰wŒwÔ ÐE¨D°dÐEÐE¸fÐEÐEÐEr   c                 óH   •— d|d<    t          ¦   «         j        ||fi |¤Ž d S )NFrˆ   )r%   Úget_file)r'   ÚrpathÚlpathr   r(   s       €r   r�   zArrowFSWrapper.get_fileÐ   s4   ø€ Ø"ˆˆzÑØ�‰ŒÔ˜ Ð0Ð0¨Ð0Ð0Ð0Ð0Ð0r   )F)FN)r\   NT)T)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úroot_markerr&   Úpropertyr-   r   r2   Úclassmethodr9   rG   rI   rL   r=   r   rn   rp   rr   ry   r`   r’   r�   r•   r—   r›   r�   Ú__classcell__©r(   s   @r   r   r   (   s#  ø€ € € € € ðð ð €Kð#ð #ð #ð #ð #ð ð!ð !ñ „Xð!ð ð>ð >ñ „_ð>ð ðð ñ „[ðð8ð 8ð 8ð 8ð&ð &ð &ð
ð ð ð
ð 
ð 
ð& ðð ñ „_ðð ð#ð #ñ „_ð#ð
 ð"ð "ñ „_ð"ð ð&ð &ð &ñ „_ð&ð ðIð Ið Iñ „_ðIð, ð6ð 6ð 6ñ „_ð6ð ð1ð 1ð 1ñ „_ð1ð ð!ð !ñ „_ð!ð ð1ð 1ñ „_ð1ðFð Fð Fð Fð Fð Fð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1r   r   r‹   )	ÚreadÚseekÚtellÚwriteÚreadableÚwritableÚcloserR   rˆ   c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )r…   Nc                 óh   — || _         || _        || _        || _        |x| _        | _        || _        d S r*   )r4   r†   r$   r‹   Ú	blocksizer‡   r   )r'   r$   r‹   r4   r†   r‡   r   s          r   r&   zArrowFile.__init__ä   s7   € ØˆŒ	ØˆŒ	àˆŒØˆŒà+5Ð5ˆŒ˜œØˆŒˆˆr   c                 ó   — | S r*   r"   r,   s    r   Ú	__enter__zArrowFile.__enter__î   s   € Øˆr   c                 ó*   — |                       ¦   «         S r*   )r¯   )r'   r   s     r   Ú__exit__zArrowFile.__exit__ñ   s   € Ø�zŠz‰|Œ|Ðr   r*   )r    r¡   r¢   r&   r´   r¶   r"   r   r   r…   r…   Õ   sF   € € € € € ðð ð ð ðð ð ðð ð ð ð r   r…   c                   óJ   ‡ — 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ÚhdfsÚdefaultr   Né   c                 ól   •— ddl m}  |||||||¬¦  «        }	 t          ¦   «         j        dd|	i|¤Ž dS )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¸   )r0   r1   ÚuserÚkerb_ticketÚreplicationÚ
extra_confr$   Nr"   )rC   r¸   r%   r&   )r'   r0   r1   r½   r¾   r¿   rÀ   r   r¸   r$   r(   s             €r   r&   zHadoopFileSystem.__init__û   sj   ø€ ð6 	0Ð/Ð/Ð/Ð/Ð/àÐØØØØ#Ø#Ø!ð
ñ 
ô 
ˆð 	�‰ŒÔÐ)Ð)˜BÐ) &Ð)Ð)Ð)Ð)Ð)r   c                 ó¬  — t          | ¦  «        }i }|                     dd ¦  «        r|d         |d<   |                     dd ¦  «        r|d         |d<   |                     dd ¦  «        r|d         |d<   |                     dd ¦  «        rIt          |d         ¦  «        }|                     dd ¦  «        rt          |d         d         ¦  «        |d<   |S )Nr0   Úusernamer½   r1   Ú	url_queryr¿   r   )r	   Úgetr   rƒ   )r4   r8   Ú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�; Ñ%Ô%ð 	DÝ˜s ;Ô/Ñ0Ô0ˆGØ�{Š{˜=¨$Ñ/Ô/ð DÝ%(¨°Ô)?ÀÔ)BÑ%CÔ%C��MÑ"Øˆ
r   )rº   r   NNr»   N)	r    r¡   r¢   r£   r-   r&   ÚstaticmethodrÇ   r§   r¨   s   @r   r¸   r¸   õ   s~   ø€ € € € € ð-ð -ð €Hð ØØØØØð%*ð %*ð %*ð %*ð %*ð %*ðN ðð ñ „\ðð ð ð ð r   r¸   )r   ÚiorX   ra   rd   Ú
contextlibr   Ú	functoolsr   r   Úurllib.parser   Úfsspec.specr   Úfsspec.utilsr   r	   r
   r   r   r#   r   ÚIOBaser…   r¸   r"   r   r   ú<module>rÐ      s“  ðØ €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø !Ð !Ð !Ð !Ð !Ð !à *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð$ €ðj1ð j1ð j1ð j1ð j1Ð'ñ j1ô j1ð j1ðZ €Øð
ð 
ð 
ñô ðð ð ð ð �”	ñ ô ñô ðð$;ð ;ð ;ð ;ð ;�~ñ ;ô ;ð ;ð ;ð ;r   