Ë

����†£éfÁ'��ã�������������������ó��—�d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlmZmZ�d�dl	m
Z
mZmZm
Z
�d�dlmZ�d�dlmZ��ej$������������������d«������Z�G�d„�de
«������Zd	d
d
efd„Zd„�Zed
k(��rd�dlZ�eej2������������������dd�«�������yy)é����N)ÚEIOÚENOENT)ÚFUSEÚFuseOSErrorÚLoggingMixInÚ
Operations)Ú__version__)Ú	url_to_fsúfsspec.fusec�������������������ób���—�e�Zd�Zdd„Zdd„Zd„�Zd„�Zd„�Zd„�Zd„�Z	dd	„Z
d
„�Zdd„Zd„�Z
d
„�Zd„�Zy)ÚFUSErc�����������������óš���—�||�_���������i�|�_��������|j������������������d«������dz���|�_��������d|�_��������t
��������j
������������������d|«�������||�_��������y�)Nú/r���zStarting FUSE at %s)ÚfsÚcacheÚrstripÚrootÚcounterÚloggerÚinfoÚ_ready_file)Úselfr���ÚpathÚ
ready_files���    úT/var/lib/jenkins/workspace/mettalog/venv/lib/python3.12/site-packages/fsspec/fuse.pyÚ__init__zFUSEr.__init__���sC���€�؈ŒØˆŒ
Ø—K‘K Ó$ sÑ*ˆŒ	؈Œ܏‰Ð)¨4Ô0Ø%ˆÕó����Nc�����������������ó��—�t���������j������������������d|«�������|�j������������������r	|dv�rdddœS�dj������������������|�j������������������|j������������������d«������g«������j
������������������d«������}	�|�j������������������j������������������|«������}|j������������������dd	«������|j������������������d
d	«������dœ}|j������������������dd
«������}|d���dk7��r!t��������j������������������|z��|d<���d|d<���d|d<���n(t��������j������������������|z��|d<���|d���|d<���d|d<���d|d<���d|v�r|d���nt!��������j ������������������«�������|d<���d|v�r|d���nt!��������j ������������������«�������|d<���d|v�r|d���nt!��������j ������������������«�������|d<���|S�#�t��������$�r}t��������t��������«������|‚d�}~ww�xY�w)Nz
getattr %s©z/.fuse_readyz.fuse_readyÚfileé���)ÚtypeÚst_sizeÚ�r���Úuidiè��Úgid)Úst_uidÚst_gidÚmodeiÿ��r"���Úst_moder���r#���Ú
st_blksizeÚsizei��P�é���Úst_nlinkÚatimeÚst_atimeÚctimeÚst_ctimeÚmtimeÚst_mtime)r���Údebugr���Újoinr���Úlstripr���r���r���ÚFileNotFoundErrorr���r���ÚgetÚstatÚS_IFDIRÚS_IFREGÚtime)r���r���Úfhr���ÚexcÚdataÚperms���       r���Úgetattrz
FUSEr.getattr���s|��€�܏‰\ 4Ô(Ø×Ò Ð(GÑ GØ"¨qÑ1Ð1àw‰w˜Ÿ	™	 4§;¡;¨sÓ#3Ð4Ó5×<Ñ<¸SÓAˆð	/Ø—7‘7—<‘< Ó%ˆDð�Ÿ(™( 5¨$Ó/¸4¿8¹8ÀEÈ4Ó;PÑQˆØx‰x˜ Ó&ˆà‰<˜6Ò!Ü"Ÿl™l¨TÑ1ˆD‰O؈D‰OØ!"ˆDÒä"Ÿl™l¨TÑ1ˆD‰OØ" 6™lˆD‰OØ!*ˆDÑØ ˆDÑØ,3°t©O˜4 š=ÄÇÁȈZÑØ,3°t©O˜4 š=ÄÇÁȈZÑØ,3°t©O˜4 š=ÄÇÁȈZÑ؈øô%�!ò�	/ÜœfÓ%¨3Ð.ûð	/ús���Á(E-�Å-	FÅ6FÆFc�����������������óL��—�t���������j������������������d|«�������dj������������������|�j������������������|j	������������������d«������g«������}|�j
������������������j
������������������|d«������}|D�cg�c]0��}t��������j������������������j������������������|j������������������d«������«������‘Œ2�}}ddg|z���S�c�c}w�)Nz
readdir %sr$���r���Fú.z..)r���r5���r6���r���r7���r���ÚlsÚosr���Úbasenamer���)r���r���r>���ÚfilesÚfs���     r���Úreaddirz
FUSEr.readdir6���sƒ���€�܏‰\ 4Ô(؏w‰w˜Ÿ	™	 4§;¡;¨sÓ#3Ð4Ó5ˆØ—‘—
‘
˜4 Ó'ˆØ:?Ö@°Q”—‘×!Ñ! !§(¡(¨3£-Õ0Ð@ˆÐ@ؐTˆ{˜UÑ"Ð"ùò�As���Á#5B!c�����������������ó’���—�dj������������������|�j������������������|j������������������d«������g«������}|�j������������������j	������������������|«�������y©Nr$���r���r���)r6���r���r7���r���Úmkdir©r���r���r)���s���   r���rM���zFUSEr.mkdir=���ó5���€�؏w‰w˜Ÿ	™	 4§;¡;¨sÓ#3Ð4Ó5ˆØ‰
‰
dÔØr���c�����������������ó’���—�dj������������������|�j������������������|j������������������d«������g«������}|�j������������������j	������������������|«�������yrL���)r6���r���r7���r���Úrmdir)r���r���s���  r���rQ���zFUSEr.rmdirB���rO���r���c�����������������ó¼���—�t���������j������������������d|||f«�������|�j������������������r|dv�ry|�j������������������|���}|j	������������������|«�������|j������������������|«������}|S�)Nzread %sr���s���ready)r���r5���r���r���ÚseekÚread)r���r���r,���Úoffsetr>���rI���Úouts���       r���rT���z
FUSEr.readG���sU���€�܏‰Y  t¨VÐ 4Ô5Ø×Ò Ð(GÑ GààJ‰Jr‰NˆØ	‰ˆvŒØf‰fT‹lˆØˆ
r���c�����������������óª���—�t���������j������������������d||f«�������|�j������������������|���}|j������������������|«�������|j	������������������|«�������t��������|«������S�)Nzwrite %s)r���r5���r���rS���ÚwriteÚlen)r���r���r@���rU���r>���rI���s���      r���rX���zFUSEr.writeR���sA���€�܏‰Z $¨ Ô0ØJ‰Jr‰NˆØ	‰ˆvŒØ	‰Œ
ܐ4‹yÐr���c�����������������ór��—�t���������j������������������d||f«�������dj������������������|�j������������������|j	������������������d«������g«������}|�j
������������������j
������������������|«�������|�j
������������������j������������������|d«������}||�j������������������|�j������������������<���|�xj������������������dz
��c_	��������|�j������������������dz
��S�)Nz	create %sr$���r���Úwbr-���)
r���r5���r6���r���r7���r���ÚtouchÚopenr���r���)r���r���ÚflagsÚfiÚfnrI���s���      r���ÚcreatezFUSEr.createY���s‡���€�܏‰[ 4¨ -Ô0Ø
W‰Wd—i‘i §¡¨SÓ!1Ð2Ó
3ˆØ‰
‰
bÔØG‰GL‰L˜˜TÓ"ˆØ#$ˆ
‰
4—<‘<Ñ ØŠ˜Ñ؏|‰|˜aÑÐr���c�����������������óR��—�t���������j������������������d||f«�������dj������������������|�j������������������|j	������������������d«������g«������}|dz��dk(��rd}nd}|�j
������������������j
������������������||«������|�j������������������|�j������������������<���|�xj������������������dz
��c_��������|�j������������������dz
��S�)	Nzopen %sr$���r���é���r���Úrbr[���r-���)	r���r5���r6���r���r7���r���r]���r���r���)r���r���r^���r`���r)���s���     r���r]���z
FUSEr.openb���s‰���€�܏‰Y  u 
Ô.Ø
W‰Wd—i‘i §¡¨SÓ!1Ð2Ó
3ˆØ1‰9˜Š>à‰Dð�ˆDØ#'§7¡7§<¡<°°DÓ#9ˆ
‰
4—<‘<Ñ ØŠ˜Ñ؏|‰|˜aÑÐr���c�����������������ó¨���—�dj������������������|�j������������������|j������������������d«������g«������}|dk7��rt��������‚|�j������������������j������������������|«�������y�rL���)r6���r���r7���ÚNotImplementedErrorr���r\���)r���r���Úlengthr>���r`���s���     r���ÚtruncatezFUSEr.truncateo���s?���€�Ø
W‰Wd—i‘i §¡¨SÓ!1Ð2Ó
3ˆØQŠ;Ü%Ð%à‰
‰
bÕr���c�����������������óä���—�dj������������������|�j������������������|j������������������d«������g«������}	�|�j������������������j	������������������|d«�������y�#�t
��������t��������f$�r}t��������t��������«������|‚d�}~ww�xY�w)Nr$���r���F)	r6���r���r7���r���ÚrmÚOSErrorr8���r���r���)r���r���r`���r?���s���    r���ÚunlinkzFUSEr.unlinkv���s\���€�Ø
W‰Wd—i‘i §¡¨SÓ!1Ð2Ó
3ˆð	,ØG‰GJ‰Jr˜5Õ!øÜÔ*Ð+ò�	,ÜœcÓ"¨Ð+ûð	,ús���®A�ÁA/ÁA*Á*A/c�����������������óØ���—�	�||�j�������������������v�r:|�j�������������������|���}|j������������������«��������|�j�������������������j������������������|«�������y#�t��������$�r}t	��������|«�������Y�d�}~yd�}~ww�xY�w)Nr���)r���ÚcloseÚpopÚ	ExceptionÚprint)r���r���r>���rI���Úes���     r���Úreleasez
FUSEr.release}���s\���€�ð	ؐT—Z‘ZÑØ—J‘J˜r‘NØ—‘”	Ø—
‘
—‘˜rÔ"ð�øô�ò�	Ü!HˆHØûð	ús���‚AA�Á	A)ÁA$Á$A)c�����������������óÊ���—�t��������|�j������������������d«������rHdj������������������|�j������������������|j	������������������d«������g«������}|�j������������������j������������������||«������S�t��������‚)NÚchmodr$���r���)Úhasattrr���r6���r���r7���ru���rf���rN���s���   r���ru���zFUSEr.chmod‡���sK���€�ܐ4—7‘7˜GÔ$Ø—7‘7˜DŸI™I t§{¡{°3Ó'7Ð8Ó9ˆDØ—7‘7—=‘=  tÓ,Ð,Ü!Ð!r���)F)N)Ú__name__Ú
__module__Ú__qualname__r���rB���rJ���rM���rQ���rT���rX���ra���r]���rh���rl���rs���ru���©�r���r���r
���r
������sC���„�ó&óò8#òò
ò
	òó ò óò,òó"r���r
���TFc�����������������ó¸���‡�‡‡‡‡‡‡—�ˆˆ�ˆˆˆˆˆfd„}‰s/t��������j������������������|¬«������}d|_��������|j������������������«��������|S�	��|«��������y#�t��������$�r�Y�yw�xY�w)am��Mount stuff in a local directory

    This uses fusepy to make it appear as if a given path on an fsspec
    instance is in fact resident within the local file-system.

    This requires that fusepy by installed, and that FUSE be available on
    the system (typically requiring a package to be installed with
    apt, yum, brew, etc.).

    Parameters
    ----------
    fs: file-system instance
        From one of the compatible implementations
    path: str
        Location on that file-system to regard as the root directory to
        mount. Note that you typically should include the terminating "/"
        character.
    mount_point: str
        An empty directory on the local file-system where the contents of
        the remote path will appear.
    foreground: bool
        Whether or not calling this function will block. Operation will
        typically be more stable if True.
    threads: bool
        Whether or not to create threads when responding to file operations
        within the mounter directory. Operation will typically be more
        stable if False.
    ready_file: bool
        Whether the FUSE process is ready. The ``.fuse_ready`` file will
        exist in the ``mount_point`` directory if True. Debugging purpose.
    ops_class: FUSEr or Subclass of FUSEr
        To override the default behavior of FUSEr. For Example, logging
        to file.

    c������������������ó6���•—�t���������‰‰‰‰¬«������‰‰�‰�¬«������S�)N)r���)Ú	nothreadsÚ
foreground)r���)r~���r���Úmount_pointÚ	ops_classr���r���Úthreadss���€€€€€€€r���ú<lambda>zrun.<locals>.<lambda>º���s!���ø€�”4ِ"d zÔ2Øؐ+Øõ	r���)ÚtargetTN)Ú	threadingÚThreadÚdaemonÚstartÚKeyboardInterrupt)	r���r���r���r~���r���r���r€���ÚfuncÚths	���```````  r���Úrunr‹���Ž���sV���þ€�÷Xñ�€Dñ�Ü
×
Ñ
 TÔ
