Ë
    °ëjû˜  ã            
       óž  — 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 d dlmZmZmZmZmZmZmZ d dlmZmZ d dlZd d	lmZmZmZ d d
lmZ d dl m!Z! ddl"m#Z# ddl$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* ddl+m,Z,m-Z- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5  ejl                  dejn                  «      Z8e G d„ d«      «       Z9 G d„ dejt                  «      Z; G d„ dejx                  jz                  «      Z> G d„ dejx                  jz                  «      Z?de@de@fd„ZAde@de@fd „ZBd!e@d"eeC   defd#„ZDd$e;d!e@d%e@d&eEd'e@f
d(„ZF e jŽ                  e;e j�                  ¬)«      D ]j  \  ZIZJ eKejt                  eId«      ZLeL€ŒeLjš                  €Œ*eLjš                  ZNeNjŸ                  d*d+«      ZNeNjŸ                  d,d-«      ZNd.eI› d/�d0z   eNz   eJ_M        Œl y)1é    N)Údeque)Ú	dataclassÚfield)Údatetime)Úchain)ÚPath)ÚAnyÚDictÚListÚNoReturnÚOptionalÚTupleÚUnion)ÚquoteÚunquote)Ú_DEFAULT_CALLBACKÚNoOpCallbackÚTqdmCallback)Ú
isfilelike)ÚResponseé   )Ú	constants)ÚCommitOperationCopyÚCommitOperationDelete)ÚEntryNotFoundErrorÚRepositoryNotFoundErrorÚRevisionNotFoundError)Ú
hf_hub_urlÚhttp_get)ÚHfApiÚLastCommitInfoÚRepoFile)ÚHFValidationErrorÚhf_raise_for_statusÚhttp_backoffzy
    (^refs\/convert\/\w+)     # `refs/convert/parquet` revisions
    |
    (^refs\/pr\/\d+)          # PR revisions
    c                   ój   — e Zd ZU dZeed<   eed<   eed<   eed<    edd¬«      Zee   ed	<   d
efd„Z	y)ÚHfFileSystemResolvedPathzUData structure containing information about a resolved Hugging Face file system path.Ú	repo_typeÚrepo_idÚrevisionÚpath_in_repoNF)ÚdefaultÚreprÚ_raw_revisionÚreturnc                 óÈ  — t         j                  j                  | j                  d«      | j                  z   }| j
                  r-|› d| j
                  › d| j                  › �j                  d«      S | j                  t         j                  k7  r6|› dt        | j                  «      › d| j                  › �j                  d«      S |› d| j                  › �j                  d«      S )NÚ ú@ú/)r   ÚREPO_TYPES_URL_PREFIXESÚgetr(   r)   r.   r+   Úrstripr*   ÚDEFAULT_REVISIONÚsafe_revision)ÚselfÚ	repo_paths     úk/home/oem/CyberBrain26-unified/dev-env/.venv/lib/python3.12/site-packages/huggingface_hub/hf_file_system.pyÚ	unresolvez"HfFileSystemResolvedPath.unresolve5   sÍ   € Ü×5Ñ5×9Ñ9¸$¿.¹.È"ÓMÐPT×P\ÑP\Ñ\ˆ	Ø×ÒØ�[  $×"4Ñ"4Ð!5°Q°t×7HÑ7HÐ6IÐJ×QÑQÐRUÓVÐVØ�]‰]œi×8Ñ8Ò8Ø�[ ¤-°·±Ó">Ð!?¸qÀ×ARÑARÐ@SÐT×[Ñ[Ð\_Ó`Ð`à�[  $×"3Ñ"3Ð!4Ð5×<Ñ<¸SÓAÐAó    )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__r   r.   r   r<   © r=   r;   r'   r'   )   s?   … á_àƒNØƒLØƒMØÓñ $)°¸EÔ#B€M�8˜C‘=ÓBðB˜3ô Br=   r'   c                   ó´  ‡ — e Zd ZdZdZdZdddœdee   dee	edf   fˆ fd„Z
d	ed
edee   dee	ee   f   fd„Zd.dedee   defd„Zd.dee   ddfd„Z	 	 	 d/dededee   dee   ddf
d„Zd.dedee   ddfd„Z	 	 	 d0dede	dee   dee   ddf
d„Z	 d1dede	de	dee   deeeeeef   f      f
d„Z	 	 	 	 d2dede	de	dee   de	f
d„Zˆ fd„Zˆ fd„Z	 	 	 	 	 d3dedee   d e	de	de	dee   deee   eeeeef   f   f   fˆ fd!„Zd.d"ed#edee   ddfd$„Zdedefd%„Zd4dede	dee   deeef   fd&„Z d'„ Z!d(„ Z"d)„ Z#dedefd*„Z$e%dfd5ˆ fd+„Z&e'd,„ «       Z(d-„ Z)ˆ xZ*S )6ÚHfFileSystemaF  
    Access a remote Hugging Face Hub repository as if were a local file system.

    Args:
        token (`str` or `bool`, *optional*):
            A valid user access token (string). Defaults to the locally saved
            token, which is the recommended method for authentication (see
            https://huggingface.co/docs/huggingface_hub/quick-start#authentication).
            To disable authentication, pass `False`.

    Usage:

    ```python
    >>> from huggingface_hub import HfFileSystem

    >>> fs = HfFileSystem()

    >>> # List files
    >>> fs.glob("my-username/my-model/*.bin")
    ['my-username/my-model/pytorch_model.bin']
    >>> fs.ls("datasets/my-username/my-dataset", detail=False)
    ['datasets/my-username/my-dataset/.gitattributes', 'datasets/my-username/my-dataset/README.md', 'datasets/my-username/my-dataset/data.json']

    >>> # Read/write files
    >>> with fs.open("my-username/my-model/pytorch_model.bin") as f:
    ...     data = f.read()
    >>> with fs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
    ...     f.write(data)
    ```
    r1   ÚhfN©ÚendpointÚtokenrI   rJ   c                ó–   •— t        ‰| �  |i |¤Ž |xs t        j                  | _        || _        t        ||¬«      | _        i | _        y )NrH   )	ÚsuperÚ__init__r   ÚENDPOINTrI   rJ   r    Ú_apiÚ_repo_and_revision_exists_cache)r9   rI   rJ   ÚargsÚstorage_optionsÚ	__class__s        €r;   rM   zHfFileSystem.__init__b   sK   ø€ ô 	‰Ñ˜$Ð2 /Ò2Ø Ò6¤I×$6Ñ$6ˆŒØˆŒ
Ü 8°5Ô9ˆŒ	ð ð 	Õ,r=   r(   r)   r*   r/   c                 óâ  — |||f| j                   vrR	 | j                  j                  |||t        j                  ¬«       d| j                   |||f<   d| j                   ||d f<   | j                   |||f   S # t
        t        f$ r2}d|f| j                   |||f<   d|f| j                   ||d f<   Y d }~ŒNd }~wt        $ r0}d|f| j                   |||f<   d| j                   ||d f<   Y d }~Œ…d }~ww xY w)N)r*   r(   Útimeout)TNF)rP   rO   Ú	repo_infor   ÚHF_HUB_ETAG_TIMEOUTr   r#   r   )r9   r(   r)   r*   Úes        r;   Ú_repo_and_revision_existz%HfFileSystem._repo_and_revision_existt   s!  € ð �w Ð)°×1UÑ1UÑUð^Ø—	‘	×#Ñ#Ø h¸)ÌY×MjÑMjð $ô ð Xb�×4Ñ4°iÀÈ(Ð5SÑTØS]�×4Ñ4°iÀÈ$Ð5OÑPØ×3Ñ3°YÀÈÐ4RÑSÐSøô ,Ô->Ð?ò \ØW\Ð^_ÐW_�×4Ñ4°iÀÈ(Ð5SÑTØSXÐZ[ÐS[�×4Ñ4°iÀÈ$Ð5OÖPûÜ(ò ^ØW\Ð^_ÐW_�×4Ñ4°iÀÈ(Ð5SÑTØS]�×4Ñ4°iÀÈ$Ð5OÖPûð^ús#   “-A6 Á6C.Â(B2Â2C.Â>&C)Ã)C.Úpathc                 ó  — dt         t           dt         t           dt         t           fd„}| j                  |«      }|st        d«      ‚|j	                  d«      d   dz   t
        j                  j                  «       v r8d|vrt        d«      ‚|j	                  dd«      \  }}t
        j                  |   }nt
        j                  }|j                  d«      dkD  �r¶d	|v rË|j	                  d	d«      \  }}d|v rwt        j                  |«      }|�J|d |j                  «       fv r6t        j                  d
|«      j                  d«      }|j                  «       }n|j	                  dd«      \  }}nd
} |t!        |«      |«      }| j#                  |||«      \  }	}
|	�sJt%        ||
«       �n<d }dj'                  |j	                  d«      d d «      }dj'                  |j	                  d«      dd  «      }|j	                  d«      d   }dj'                  |j	                  d«      dd  «      }|}|}| j#                  |||«      \  }	}
|	s¡t)        |
t*        t,        f«      r)|}|}| j#                  |||«      \  }	}|	sot%        ||
«       nbt%        ||
«       nU|}d
}d	|v r(|j	                  d	d«      \  }} |t!        |«      |«      }nd }| j#                  |||«      \  }	}|	st        d«      ‚|�|nt
        j.                  }t1        |||||¬«      S )NÚrevision_in_pathr*   r/   c                 óD   — |�| �| |k7  rt        d| › d|› d�«      ‚|S | }|S )NzRevision specified in path ("z ") and in `revision` argument ("z") are not the same.)Ú
ValueError)r\   r*   s     r;   Ú%_align_revision_in_path_with_revisionzHHfFileSystem.resolve_path.<locals>._align_revision_in_path_with_revisionˆ   sU   € ð Ð#Ø#Ð/Ð4DÈÒ4PÜ$Ø7Ð8HÐ7IÐIiÐjrÐisð t-ð -óð ð ˆOð ,�ØˆOr=   z0Access to repositories lists is not implemented.r3   r   r   r2   r1   é   )r.   )r   rB   Ú_strip_protocolÚNotImplementedErrorÚsplitr   r4   ÚvaluesÚREPO_TYPES_MAPPINGÚREPO_TYPE_MODELÚcountÚSPECIAL_REFS_REVISION_REGEXÚsearchÚgroupÚsubÚlstripr   rY   Ú_raise_file_not_foundÚjoinÚ
isinstancer   r#   r7   r'   )r9   rZ   r*   r_   r(   r)   r\   Úmatchr+   Úrepo_and_revision_existÚerrÚrepo_id_with_namespaceÚpath_in_repo_with_namespaceÚrepo_id_without_namespaceÚpath_in_repo_without_namespaceÚ_s                   r;   Úresolve_pathzHfFileSystem.resolve_path‡   s  € ð	Ü&¤s™mð	Ü7?Ä±}ð	ä”c‰]ó	ð ×#Ñ# DÓ)ˆÙä%Ð&XÓYÐYØ�Z‰Z˜‹_˜QÑ #Ñ%¬×)JÑ)J×)QÑ)QÓ)SÑSØ˜$‰ä)Ð*\Ó]Ð]Ø"Ÿj™j¨¨aÓ0‰OˆI�tÜ!×4Ñ4°YÑ?‰Iä!×1Ñ1ˆIØ�:‰:�c‹?˜QÓØ�d‰{Ø,0¯J©J°s¸AÓ,>Ñ)�Ð)ØÐ*Ñ*Ü7×>Ñ>Ð?OÓP�EØÐ(¨X¸$ÀÇÁÃÐ9NÑ-Nä'B×'FÑ'FÀrÐK[Ó'\×'cÑ'cÐdgÓ'h˜Ø+0¯;©;«=Ñ(à9I×9OÑ9OÐPSÐUVÓ9WÑ6Ð(©,à#%�LÙ@ÄÐIYÓAZÐ\dÓe�Ø/3×/LÑ/LÈYÐX_ÐaiÓ/jÑ,Ð'¨Ú.Ü)¨$°Ö4à#'Ð Ø),¯©°$·*±*¸S³/À"À1Ð2EÓ)FÐ&Ø.1¯h©h°t·z±zÀ#³ÀqÀrÐ7JÓ.KÐ+Ø,0¯J©J°s«O¸AÑ,>Ð)Ø14·±¸$¿*¹*ÀS»/È!È"Ð:MÓ1NÐ.Ø0�Ø:�Ø/3×/LÑ/LÈYÐX_ÐaiÓ/jÑ,Ð'¨Ù.Ü! #Ô(?ÔARÐ'SÔTØ";˜Ø'E˜Ø59×5RÑ5RÐS\Ð^eÐgoÓ5pÑ2Ð/°Ù6Ü1°$¸Õ<ä-¨d°CÕ8àˆGØˆLØ�d‰{Ø,0¯J©J°s¸AÓ,>Ñ)�Ð)Ù@ÄÐIYÓAZÐ\dÓe‘à#'Ð Ø)-×)FÑ)FÀyÐRYÐ[cÓ)dÑ&Ð# QÙ*Ü)Ð*\Ó]Ð]à'Ð3‘8¼×9SÑ9SˆÜ'¨	°7¸HÀlÐbrÔsÐsr=   c                 ó  — |s5| j                   j                  «        | j                  j                  «        y | j                  |«      j	                  «       }|r1| j                   j                  |d «       | j                  |«      }|rŒ0y y ©N)ÚdircacheÚclearrP   rx   r<   ÚpopÚ_parent©r9   rZ   s     r;   Úinvalidate_cachezHfFileSystem.invalidate_cacheÓ   sj   € ÙØ�M‰M×ÑÔ!Ø×0Ñ0×6Ñ6Õ8à×$Ñ$ TÓ*×4Ñ4Ó6ˆDÙØ—‘×!Ñ! $¨Ô-Ø—|‘| DÓ)�ô r=   ÚmodeÚ
block_sizeÚHfFileSystemFilec                 ón   — d|v rt        d«      ‚|dk(  rt        | |f|||dœ|¤ŽS t        | |f|||dœ|¤ŽS )NÚaz/Appending to remote files is not yet supported.r   )r�   r*   r‚   )rb   ÚHfFileSystemStreamFilerƒ   )r9   rZ   r�   r*   r‚   Úkwargss         r;   Ú_openzHfFileSystem._openÝ   sX   € ð �$‰;Ü%Ð&WÓXÐXØ˜Š?Ü)¨$°Ðt¸4È(Ð_iÑtÐmsÑtÐtä# D¨$Ðn°TÀHÐYcÑnÐgmÑnÐnr=   c                 óN  — | j                  ||¬«      }| j                  j                  |j                  |j                  | j
                  |j                  |j                  |j                  d«      |j                  d«      ¬«       | j                  |j                  «       ¬«       y )N©r*   Úcommit_messageÚcommit_description)r+   r)   rJ   r(   r*   r‹   rŒ   ©rZ   )rx   rO   Údelete_filer+   r)   rJ   r(   r*   r5   r€   r<   )r9   rZ   r*   r‡   Úresolved_paths        r;   Ú_rmzHfFileSystem._rmì   s�   € Ø×)Ñ)¨$¸Ð)ÓBˆØ�	‰	×ÑØ&×3Ñ3Ø!×)Ñ)Ø—*‘*Ø#×-Ñ-Ø"×+Ñ+Ø!Ÿ:™:Ð&6Ó7Ø%Ÿz™zÐ*>Ó?ð 	ô 	