*ˆØˆŒ	Ø
‰Œ
؈	ð	ÙFøÜ ò�	Ùð	ús���ÁA
�Á
	AÁAc�����������	������ó†��—��G�d„�dt���������j������������������«������}�|dt��������j������������������¬«������}|j	������������������ddt
��������¬«�������|j	������������������dt��������d	¬
«�������|j	������������������dt��������d¬
«�������|j	������������������d
t��������d¬
«�������|j	������������������dddd¬«�������|j	������������������ddt��������d¬
«�������|j	������������������dddd¬«�������|j	������������������dddd¬«�������|j	������������������dddd ¬«�������|j������������������|�«������}�i�}|�j������������������xs�g�D�]½��}|j������������������d!«������\��}}}|s|j������������������d"|›¬#«�������|j������������������«�������}|j������������������d$«������rt��������|d%t��������d$«��������«������}n"|j������������������d&«������r|d%t��������d&«��������d'v�}d(|v�r*|j������������������d(d)«������\��}	}
|	|v�r	|||	���|
<���Œ±|
|i||	<���Œ¹|||<���Œ¿�|�j ������������������rGt#��������j$������������������t"��������j&������������������|�j ������������������d*¬+«��������G�d,„�d-t(��������t*��������«������}|}nt(��������}t-��������|�j.������������������fi�|¤Ž\��}
}t0��������j3������������������d.|t
��������|�j4������������������«������«�������t7��������|
|�j8������������������|�j4������������������|�j:������������������|�j<������������������|�j>������������������|¬/«�������y%)0a¥��Mount filesystem from chained URL to MOUNT_POINT.

    Examples:

    python3 -m fsspec.fuse memory /usr/share /tmp/mem

    python3 -m fsspec.fuse local /tmp/source /tmp/local \
            -l /tmp/fsspecfuse.log

    You can also mount chained-URLs and use special settings:

    python3 -m fsspec.fuse 'filecache::zip::file://data.zip' \
            / /tmp/zip \
            -o 'filecache-cache_storage=/tmp/simplecache'

    You can specify the type of the setting by using `[int]` or `[bool]`,
    (`true`, `yes`, `1` represents the Boolean value `True`):

    python3 -m fsspec.fuse 'simplecache::ftp://ftp1.at.proftpd.org' \
            /historic/packages/RPMS /tmp/ftp \
            -o 'simplecache-cache_storage=/tmp/simplecache' \
            -o 'simplecache-check_files=false[bool]' \
            -o 'ftp-listings_expiry_time=60[int]' \
            -o 'ftp-username=anonymous' \
            -o 'ftp-password=xieyanbo'
    c�������������������ó���‡�—�e�Zd�Zˆ�fd„Zˆ�xZS�)ú*main.<locals>.RawDescriptionArgumentParserc�����������������óž���•—�t���������‰|���«�������}|j������������������d«������}|�j������������������j	������������������«�������|d<���dj������������������|«������S�)Nz