ð 	×Ñ =×#:Ñ#:Ó#<ÐÕ=r=   Ú	recursiveÚmaxdepthc                 óX  — | j                  ||¬«      }| j                  ||||¬«      }|D �cg c]/  }| j                  |«      rŒ| j                  |«      j                  ‘Œ1 }}|D �	cg c]  }	t	        |	¬«      ‘Œ }
}	d› d�}||rdndz  }||�d|› d�ndz  }| j
                  j                  |j                  |j                  | j                  |
|j                  |j                  d	|«      |j                  d
«      ¬«       | j                  |j                  «       ¬«       y c c}w c c}	w )NrŠ   )r‘   r’   r*   )r+   zDelete ú zrecursively r1   zup to depth r‹   rŒ   )r)   r(   rJ   Ú
operationsr*   r‹   rŒ   r�   )rx   Úexpand_pathÚisdirr+   r   rO   Úcreate_commitr)   r(   rJ   r*   r5   r€   r<   )r9   rZ   r‘   r’   r*   r‡   r�   ÚpathsÚpaths_in_repor+   r•   r‹   s               r;   ÚrmzHfFileSystem.rmù   s3  € ð ×)Ñ)¨$¸Ð)ÓBˆØ× Ñ  °ÀXÐX`Ð ÓaˆØJOÖhÀ$ÐW[×WaÑWaÐbfÕWg˜×*Ñ*¨4Ó0×=Ó=ÐhˆÐhØ[hÖiÈ<Ô+¸ÖFÐiˆ
ÐiØ" 4 &¨Ð*ˆØ©I™.¸2Ñ=ˆØ¸Ð8L˜L¨¨
°!Ñ4ÐRTÑTˆà�	‰	×ÑØ!×)Ñ)Ø#×-Ñ-Ø—*‘*Ø!Ø"×+Ñ+Ø!Ÿ:™:Ð&6¸ÓGØ%Ÿz™zÐ*>Ó?ð 	 ô 	
ð 	×Ñ =×#:Ñ#:Ó#<ÐÕ=ùò iùÚis   ­D"ÁD"Á'D'ÚdetailÚrefreshc                 óÂ  — | j                  ||¬«      }|j                  «       }d|i|¥}	  | j                  |f||dœ|¤Ž}|r|S |D �cg c]  }|d   ‘Œ	 c}S # t        $ rx |j                  st        |d«        | j                  | j                  |«      f||dœ|¤Ž}|D �cg c]  }|d   |k(  sŒ|‘Œ nc c}w }}t        |«      dk(  rt        |d«       Y Œ—w xY wc c}w )z!List the contents of a directory.rŠ   Úexpand_info)r�   r*   NÚnamer   )rx   r<   Ú_ls_treer   r+   rm   r~   Úlen)	r9   rZ   rœ   r�   r*   r‡   r�   ÚoutÚos	            r;   ÚlszHfFileSystem.ls  sú   € ð ×)Ñ)¨$¸Ð)ÓBˆØ×&Ñ&Ó(ˆØ Ð2¨6Ð2ˆð		2Ø�$—-‘- ÐS¨gÀÑSÈFÑSˆCñ ˆsÐ:°cÖ":° 1 V£9Ò":Ð:øô "ò 	2à ×-Ò-Ü% d¨DÔ1Ø�$—-‘- §¡¨TÓ 2Ða¸GÈhÑaÐZ`ÑaˆCØ!Ö7˜ Q v¡Y°$Ó%6’1Ñ7ùÒ7ˆCÐ7Ü�3‹x˜1Š}Ü% d¨DÔ1ùð	2üò #;s*   «A Á	CÁA
CÂ"B5Â0B5Â4"CÃCrŸ   c           	      ó¤  — | j                  ||¬«      }|j                  «       }t        |j                  |j                  |j
                  d|j                  ¬«      j                  «       }g }|| j                  v �r|�s| j                  |   }	|j                  |	«       g }
|r¨t        |	D �cg c]  }|d   dk(  sŒ|‘Œ c}«      }|r„|j                  «       }|d   | j                  vr|
j                  |d   «       nK| j                  |d      }	|j                  |	«       |j                  |	D �cg c]  }|d   dk(  sŒ|‘Œ c}«       |rŒ„g }|r'|D �cg c]  }|d   �Œ	| j                  |d   «      ‘Œ }}|r|
s|�r|�rt        j                  j                  |
|z   «      }|j!                  d«      s||k(  s|t#        |
|«      v r|j%                  d«      n| j                  |«      }|D �cg c]  }|d   j'                  |dz   «      rŒ|‘Œ }}| j                  D ]3  }|j'                  |dz   «      sŒ| j                  j)                  |d «       Œ5 | j                  j)                  |d «       |j                  | j+                  ||d	||¬
«      «       |S | j,                  j/                  |j                  |j0                  |||j
                  |j                  ¬«      }|D ]Û  }t3        |t4        «      rM|dz   |j                  z   |j6                  d|j8                  |j:                  |j<                  |j>                  dœ}n,|dz   |j                  z   dd|j@                  |j<                  dœ}| j                  |d   «      }| j                  jC                  |g «      j                  |«       |j                  |«       ŒÝ |S c c}w c c}w c c}w c c}w )NrŠ   r1   ©r+   r.   ÚtypeÚ	directoryr    Úlast_commitr3   T)r‘   r�   r*   rŸ   )r‘   Úexpandr*   r(   Úfile©r    Úsizer¨   Úblob_idÚlfsrª   Úsecurityr   ©r    r®   r¨   Útree_idrª   )"rx   r<   r'   r(   r)   r*   r.   r{   Úextendr   ÚpopleftÚappendr~   ÚosrZ   ÚcommonprefixÚendswithr   r6   Ú
startswithr}   r¡   rO   Úlist_repo_treer+   ro   r"   r®   r¯   r°   rª   r±   r³   Ú
setdefault)r9   rZ   r‘   r�   r*   rŸ   r�   Ú	root_pathr£   Úcached_path_infosÚdirs_not_in_dircacheÚ	path_infoÚdirs_to_visitÚdir_infoÚdirs_not_expandedr¤   Úcommon_prefixÚcommon_pathÚcached_pathÚtreeÚcache_path_infoÚparent_paths                         r;   r¡   zHfFileSystem._ls_tree'  sÚ  € ð ×)Ñ)¨$¸Ð)ÓBˆØ×&Ñ&Ó(ˆÜ,Ø×#Ñ#Ø×!Ñ!Ø×"Ñ"ØØ'×5Ñ5ô
÷ ‰)‹+ð 	ð ˆØ�4—=‘=Ò ªØ $§¡¨dÑ 3ÐØ�J‰JÐ(Ô)Ø#%Ð Ùô !&Ø0AÖf 9ÀYÈvÑEVÐZeÓEe’YÒfó!�ñ $Ø,×4Ñ4Ó6�HØ Ñ'¨t¯}©}Ñ<Ø,×3Ñ3°H¸VÑ4DÕEà,0¯M©M¸(À6Ñ:JÑ,KÐ)ØŸ
™
Ð#4Ô5Ø%×,Ñ,Ø8IÖn¨9ÈYÐW]ÑM^ÐbmÓMmšYÒnôò $ð !#ÐÙàFIÖ$fÀÈQÈ}ÑM]ÑMe T§\¡\°!°F±)Õ%<Ð$fÐ!Ð$fáÑ2ºÒHYô !#§¡× 4Ñ 4Ð5IÐL]Ñ5]Ó ^�ð %×-Ñ-¨cÔ2Ø$¨	Ò1Ø$¬Ð.BÐDUÓ(VÑVð "×(Ñ(¨Ô-ð Ÿ™ mÓ4ð ð #&ÖU˜Q¨Q¨v©Y×-AÑ-AÀ+ÐPSÑBSÕ-T’qÐU�ÐUØ#'§=¡=ò =�KØ"×-Ñ-¨k¸CÑ.?Õ@ØŸ™×)Ñ)¨+°tÕ<ð=ð —‘×!Ñ! +¨tÔ4Ø—
‘
Ø—M‘MØ#Ø"+Ø $Ø!)Ø$/ð "ó ôðP ˆ
ð= —9‘9×+Ñ+Ø×%Ñ%Ø×*Ñ*Ø#Ø"Ø&×/Ñ/Ø'×1Ñ1ð ,ó ˆDð "ò ,�	Ü˜i¬Ô2à )¨C¡°)·.±.Ñ @Ø )§¡Ø &Ø#,×#4Ñ#4Ø(Ÿ}™}Ø'0×'<Ñ'<Ø$-×$6Ñ$6ñ'‘Oð !*¨C¡°)·.±.Ñ @Ø !Ø +Ø#,×#4Ñ#4Ø'0×'<Ñ'<ñ'�Oð #Ÿl™l¨?¸6Ñ+BÓC�Ø—‘×(Ñ(¨°bÓ9×@Ñ@ÀÔQØ—
‘
˜?Õ+ð+,ð, ˆ
ùòW gùò oùò %gùò Vs0   Â+N>Â9N>Ä.OÄ<OÅ
OÅOÇ+OÈOc              /   óÔ   •K  — d|j                  dd«      i|¥}| j                  ||j                  d«      ¬«      j                  «       }t        ‰| �  |g|¢­i |¤ŽE d {  –—†  y 7 Œ­w©NrŸ   rœ   Fr*   rŠ   )r5   rx   r<   rL   Úwalk)r9   rZ   rQ   r‡   rS   s       €r;   rÌ   zHfFileSystem.walk�  sd   øè ø€ à §¡¨H°eÓ!<ÐGÀÐGˆØ× Ñ  °·
±
¸:Ó0FÐ ÓG×QÑQÓSˆÜ‘7‘< Ð6 tÒ6¨vÑ6×6Ò6ús   ƒAA(Á A&Á!A(c                 ó°   •— d|j                  dd«      i|¥}| j                  ||j                  d«      ¬«      j                  «       }t        ‰| �  |fi |¤ŽS rË   )r5   rx   r<   rL   Úglob)r9   rZ   r‡   rS   s      €r;   rÎ   zHfFileSystem.glob•  sX   ø€ à §¡¨H°eÓ!<ÐGÀÐGˆØ× Ñ  °·
±
¸:Ó0FÐ ÓG×QÑQÓSˆÜ‰w‰|˜DÑ+ FÑ+Ð+r=   Úwithdirsc           	      óJ  •— |rt        ‰| �  |f|||||dœ|¤ŽS | j                  ||¬«      }|j                  «       }d|i|¥}	  | j                  |fd||j
                  dœ|¤Ž}	|s|	D �
cg c]  }
|
d   dk7  sŒ|
‘Œ }	}
n/ | j                  |fd|j
                  i|¤Ž}|d   dk(  r|g|	z   n|	}	|	D �
ci c]  }
|
d	   |
“Œ
 }	}
t        |	«      }|s|S |D �ci c]  }||	|   “Œ
 c}S c c}
w c c}
w # t        $ r%  | j                  |fd|i|¤Žd   d
k(  r|i i}	ni }	Y ŒZw xY wc c}w )N)r’   rÏ   rœ   r�   r*   rŠ   rŸ   T)r‘   r�   r*   r¨   r©   r*   r    r¬   )	rL   Úfindrx   r<   r¡   r*   Úinfor   Úsorted)r9   rZ   r’   rÏ   rœ   r�   r*   r‡   r�   r£   r¤   rÀ   Únamesr    rS   s                 €r;   rÑ   zHfFileSystem.find›  s‹  ø€ ñ Ü‘7‘<ØðØ'°(À6ÐSZÐemñØqwñð ð ×)Ñ)¨$¸Ð)ÓBˆØ×&Ñ&Ó(ˆØ Ð2¨6Ð2ˆð	.Ø�$—-‘- Ðq°¸gÐP]×PfÑPfÑqÐjpÑqˆCñ Ø"%ÖB˜Q¨¨6©°kÓ)A’qÐB�ÑBð &˜DŸI™I dÑV°]×5KÑ5KÐVÈvÑV�	Ø+4°VÑ+<ÀÒ+K�y�k CÒ'ÐQT�Ø),Ö- A�1�V‘9˜a‘<Ð-ˆCÐ-Ü�s“ˆÙØˆLà05Ö6¨�D˜#˜d™)‘OÒ6Ð6ùò Cùò
 .øô "ò 	àˆt�y‰y˜Ñ;¨Ð;°FÑ;¸FÑCÀvÒMØ˜R�j‘à�ùð	üò$ 7s*   Á!C/ Á+C%Á9C%Â3C*ÃD Ã/+DÄDÚpath1Úpath2c                 óà  — | j                  ||¬«      }| j                  ||¬«      }|j                  |j                  k(  xr |j                  |j                  k(  }|r“d|› d|› �}| j                  j	                  |j                  |j                  |j
                  |j                  d|«      |j                  dd«      t        |j                  |j                  |j
                  ¬«      g¬«       n³| j                  |d	|j
                  ¬«      5 }	|	j                  «       }
d d d «       d|› d|› �}| j                  j                  
|j                  |j                  | j                  |j                  |j
                  |j                  d|«      |j                  d«      ¬