r-���)ÚsuperÚformat_helpÚsplitÚdescriptionr���r6���)r���ÚusageÚpartsÚ	__class__s���   €r���r‘���z6main.<locals>.RawDescriptionArgumentParser.format_helpé���sE���ø€�Ü‘GÑ'Ó)ˆEØ—K‘K Ó'ˆEØ×'Ñ'×.Ñ.Ó0ˆE!‰HØ—;‘;˜uÓ%Ð%r���)rw���rx���ry���r‘���Ú
__classcell__)r–���s���@r���ÚRawDescriptionArgumentParserrŽ���è���s
���ø„�÷	&ð�	&r���r˜���r���)Úprogr“���z	--versionÚversion)Úactionrš���Úurlzfs url)r"���ÚhelpÚsource_pathzsource directory in fsr���zlocal directoryz-oz--optionÚappendz3Any options of protocol included in the chained URL)r›���r���z-lz
--log-filez%Logging FUSE debug info (Default: '')z-fz--foregroundÚstore_falsez-Running in foreground or not (Default: False)z-tz	--threadsz-Running with threads support (Default: False)z-rz--ready-filezZThe `.fuse_ready` file will exist after FUSE is ready. (Debugging purpose, Default: False)ú=zWrong option: )Úmessagez[int]Nz[bool])Ú1ÚyesÚtrueú-r-���z%(asctime)s %(message)s)ÚlevelÚfilenameÚformatc�������������������ó���—�e�Zd�Zy)úmain.<locals>.LoggingFUSErN)rw���rx���ry���rz���r���r���ÚLoggingFUSErr«���-��s���„�Ør���r¬���zMounting %s to %s)r~���r���r���r€���) ÚargparseÚArgumentParserÚmainÚ__doc__Úadd_argumentr	���ÚstrÚ
parse_argsÚoptionÚ	partitionÚerrorÚlowerÚendswithÚintrY���r’���Úlog_fileÚloggingÚbasicConfigÚDEBUGr
���r���r
���rœ���r���r5���r���r‹���rž���r~���r���r���)Úargsr˜���ÚparserÚkwargsÚitemÚkeyÚsepÚvalueÚvalÚfs_nameÚsetting_namer¬���Úfuserr���Úurl_paths���               r���r¯���r¯���Ì���s¾��€�ô8&¤x×'>Ñ'>ô�&ñ�*¨}Ì$Ï,É,Ô
W€FØ
×ј¨I¼{ÐÔKØ
×ј¤C¨hÐÔ7Ø
×ј
¬CÐ6NÐÔOØ
×ј
¬CÐ6GÐÔHØ
×ÑØØØØ
Bð	�ô�ð�×ÑØˆl¤Ð+Rð�ô�ð�×ÑØØØØ
<ð	�ô�ð�×ÑØØØØ
<ð	�ô�ð�×ÑØØØð.ð	�ô�ð�×јTÓ"€Dà
€FØ—‘Ò!˜rÒ!ˆØŸ.™.¨Ó-‰ˆˆS%ÙØL‰L >°$°Ð!:ˆLÔ;؏k‰k‹mˆØ<‰<˜Ô ܘ˜o¤ W£ 
Ð.Ó/‰EØ
\‰\˜(Ô
#ØÐ(œ3˜x›=˜.Ð)Ð-AÐAˆEà#‰:Ø$'§I¡I¨c°1Ó$5Ñ!ˆG\ؘ&Ñ Ø05w‘ Ò-à#/°Ð"7w’àˆF3ŠKð#�"ð&�‡}‚}Ü×ÑÜ—-‘-Ø—]‘]Ø,õ	
ô	œ5¤,ô�	ð�‰äˆä˜TŸX™XÑ0¨Ñ0L€BˆÜ
‡LLÐ$ h´°D×4DÑ4DÓ0EÔFÜØ
Ø×ÑØ×ÑØ—?‘?Ø—‘Ø—?‘?Øör���Ú__main__r-���)r­���r»���rF���r:���r„���r=���Úerrnor���r���Úfuser���r���r���r���Úfsspecr	���Úfsspec.corer
���Ú	getLoggerr���r
���r‹���r¯���rw���ÚsysÚargvrz���r���r���ú<module>rÒ������s†���ðÛ�Û�Û�	Û�Û�Û�ß�ç�<Ó�<å�Ý�!à	ˆ×	Ñ	˜=Ó	)€ôz"ˆJô�z"ðB�ØØØó;ò|rðj�ˆzÒÛሏ‰!"ˆÕð�r���