«       | j                  |j                  «       ¬«       | j                  |j                  «       ¬«       y # 1 sw Y   ŒÆxY w)NrŠ   zCopy z to r‹   rŒ   r1   )Úsrc_path_in_repor+   Úsrc_revision)r)   r(   r*   r‹   rŒ   r•   Úrb©Úpath_or_fileobjr+   r)   rJ   r(   r*   r‹   rŒ   r�   )rx   r(   r)   rO   r˜   r*   r5   r   r+   ÚopenÚreadÚupload_filerJ   r€   r<   )r9   rÕ   rÖ   r*   r‡   Úresolved_path1Úresolved_path2Ú	same_repor‹   ÚfÚcontents              r;   Úcp_filezHfFileSystem.cp_fileÂ  sÒ  € Ø×*Ñ*¨5¸8Ð*ÓDˆØ×*Ñ*¨5¸8Ð*ÓDˆð ×$Ñ$¨×(@Ñ(@Ñ@ÒuÀ^×E[ÑE[Ð_m×_uÑ_uÑEuð 	ñ Ø$ U G¨4°¨wÐ7ˆNØ�I‰I×#Ñ#Ø&×.Ñ.Ø(×2Ñ2Ø'×0Ñ0Ø%Ÿz™zÐ*:¸NÓKØ#)§:¡:Ð.BÀBÓ#Gä'Ø)7×)DÑ)DØ%3×%@Ñ%@Ø%3×%<Ñ%<ôðð $õ ð —‘˜5 $°×1HÑ1H�ÓIð #ÈQØŸ&™&›(�÷#à$ U G¨4°¨wÐ7ˆNØ�I‰I×!Ñ!Ø 'Ø+×8Ñ8Ø&×.Ñ.Ø—j‘jØ(×2Ñ2Ø'×0Ñ0Ø%Ÿz™zÐ*:¸NÓKØ#)§:¡:Ð.BÓ#Cð "ô 	ð 	×Ñ >×#;Ñ#;Ó#=ÐÔ>Ø×Ñ >×#;Ñ#;Ó#=ÐÕ>÷#ð #ús   ÄG$Ç$G-c                 ó8   —  | j                   |fi |¤Ž}|d   d   S )Nrª   Údate©rÒ   )r9   rZ   r‡   rÒ   s       r;   ÚmodifiedzHfFileSystem.modifiedë  s'   € Øˆt�y‰y˜Ñ( Ñ(ˆØ�MÑ" 6Ñ*Ð*r=   c                 ó4  — | j                  ||¬«      }|j                  «       }|j                  dd«      }|j                  s}|dddœ}|�r?| j                  j                  |j                  |j                  |j                  ¬«      d   }i |¥d t        |j                  |j                  |j                  ¬	«      d
œ¥}�nËd }| j                  |«      }	|s!|	| j                  vr| j                  |	d¬«       |	| j                  v r8| j                  |	   D �
cg c]  }
|
d   |k(  sŒ|
‘Œ }}
|st!        |d «       |d   }|s|�|�rH|�rE|d   �€?| j                  j#                  |j                  |j                  ||j                  |j                  ¬«      }|st!        |d «       |d   }t%        |j                  |j                  |j                  d|j&                  ¬«      j                  «       }t)        |t*        «      rM|dz   |j,                  z   |j.                  d|j0                  |j2                  |j4                  |j6                  dœ}n,|dz   |j,                  z   dd|j8                  |j4                  dœ}|sdD �ci c]  }|||   “Œ
 }}|€J ‚|S c c}
w c c}w )NrŠ   rŸ   Tr   r©   )r    r®   r¨   )r(   r*   éÿÿÿÿ)ÚoidÚtitlerç   )r³   rª   F©rŸ   r    rª   )r«   r*   r(   r1   r§   r3   r¬   r­   r²   )rx   r<   r5   r+   rO   Úlist_repo_commitsr)   r(   r*   r!   Ú	commit_idrí   Ú
created_atr~   r{   r¥   rm   Úget_paths_infor'   r.   ro   r"   rZ   r®   r¯   r°   rª   r±   r³   )r9   rZ   r�   r*   r‡   r�   rŸ   r£   rª   rÉ   r¤   Úout1Ú
paths_inforÀ   r½   Úks                   r;   rÒ   zHfFileSystem.infoï  s±  € Ø×)Ñ)¨$¸Ð)ÓBˆØ×&Ñ&Ó(ˆØ—j‘jØ˜4ó
ˆð ×)Ò)ð ØØ#ñˆCò
 Ø"Ÿi™i×9Ñ9Ø!×)Ñ)°]×5LÑ5LÐWd×WmÑWmð :ó àñ�ðØðà#Ü#1Ø'×1Ñ1¸×9JÑ9JÐQ\×QgÑQgô$ò’ð ˆCØŸ,™, tÓ,ˆKÙ ;°d·m±mÑ#Cà—‘˜°�Ô7Ø˜dŸm™mÑ+à#'§=¡=°Ñ#=ÖS˜aÀÀ6ÁÈdÓARšÐS�ÐSÙÜ)¨$°Ô5Ø˜1‘g�Ù˜#˜+ª+º#À#ÀmÑBTÑB\Ø!ŸY™Y×5Ñ5Ø!×)Ñ)Ø!×.Ñ.Ø&Ø*×3Ñ3Ø+×5Ñ5ð 6ó �
ñ "Ü)¨$°Ô5Ø& q™M�	Ü4Ø!×+Ñ+Ø!×)Ñ)Ø!×*Ñ*Ø!#Ø"/×"=Ñ"=ô÷ ‘)“+ð ô ˜i¬Ô2à )¨C¡°)·.±.Ñ @Ø )§¡Ø &Ø#,×#4Ñ#4Ø(Ÿ}™}Ø'0×'<Ñ'<Ø$-×$6Ñ$6ñ‘Cð !*¨C¡°)·.±.Ñ @Ø !Ø +Ø#,×#4Ñ#4Ø'0×'<Ñ'<ñ�Cñ #Ø.FÖG¨˜1˜c !™f™9ÐG�CÐGØˆÐˆØˆ
ùòW TùòR Hs   ÄJÄ"JÉ;Jc                 óF   — 	  | j                   |fi i |¥ddi¥¤Ž y#  Y yxY w)z!Is there a file at the given pathrŸ   FTrè   )r9   rZ   r‡   s      r;   ÚexistszHfFileSystem.exists<  s4   € ð	ØˆD�I‰I�dÑ?Ð> Ð>¨¸Ñ>Ò?Øøð	áús   ‚ œ c                 óT   — 	 | j                  |d¬«      d   dk(  S # t        $ r Y yw xY w)zIs this entry directory-like?Frî   r¨   r©   )rÒ   ÚOSErrorr   s     r;   r—   zHfFileSystem.isdirE  s6   € ð	Ø—9‘9˜T¨u�9Ó5°fÑ=ÀÑLÐLøÜò 	Ùð	ús   ‚ ›	'¦'c                 óD   — 	 | j                  |d¬«      d   dk(  S #  Y yxY w)zIs this entry file-like?Frî   r¨   r¬   rè   r   s     r;   ÚisfilezHfFileSystem.isfileL  s.   € ð	Ø—9‘9˜T¨u�9Ó5°fÑ=ÀÑGÐGøð	Ùús   ‚ ›c                 óô   — | j                  |«      }t        |j                  |j                  |j                  |j
                  | j                  ¬«      }| j                  |«      r|j                  ddd«      }|S )z"Get the HTTP URL of the given path)r(   r*   rI   z	/resolve/z/tree/r   )	rx   r   r)   r+   r(   r*   rI   r—   Úreplace)r9   rZ   r�   Úurls       r;   rþ   zHfFileSystem.urlS  sl   € à×)Ñ)¨$Ó/ˆÜØ×!Ñ!Ø×&Ñ&Ø#×-Ñ-Ø"×+Ñ+Ø—]‘]ô
ˆð �:‰:�dÔØ—+‘+˜k¨8°QÓ7ˆCØˆ
r=   c                 ó  •— |j                  d«      }t        |j                  «       «      dhz
  }t        |t        t
        f«      rt        |«      dkD  rt        ‰| �   ||f||dœ|¤ŽS t        |«      r|}n)| j                  |«      rt        j                  |d¬«       yt        |t        t        f«      r4t        j                  t        j                  j!                  |«      d¬«       d}|€t#        |d«      }d}|j%                  «       }	| j'                  ||¬	«      }
| j)                  ||¬	«      d
   }|j+                  |«       	 t-        t/        |
j0                  |
j2                  |
j4                  |
j6                  | j8                  ¬«      |||d| j:                  j=                  «       t        |t
        «      r|j>                  nd¬«       |jA                  |	«       |r|jC                  «        yy# |r|jC                  «        w w xY w)z!Copy single remote file to local.r*   r   )ÚcallbackÚoutfileT)Úexist_okNFÚwbrŠ   r®   ©r)   r*   Úfilenamer(   rI   )rþ   Ú	temp_fileÚdisplayed_filenameÚexpected_sizeÚresume_sizeÚheadersÚ	_tqdm_bar)"r5   ÚsetÚkeysro   r   r   r¢   rL   Úget_filer   r—   r·   ÚmakedirsrB   r   rZ   ÚdirnamerÝ   Útellrx   rÒ   Úset_sizer   r   r)   r*   r+   r(   rI   rO   Ú_build_hf_headersÚtqdmÚseekÚclose)r9   ÚrpathÚlpathr   r  r‡   r*   Úunhandled_kwargsÚ
close_fileÚinitial_posÚresolve_remote_pathr  rS   s               €r;   r  zHfFileSystem.get_filea  sÅ  ø€ à—:‘:˜jÓ)ˆÜ˜vŸ{™{›}Ó-°°Ñ<ÐÜ˜(¤\´<Ð$@ÔAÄSÐIYÓEZÐ]^ÒE^ô ‘7Ñ# E¨5Ð_¸8ÈWÑ_ÐX^Ñ_Ð_ô �eÔØ‰GØ�Z‰Z˜ÔÜ�K‰K˜¨Õ-Øä�eœc¤4˜[Ô)Ü�K‰KœŸ™Ÿ™¨Ó.¸Õ>ð ˆ
Øˆ?Ü˜5 $Ó'ˆGØˆJØ—l‘l“nˆð #×/Ñ/°ÀÐ/ÓIÐØŸ	™	 %°(˜	Ó;¸FÑCˆØ×Ñ˜-Ô(ð	 ÜÜØ/×7Ñ7Ø0×9Ñ9Ø0×=Ñ=Ø1×;Ñ;Ø!Ÿ]™]ôð "Ø#(Ø+ØØŸ	™	×3Ñ3Ó5Ü+5°hÄÔ+M˜(Ÿ-š-ÐSWõð �L‰L˜Ô%ñ Ø—‘•ð ø‰zØ—‘•ð ús   ÅBG1 Ç1Hc                 ó   — t        d«      ‚)z½A context within which files are committed together upon exit

        Requires the file class to implement `.commit()` and `.discard()`
        for the normal and exception cases.
        ú(Transactional commits are not supported.©rb   ©r9   s    r;   ÚtransactionzHfFileSystem.transaction•  s   € ô "Ð"LÓMÐMr=   c                 ó   — t        d«      ‚)z@Begin write transaction for deferring files, non-context versionr  r  r   s    r;   Ústart_transactionzHfFileSystem.start_transaction   s   € ô "Ð"LÓMÐMr=   rz   )rÚ   NN)FNN)TFN)FFNT)NFFFN)FN©r/   N)+r>   r?   r@   rA   Úroot_markerÚprotocolr   rB   r   ÚboolrM   r   Ú	ExceptionrY   r'   rx   r€   Úintrˆ   r�   r›   r   r
   r	   r¥   r¡   rÌ   rÎ   rÑ   rå   r   ré   rÒ   r÷   r—   rû   rþ   r   r  Úpropertyr!  r#  Ú__classcell__©rS   s   @r;   rF   rF   ?   s]  ø„ ñð> €KØ€Hð
 #'Ø(,ò	ð ˜3‘-ðð �T˜3 �_Ñ%õ	ð$TØðTØ'*ðTØ6>¸s±mðTà	ˆt�X˜iÑ(Ð(Ñ	)óTñ&Jt ð Jt°¸±ð JtÐIaó JtñX* X¨c¡]ð *¸dó *ð Ø"&Ø$(ñoàðoð ðoð ˜3‘-ð	oð
 ˜S‘Mðoð 
óoñ>˜ð > x°¡}ð >È$ó >ð   Ø"&Ø"&ñ>àð>ð ð>ð ˜3‘-ð	>ð
 ˜3‘-ð>ð 
ó>ð8 `dñ;Øð;Ø!%ð;Ø7;ð;ØOWÐX[É}ð;à	ˆe�C˜˜c 3˜h™Ð'Ñ(Ñ	)ó;ð,  ØØ"&Ø ñfàðfð ðfð ð	fð
 ˜3‘-ðfð ófôP7ô,ð #'ØØØØ"&ñ%7àð%7ð ˜3‘-ð%7ð ð	%7ð
 ð%7ð ð%7ð ˜3‘-ð%7ð 
ˆt�C‰y˜$˜s D¨¨c¨¡NÐ2Ñ3Ð3Ñ	4õ%7ñN'?˜Sð '?¨ð '?¸À¹ð '?Ð[_ó '?ðR+˜Sð +¨xó +ñK˜ð K tð K¸xÈ¹}ð KÐbfÐgjÐloÐgoÑbpó KòZòòð˜ð  ó ð /@Èö 2 ðh ñNó ðNöNr=   rF   c                   ó„   ‡ — e Zd Zddededee   fˆ fd„Zˆ fd„Zdeded	e	fd
„Z
dd„Zdded	dfd„Zdˆ fd„	Zd	efd„Zˆ xZS )rƒ   NÚfsrZ   r*   c                 ó‚  •— 	 |j                  ||¬«      | _        |j                  dd«      dk(  r0|j	                  | j                  j                  «       d¬«      | _        t        ‰| �   || j                  j                  «       fi |¤Ž |  y # t        $ r)}d|j                  dd«      v rt        |› d�«      |‚‚ d }~ww xY w)	NrŠ   Úwr�   r1   úB.
Make sure the repository and revision exist before writing data.rÚ   Frî   )	rx   r�   ÚFileNotFoundErrorr5   rÒ   r<   ÚdetailsrL   rM   )r9   r.  rZ   r*   r‡   rX   rS   s         €r;   rM   zHfFileSystemFile.__init__¨  sÀ   ø€ ð	Ø!#§¡°À Ó!IˆDÔð �:‰:�f˜dÓ# tÒ+ØŸ7™7 4×#5Ñ#5×#?Ñ#?Ó#AÈu˜7ÓUˆDŒLÜ‰Ñ˜˜T×/Ñ/×9Ñ9Ó;ÑF¸vÒFÚøô !ò 	Ø�f—j‘j ¨Ó,Ñ,Ü'Ø�cÐ\Ð]óàðð ûð	ús   ƒB Â	B>Â$B9Â9B>c                 ó:   •— t        | d«      sy t        ‰| �	  «       S ©Nr�   ©ÚhasattrrL   Ú__del__©r9   rS   s    €r;   r8  zHfFileSystemFile.__del__·  ó   ø€ Ü�t˜_Ô-àÜ‰w‰Ó Ð r=   ÚstartÚendr/   c                 ó¶  — dd|› d|dz
  › �i| j                   j                  j                  «       ¥}t        | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                   j                  ¬«      }t        d||dt        j                  ¬«      }t        |«       |j                  S )	NÚrangezbytes=ú-r   r  ÚGET©iô  iö  i÷  iø  )r
  Úretry_on_status_codesrU   )r.  rO   r  r   r�   r)   r*   r+   r(   rI   r%   r   ÚHF_HUB_DOWNLOAD_TIMEOUTr$   rä   )r9   r;  r<  r
  rþ   Úrs         r;   Ú_fetch_rangezHfFileSystemFile._fetch_range½  sÂ   € à�v˜e˜W A c¨A¡g YÐ/ð
à�g‰g�l‰l×,Ñ,Ó.ð
ˆô Ø×&Ñ&×.Ñ.Ø×'Ñ'×0Ñ0Ø×'Ñ'×4Ñ4Ø×(Ñ(×2Ñ2Ø—W‘W×%Ñ%ô
ˆô ØØØØ"6Ü×5Ñ5ô
ˆô 	˜AÔØ�y‰yÐr=   c                 ó<   — t        j                  dd¬«      | _        y )Nzhffs-F)ÚprefixÚdelete)ÚtempfileÚNamedTemporaryFiler  r   s    r;   Ú_initiate_uploadz!HfFileSystemFile._initiate_uploadÓ  s   € Ü!×4Ñ4¸GÈEÔRˆ�r=   Úfinalc                 óH  — | j                   j                  d«       | j                   j                  «       }| j                  j	                  |«       |�rO| j                  j                  «        | j                  j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                   j#                  d«      | j                   j#                  d«      ¬«       t%        j&                  | j                  j                  «       | j                  j)                  | j                  j+                  «       ¬«       y y )Nr   r‹   rŒ   rÛ   r�   )Úbufferr  rÞ   r  Úwriter  r.  rO   rß   r    r�   r+   r)   rJ   r(   r*   r‡   r5   r·   Úremover€   r<   )r9   rL  Úblocks      r;   Ú_upload_chunkzHfFileSystemFile._upload_chunkÖ  s"  € Ø�‰×Ñ˜ÔØ—‘× Ñ Ó"ˆØ�‰×Ñ˜UÔ#ÚØ�N‰N× Ñ Ô"Ø�G‰G�L‰L×$Ñ$Ø $§¡× 3Ñ 3Ø!×/Ñ/×<Ñ<Ø×*Ñ*×2Ñ2Ø—g‘g—m‘mØ×,Ñ,×6Ñ6Ø×+Ñ+×4Ñ4Ø#Ÿ{™{Ÿ™Ð/?Ó@Ø#'§;¡;§?¡?Ð3GÓ#Hð %ô 	ô �I‰I�d—n‘n×)Ñ)Ô*Ø�G‰G×$Ñ$Ø×'Ñ'×1Ñ1Ó3ð %õ ð r=   c                 ó  •— | j                   dk(  rX|�|dk(  rQ| j                  dk(  rB| j                  j                  | j                  dd¬«      5 }|j                  «       cddd«       S t        ‰| �  |«      S # 1 sw Y   ŒxY w)a)  Read remote file.

        If `length` is not provided or is -1, the entire file is downloaded and read. On POSIX systems and if
        `hf_transfer` is not enabled, the file is loaded in memory directly. Otherwise, the file is downloaded to a
        temporary file and read from there.
        rÚ   Nrë   r   )r‚   )r�   Úlocr.  rÝ   rZ   rÞ   rL   )r9   Úlengthrã   rS   s      €r;   rÞ   zHfFileSystemFile.readë  st   ø€ ð �9‰9˜Ò & .°F¸b²LÀdÇhÁhÐRSÂmØ—‘—‘˜dŸi™i¨¸!�Ó<ð  ÀØ—v‘v“x÷ ñ  ä‰w‰|˜FÓ#Ð#÷ ð  ús   ÁA8Á8Bc                 óL   — | j                   j                  | j                  «      S rz   ©r.  rþ   rZ   r   s    r;   rþ   zHfFileSystemFile.url÷  ó   € Ø�w‰w�{‰{˜4Ÿ9™9Ó%Ð%r=   rz   r$  )F©rë   )r>   r?   r@   rF   rB   r   rM   r8  r)  ÚbytesrE  rK  r'  rR  rÞ   rþ   r+  r,  s   @r;   rƒ   rƒ   §  sj   ø„ ñ˜<ð ¨sð ¸hÀs¹mõ ô!ð #ð ¨Cð °Eó ó,Sñ 4ð °Dó õ*
$ð&�S÷ &r=   rƒ   c                   ó„   ‡ — e Zd Z	 	 	 	 ddedededee   dedefˆ fd„Zdded	efd
„Zddefd„Z	defd„Z
ˆ fd„Zd„ Zˆ xZS )r†   r.  rZ   r�   r*   r‚   Ú
cache_typec                 óÌ  •— |dk7  rt        d|› �«      ‚|dk7  rt        d|› �«      ‚d|v rt        d|› d�«      ‚	 |j                  ||¬«      | _        | j                  j                  «       d dœ| _        t        ‰	| �   || j                  j                  «       f|||dœ|¤Ž d | _	        |  y # t        $ r-}d|j	                  d	d
«      v rt        |› d�«      |‚Y d }~ŒŠd }~ww xY w)Nr   z:HfFileSystemStreamFile only supports block_size=0 but got Únonez?HfFileSystemStreamFile only supports cache_type='none' but got r0  z;HfFileSystemStreamFile only supports reading but got mode='ú'rŠ   r�   r1   r1  )r    r®   ©r�   r‚   r\  )
r^   rx   r�   r2  r5   r<   r3  rL   rM   Úresponse)
r9   r.  rZ   r�   r*   r‚   r\  r‡   rX   rS   s
            €r;   rM   zHfFileSystemStreamFile.__init__ü  s  ø€ ð ˜Š?ÜÐYÐZdÐYeÐfÓgÐgØ˜ÒÜÐ^Ð_iÐ^jÐkÓlÐlØ�$‰;ÜÐZÐ[_ÐZ`Ð`aÐbÓcÐcð	Ø!#§¡°À Ó!IˆDÔð !%× 2Ñ 2× <Ñ <Ó >ÈÑMˆŒÜ‰ÑØ�×"Ñ"×,Ñ,Ó.ð	
Ø59ÀjÐ]gñ	
Økqò	
ð -1ˆŒÚøô !ò 	Ø�f—j‘j ¨Ó,Ñ,Ü'Ø�cÐ\Ð]óàðô -ûð	ús   ¼B- Â-	C#Â6#CÃC#rT  Úwhencec                 óX   — |dk(  r|dk(  ry || j                   k(  r|dk(  ry t        d«      ‚)Nr   r   zCannot seek streaming HF file)rT  r^   )r9   rT  rb  s      r;   r  zHfFileSystemStreamFile.seek  s2   € Ø�!Š8˜ !šØØ�$—(‘(Š?˜v¨š{ØÜÐ8Ó9Ð9r=   rU  c           	      óL  — |dk\  r|fnd}| j                   �$| j                   j                  j                  «       rÏt        | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  ¬«      }t        d|| j                  j                  j                  «       ddt        j                  ¬«      | _         t!        | j                   «       	  | j                   j                  j"                  |Ž }| xj(                  t+        |«      z  c_        |S # t$        $ �rK | j                   j'                  «        t        | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  ¬«      }t        d|dd	| j(                  z  i| j                  j                  j                  «       ¥ddt        j                  ¬«      | _         t!        | j                   «       	  | j                   j                  j"                  |Ž }n(# t$        $ r | j                   j'                  «        ‚ w xY wY �Œtw xY w)
Nr   rD   r  r@  rA  T)r
  rB  ÚstreamrU   ÚRangez	bytes=%d-)ra  ÚrawÚisclosedr   r�   r)   r*   r+   r(   r.  rI   r%   rO   r  r   rC  r$   rÞ   r(  r  rT  r¢   )r9   rU  Ú	read_argsrþ   r£   s        r;   rÞ   zHfFileSystemStreamFile.read"  s  € Ø!'¨1¢�V‘I°"ˆ	Ø�=‰=Ð  D§M¡M×$5Ñ$5×$>Ñ$>Ô$@ÜØ×*Ñ*×2Ñ2Ø×+Ñ+×4Ñ4Ø×+Ñ+×8Ñ8Ø×,Ñ,×6Ñ6ØŸ™×)Ñ)ôˆCô )ØØØŸ™Ÿ™×6Ñ6Ó8Ø&:ØÜ!×9Ñ9ôˆDŒMô   §¡Ô.ð	Ø(�$—-‘-×#Ñ#×(Ñ(¨)Ð4ˆCð4 	�Š”C˜“HÑ�Øˆ
øô5 ó 	Ø�M‰M×ÑÔ!ô Ø×*Ñ*×2Ñ2Ø×+Ñ+×4Ñ4Ø×+Ñ+×8Ñ8Ø×,Ñ,×6Ñ6ØŸ™×)Ñ)ôˆCô )ØØØ  +°·±Ñ"8Ð]¸D¿G¹G¿L¹L×<ZÑ<ZÓ<\Ð]Ø&:ØÜ!×9Ñ9ôˆDŒMô   §¡Ô.ðØ,�d—m‘m×'Ñ'×,Ñ,¨iÐ8‘øÜò Ø—‘×#Ñ#Ô%Øðúò ð+	ús+   Ä#E ÅDJ#É#I7É6J#É7%JÊJ#Ê"J#r/   c                 óL   — | j                   j                  | j                  «      S rz   rW  r   s    r;   rþ   zHfFileSystemStreamFile.urlS  rX  r=   c                 ó:   •— t        | d«      sy t        ‰| �	  «       S r5  r6  r9  s    €r;   r8  zHfFileSystemStreamFile.__del__V  r:  r=   c                 ó”   — t         | j                  | j                  | j                  | j                  | j
                  j                  ffS rz   )Úreopenr.  rZ   r�   Ú	blocksizeÚcacher    r   s    r;   Ú
__reduce__z!HfFileSystemStreamFile.__reduce__\  s0   € Ü˜Ÿ™ §¡¨D¯I©I°t·~±~ÀtÇzÁzÇÁÐWÐWÐWr=   )rÚ   Nr   r^  )r   rY  )r>   r?   r@   rF   rB   r   r)  rM   r  rÞ   rþ   r8  rp  r+  r,  s   @r;   r†   r†   û  s‹   ø„ ð
 Ø"&ØØ ñàðð ðð ð	ð
 ˜3‘-ðð ðð õñ>:˜ð : Só :ñ/˜3ó /ðb&�Só &ô!öXr=   r†   r*   r/   c                 óF   — t         j                  | «      r| S t        | «      S rz   )rh   rp   Ú
safe_quoterŠ   s    r;   r8   r8   `  s    € Ü2×8Ñ8¸ÔBˆ8Ð\Ì
ÐS[ÓH\Ð\r=   Úsc                 ó   — t        | d¬«      S )Nr1   )Úsafe)r   )rs  s    r;   rr  rr  d  s   € Ü�˜ÔÐr=   rZ   rr   c                 ó    — | }t        |t        «      r| › d�}n+t        |t        «      r| › d�}nt        |t        «      r| › d�}t	        |«      |‚)Nz (repository not found)z (revision not found)z (invalid repository id))ro   r   r   r#   r2  )rZ   rr   Úmsgs      r;   rm   rm   h  s\   € Ø
€CÜ�#Ô.Ô/Ø�Ð-Ð.‰Ü	�CÔ.Ô	/Ø�Ð+Ð,‰Ü	�CÔ*Ô	+Ø�Ð.Ð/ˆÜ
˜CÓ
  cÐ)r=   r.  r�   r‚   r\  c                 ó,   — | j                  ||||¬«      S )Nr`  )rÝ   )r.  rZ   r�   r‚   r\  s        r;   rm  rm  s  s   € Ø�7‰7�4˜d¨zÀjˆ7ÓQÐQr=   )Ú	predicatezParameters
        ----------
zArgs:
zReturns
        -------
zReturn:
z‡
_Docstring taken from [fsspec documentation](https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.z)._z

)PÚinspectr·   ÚrerI  Úcollectionsr   Údataclassesr   r   r   Ú	itertoolsr   Úpathlibr   Útypingr	   r
   r   r   r   r   r   Úurllib.parser   r   ÚfsspecÚfsspec.callbacksr   r   r   Úfsspec.utilsr   Úrequestsr   r1   r   Ú_commit_apir   r   Úerrorsr   r   r   Úfile_downloadr   r   Úhf_apir    r!   r"   Úutilsr#   r$   r%   ÚcompileÚVERBOSErh   r'   ÚAbstractFileSystemrF   ÚspecÚAbstractBufferedFilerƒ   r†   rB   r8   rr  r(  rm   r)  rm  Ú
getmembersÚ
isfunctionr    ÚfunctionÚgetattrÚparentrA   Ú
parent_docrý   rD   r=   r;   ú<module>r–     s  ðÛ Û 	Û 	Û Ý ß (Ý Ý Ý ß D× DÑ Dß 'ã ß JÑ JÝ #Ý å ß Cß VÑ Vß /ß 3Ñ 3÷ñ ð )˜bŸj™jðð
 ‡J�JóÐ ð ÷Bð Bó ðBô*e	N�6×,Ñ,ô e	NôPQ&�v—{‘{×7Ñ7ô Q&ôhbX˜VŸ[™[×=Ñ=ô bXðJ]˜Cð ] Có ]ð�#ð ˜#ó ð* ð *¨(°9Ñ*=ð *À(ó *ðRˆ|ð R 3ð R¨cð R¸sð RÐPSó Rð
 )�g×(Ñ(¨À×ASÑASÔTò 
�N€Dˆ(Ù�V×.Ñ.°°dÓ;€FØÑ˜fŸn™nÑ8Ø—^‘^ˆ
Ø×'Ñ'Ð(JÈIÓVˆ
Ø×'Ñ'Ð(DÀkÓRˆ
ðCð DHð  CIð  ILðMð ñ	ð
 ñð 	Õñ
r=   