§
    ïóÉj|B  ã                   óÞ  — d 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 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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!m"Z" d
dl#m$Z$ d
dl%m&Z&m'Z' d
dl(m)Z) erd
dl*m+Z+  e j,        e-¦  «        Z. ej/        d¦  «        Z0dZ1dddœZ2e G d„ d¦  «        ¦   «         Z3e"	 	 	 	 d;dee3         dee4         de4de4dee4         dee4         deee4e4f                  deee4                  deee5         ee5         ee4         f         fd„¦   «         Z6 G d „ d!e¦  «        Z7 G d"„ d#e¦  «        Z8	 	 	 d<d$d%d&edee4         deee4e4f                  dee4         ddfd'„Z9d(e5fd)„Z:d*e5fd+„Z;d,e5fd-„Z<d$d%d.e4ddfd/„Z=d$d%d0ed1e>d.e4ddf
d2„Z?d0ed3e3d1e>dee4         fd4„Z@d5ee         d6e4de8fd7„ZAd$d%d8ee4         d1e>dee         fd9„ZBd$d%d8ee4         d1e>dee         fd:„ZCdS )=z.Git LFS related type definitions and utilitiesé    N)Ú	dataclass)Úceil)Úgetsize)ÚPath)ÚTYPE_CHECKINGÚBinaryIOÚDictÚIterableÚListÚOptionalÚTupleÚ	TypedDict)Úunquote)Ú	constantsé   )Úbuild_hf_headersÚfix_hf_endpoint_in_urlÚget_sessionÚhf_raise_for_statusÚhttp_backoffÚloggingÚtqdmÚvalidate_hf_hub_args)ÚSliceFileObj)Úsha256Úsha_fileobj)Úis_tqdm_disabled)ÚCommitOperationAddz^[0-9a-f]{40}$zlfs-multipart-uploadzapplication/vnd.git-lfs+json)ÚAcceptzContent-Typec                   ó†   — e Zd ZU dZeed<   eed<   eed<   edefd„¦   «         Z	edefd„¦   «         Z
ed	efd
„¦   «         ZdS )Ú
UploadInfoad  
    Dataclass holding required information to determine whether a blob
    should be uploaded to the hub using the LFS protocol or the regular protocol

    Args:
        sha256 (`bytes`):
            SHA256 hash of the blob
        size (`int`):
            Size in bytes of the blob
        sample (`bytes`):
            First 512 bytes of the blob
    r   ÚsizeÚsampleÚpathc                 óî   — t          |¦  «        }t          j        |d¦  «        5 }|                     d¦  «        d d…         }t	          |¦  «        }d d d ¦  «         n# 1 swxY w Y    | |||¬¦  «        S )NÚrbé   ©r"   r   r#   )r   ÚioÚopenÚpeekr   )Úclsr$   r"   Úfiler#   Úshas         úv/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/huggingface_hub/lfs.pyÚ	from_pathzUploadInfo.from_pathO   s¯   € å�t‰}Œ}ˆÝŒW�T˜4Ñ Ô ð 	$ DØ—Y’Y˜s‘^”^ D S DÔ)ˆFÝ˜dÑ#Ô#ˆCð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð ˆs˜ S°Ð8Ñ8Ô8Ð8s   ¥-AÁA"Á%A"Údatac                 óŠ   — t          |¦  «                             ¦   «         } | t          |¦  «        |d d…         |¬¦  «        S )Nr'   )r"   r#   r   )r   ÚdigestÚlen)r,   r1   r.   s      r/   Ú
from_byteszUploadInfo.from_bytesW   s>   € å�T‰lŒl×!Ò!Ñ#Ô#ˆØˆs�˜D™	œ	¨$¨t°¨t¬*¸SÐAÑAÔAÐAó    Úfileobjc                 ó  — |                      d¦  «        }|                     dt          j        ¦  «         t	          |¦  «        }|                     ¦   «         }|                     dt          j        ¦  «          | |||¬¦  «        S )Nr'   r   r(   )ÚreadÚseekr)   ÚSEEK_SETr   Útell)r,   r7   r#   r.   r"   s        r/   Úfrom_fileobjzUploadInfo.from_fileobj\   sp   € à—’˜cÑ"Ô"ˆØ�Š�Q�œÑ$Ô$Ð$Ý˜'Ñ"Ô"ˆØ�|Š|‰~Œ~ˆØ�Š�Q�œÑ$Ô$Ð$Øˆs˜ S°Ð8Ñ8Ô8Ð8r6   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚbytesÚ__annotations__ÚintÚclassmethodÚstrr0   r5   r   r=   © r6   r/   r!   r!   <   sµ   € € € € € € ðð ð €M€M�MØ
€I€I�IØ€M€M�Màð9˜Sð 9ð 9ð 9ñ „[ð9ð ðB˜eð Bð Bð Bñ „[ðBð ð9 8ð 9ð 9ð 9ñ „[ð9ð 9ð 9r6   r!   Úupload_infosÚtokenÚ	repo_typeÚrepo_idÚrevisionÚendpointÚheadersÚ	transfersÚreturnc                 óž  — |�|nt           j        }d}|t           j        v rt           j        |         }|› d|› |› d�}	d|�|nddgd„ | D ¦   «         d	d
œ}
|�dt          |¦  «        i|
d<   i t          ¥t          |¬¦  «        ¥|pi ¥}t          ¦   «                              |	||
¬¦  «        }t          |¦  «         | 	                    ¦   «         }| 
                    dd¦  «        }t          |t          ¦  «        st          d¦  «        ‚| 
                    d¦  «        }t          |t          ¦  «        r|nd}d„ |D ¦   «         d„ |D ¦   «         |fS )aÍ  
    Requests the LFS batch endpoint to retrieve upload instructions

    Learn more: https://github.com/git-lfs/git-lfs/blob/main/docs/api/batch.md

    Args:
        upload_infos (`Iterable` of `UploadInfo`):
            `UploadInfo` for the files that are being uploaded, typically obtained
            from `CommitOperationAdd.upload_info`
        repo_type (`str`):
            Type of the repo to upload to: `"model"`, `"dataset"` or `"space"`.
        repo_id (`str`):
            A namespace (user or an organization) and a repo name separated
            by a `/`.
        revision (`str`, *optional*):
            The git revision to upload to.
        headers (`dict`, *optional*):
            Additional headers to include in the request
        transfers (`list`, *optional*):
            List of transfer methods to use. Defaults to ["basic", "multipart"].

    Returns:
        `LfsBatchInfo`: 3-tuple:
            - First element is the list of upload instructions from the server
            - Second element is a list of errors, if any
            - Third element is the chosen transfer adapter if provided by the server (e.g. "basic", "multipart", "xet")

    Raises:
        [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
            If an argument is invalid or the server response is malformed.
        [`HTTPError`](https://requests.readthedocs.io/en/latest/api/#requests.HTTPError)
            If the server returned an error.
    NÚ ú/z.git/info/lfs/objects/batchÚuploadÚbasicÚ	multipartc                 óP   — g | ]#}|j                              ¦   «         |j        d œ‘Œ$S )©Úoidr"   )r   Úhexr"   )Ú.0rT   s     r/   ú
<listcomp>z'post_lfs_batch_info.<locals>.<listcomp>š   sG   € ð 
ð 
ð 
ð
 ð ”}×(Ò(Ñ*Ô*Øœðð ð
ð 
ð 
r6   r   )Ú	operationrO   ÚobjectsÚ	hash_algoÚnameÚref)rI   ©rN   Újsonr^   zMalformed response from serverÚtransferc                 ó4   — g | ]}d |v¯t          |¦  «        ‘ŒS ©Úerror)Ú_validate_batch_actions©r[   Úobjs     r/   r\   z'post_lfs_batch_info.<locals>.<listcomp>·   s+   € ÐOÐOÐO¨#¸GÈ3Ð<NÐ<NÕ	  Ñ	%Ô	%Ð<NÐ<NÐ<Nr6   c                 ó4   — g | ]}d |v ¯t          |¦  «        ‘ŒS rf   )Ú_validate_batch_errorri   s     r/   r\   z'post_lfs_batch_info.<locals>.<listcomp>¸   s&   € ÐIÐIÐI¨¸'ÀS¸.¸.Õ	˜sÑ	#Ô	#¸.¸.¸.r6   )r   ÚENDPOINTÚREPO_TYPES_URL_PREFIXESr   ÚLFS_HEADERSr   r   Úpostr   rc   ÚgetÚ
isinstanceÚlistÚ
ValueErrorrF   )rH   rI   rJ   rK   rL   rM   rN   rO   Ú
url_prefixÚ	batch_urlÚpayloadÚrespÚ
batch_infor^   Úchosen_transfers                  r/   Úpost_lfs_batch_infor{   f   s¬  € ðX $Ð/ˆxˆxµYÔ5G€HØ€JØ•IÔ5Ð5Ð5ÝÔ6°yÔAˆ
ØÐNÐN˜jÐN¨'ÐNÐNÐN€IàØ"+Ð"7�Y�Y¸gÀ{Ð=Sð
ð 
ð
 'ð
ñ 
ô 
ð ðð €Gð ÐØ ¥'¨(Ñ"3Ô"3Ð4ˆ�‰ðÝ
ðå
 Ð
'Ñ
'Ô
'ðð ˆ=�bð€Gõ
 ‰=Œ=×Ò˜i°¸wÐÑGÔG€DÝ˜ÑÔÐØ—’‘”€Jà�nŠn˜Y¨Ñ-Ô-€GÝ�g�tÑ$Ô$ð ;ÝÐ9Ñ:Ô:Ð:à —n’n ZÑ0Ô0€OÝ)3°OÅSÑ)IÔ)IÐS�o�oÈt€Oð 	PÐO°ÐOÑOÔOØIÐI¨wÐIÑIÔIØðð r6   c                   ó$   — e Zd ZU eed<   eed<   dS )ÚPayloadPartTÚ
partNumberÚetagN)r>   r?   r@   rD   rC   rF   rG   r6   r/   r}   r}   ½   s"   € € € € € € Ø€O€O�OØ
€I€I�I€I€Ir6   r}   c                   ó4   — e Zd ZU dZeed<   ee         ed<   dS )ÚCompletionPayloadTz?Payload that will be sent to the Hub when uploading multi-part.rY   ÚpartsN)r>   r?   r@   rA   rF   rC   r   r}   rG   r6   r/   r�   r�   Â   s2   € € € € € € ØIÐIà	€H€H�HØ�ÔÐÐÑÐÐr6   r�   r]   r   Úlfs_batch_actionc                 óÚ  — t          |¦  «         |                     d¦  «        }|€%t                               d| j        › d�¦  «         dS |d         d         }t          |¦  «         |d                              d¦  «        }|�t          |¦  «         |                     di ¦  «        }|                     d¦  «        }	t          |d	         |¬
¦  «        }
|	�M	 t          |	¦  «        }	n(# t          t          f$ r t          d|	› d�¦  «        ‚w xY wt          | ||	|
¬¦  «         nt          | |
¬¦  «         |��t          |¦  «         t          |d	         |¦  «        }t          ¦   «                              |t          ||¬¦  «        | j        j                             ¦   «         | j        j        dœ¬¦  «        }t'          |¦  «         t                               | j        › d�¦  «         dS )aw  
    Handles uploading a given object to the Hub with the LFS protocol.

    Can be a No-op if the content of the file is already present on the hub large file storage.

    Args:
        operation (`CommitOperationAdd`):
            The add operation triggering this upload.
        lfs_batch_action (`dict`):
            Upload instructions from the LFS batch endpoint for this object. See [`~utils.lfs.post_lfs_batch_info`] for
            more details.
        headers (`dict`, *optional*):
            Headers to include in the request, including authentication and user agent headers.

    Raises:
        [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError)
            If `lfs_batch_action` is improperly formatted
        [`HTTPError`](https://requests.readthedocs.io/en/latest/api/#requests.HTTPError)
            If the upload resulted in an error
    ÚactionsNzContent of file z. is already present upstream - skipping uploadrT   ÚverifyÚheaderÚ
chunk_sizeÚhref)rM   zTMalformed response from LFS batch endpoint: `chunk_size` should be an integer. Got 'z'.)r]   r‡   rˆ   Ú
upload_url)r]   rŠ   )rI   rN   rX   rb   z: Upload successful)rh   rq   ÚloggerÚdebugÚpath_in_repoÚ_validate_lfs_actionr   rD   rt   Ú	TypeErrorÚ_upload_multi_partÚ_upload_single_partr   rp   r   Úupload_infor   rZ   r"   r   )r]   rƒ   rI   rN   rM   r…   Úupload_actionÚverify_actionr‡   rˆ   rŠ   Ú
verify_urlÚverify_resps                r/   Ú
lfs_uploadr—   É   s  € õ8 Ð,Ñ-Ô-Ð-Ø×"Ò" 9Ñ-Ô-€GØ€å�ŠÐn¨	Ô(>ÐnÐnÐnÑoÔoÐoØˆð % YÔ/°Ô9€MÝ˜Ñ'Ô'Ð'Ø$ YÔ/×3Ò3°HÑ=Ô=€MØÐ Ý˜]Ñ+Ô+Ð+ð ×Ò˜x¨Ñ,Ô,€FØ—’˜LÑ)Ô)€JÝ'¨°fÔ(=ÈÐQÑQÔQ€JØÐð	Ý˜Z™œˆJˆJøÝ�IÐ&ð 	ð 	ð 	ÝØuÐgqÐuÐuÐuñô ð ð	øøøõ 	 Y°vÈ*ÐakÐlÑlÔlÐlÐlå i¸JÐGÑGÔGÐGð Ð Ý˜]Ñ+Ô+Ð+Ý+¨M¸&Ô,AÀ8ÑLÔLˆ
Ý!‘m”m×(Ò(ØÝ$¨5¸'ÐBÑBÔBØ"Ô.Ô5×9Ò9Ñ;Ô;ÀYÔEZÔE_Ð`Ð`ð )ñ 
ô 
ˆõ
 	˜KÑ(Ô(Ð(Ý
‡L‚L�IÔ*Ð?Ð?Ð?Ñ@Ô@Ð@Ð@Ð@s   ÃC* Ã*%DÚ
lfs_actionc                 óî   — t          |                      d¦  «        t          ¦  «        r=|                      d¦  «        �7t          |                      d¦  «        t          ¦  «        st	          d¦  «        ‚| S )ú.validates response from the LFS batch endpointr‰   r‡   Nz"lfs_action is improperly formatted)rr   rq   rF   Údictrt   )r˜   s    r/   rŽ   rŽ     se   € õ 	�:—>’> &Ñ)Ô)­3Ñ/Ô/ð?à�^Š^˜HÑ%Ô%Ð-µ¸J¿NºNÈ8Ñ<TÔ<TÕVZÑ1[Ô1[Ð-åÐ=Ñ>Ô>Ð>ØÐr6   Úlfs_batch_actionsc                 ó¬  — t          |                      d¦  «        t          ¦  «        r(t          |                      d¦  «        t          ¦  «        st	          d¦  «        ‚|                      di ¦  «                             d¦  «        }|                      di ¦  «                             d¦  «        }|�t          |¦  «         |�t          |¦  «         | S )rš   rY   r"   z)lfs_batch_actions is improperly formattedr…   rT   r†   )rr   rq   rF   rD   rt   rŽ   )rœ   r“   r”   s      r/   rh   rh     sÊ   € åÐ(×,Ò,¨UÑ3Ô3µSÑ9Ô9ð F½jÐIZ×I^ÒI^Ð_eÑIfÔIfÕhkÑ>lÔ>lð FÝÐDÑEÔEÐEà%×)Ò)¨)°RÑ8Ô8×<Ò<¸XÑFÔF€MØ%×)Ò)¨)°RÑ8Ô8×<Ò<¸XÑFÔF€MØÐ Ý˜]Ñ+Ô+Ð+ØÐ Ý˜]Ñ+Ô+Ð+ØÐr6   Úlfs_batch_errorc                 óÖ  — t          |                      d¦  «        t          ¦  «        r(t          |                      d¦  «        t          ¦  «        st	          d¦  «        ‚|                      d¦  «        }t          |t
          ¦  «        rPt          |                     d¦  «        t          ¦  «        r(t          |                     d¦  «        t          ¦  «        st	          d¦  «        ‚| S )rš   rY   r"   z'lfs_batch_error is improperly formattedrg   ÚmessageÚcode)rr   rq   rF   rD   rt   r›   )rž   Ú
error_infos     r/   rl   rl   '  sÑ   € å�×*Ò*¨5Ñ1Ô1µ3Ñ7Ô7ð D½JÀ×GZÒGZÐ[aÑGbÔGbÕdgÑ<hÔ<hð DÝÐBÑCÔCÐCØ ×$Ò$ WÑ-Ô-€Jå�:�tÑ$Ô$ðDå�z—~’~ iÑ0Ô0µ#Ñ6Ô6ðDõ �z—~’~ fÑ-Ô-­sÑ3Ô3ðDõ
 ÐBÑCÔCÐCØÐr6   rŠ   c                 ó¦   — |                       d¬¦  «        5 }t          d||¬¦  «        }t          |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )a¤  
    Uploads `fileobj` as a single PUT HTTP request (basic LFS transfer protocol)

    Args:
        upload_url (`str`):
            The URL to PUT the file to.
        fileobj:
            The file-like object holding the data to upload.

    Returns: `requests.Response`

    Raises:
     [`HTTPError`](https://requests.readthedocs.io/en/latest/api/#requests.HTTPError)
        If the upload resulted in an error.
    T©Ú	with_tqdmÚPUT©r1   N)Úas_filer   r   )r]   rŠ   r7   Úresponses       r/   r‘   r‘   5  sž   € ð  
×	Ò	 TÐ	Ñ	*Ô	*ð &¨gå  z¸Ð@Ñ@Ô@ˆÝ˜HÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   —"AÁA
ÁA
r‡   rˆ   c                 ó  — t          || j        |¬¦  «        }t          j        }t          j        rJt	          | j        t          ¦  «        s0t	          | j        t          ¦  «        st          j	        d¦  «         d}|rt          | ||¬¦  «        nt          | ||¬¦  «        }t          ¦   «                              |t          || j        j                             ¦   «         ¦  «        t"          ¬¦  «        }t%          |¦  «         dS )z@
    Uploads file using HF multipart LFS transfer protocol.
    )r‡   r’   rˆ   zlhf_transfer is enabled but does not support uploading from bytes or BinaryIO, falling back to regular uploadF)r]   Úsorted_parts_urlsrˆ   )rc   rN   N)Ú_get_sorted_parts_urlsr’   r   ÚHF_HUB_ENABLE_HF_TRANSFERrr   Úpath_or_fileobjrF   r   ÚwarningsÚwarnÚ_upload_parts_hf_transferÚ_upload_parts_iterativelyr   rp   Ú_get_completion_payloadr   rZ   ro   r   )r]   r‡   rˆ   rŠ   r«   Úuse_hf_transferÚresponse_headersÚcompletion_ress           r/   r�   r�   K  s  € õ
 /°fÈ)ÔJ_ÐlvÐwÑwÔwÐõ  Ô9€OåÔ+ð	 å˜9Ô4µcÑ:Ô:ð	 õ ˜9Ô4µdÑ;Ô;ð	 õ
 	Œðñ	
ô 	
ð 	
ð  ˆð ð	xÕ!¨IÐIZÐgqÐrÑrÔrÐrå&°ÐN_ÐlvÐwÑwÔwð õ !‘]”]×'Ò'ØÝ$Ð%5°yÔ7LÔ7S×7WÒ7WÑ7YÔ7YÑZÔZÝð (ñ ô €Nõ
 ˜Ñ'Ô'Ð'Ð'Ð'r6   r’   c                 óè   — d„ t          d„ |                      ¦   «         D ¦   «         d„ ¬¦  «        D ¦   «         }t          |¦  «        }|t          |j        |z  ¦  «        k    rt          d¦  «        ‚|S )Nc                 ó   — g | ]\  }}|‘ŒS rG   rG   )r[   Ú_rŠ   s      r/   r\   z*_get_sorted_parts_urls.<locals>.<listcomp>o  s,   € ð 
ð 
ð 
áˆAˆzð 	ð
ð 
ð 
r6   c                 ó†   — g | ]>\  }}|                      ¦   «         r%t          |¦  «        d k    ¯,t          |d¦  «        |f‘Œ?S )r   é
   )Úisdigitr4   rD   )r[   Úpart_numrŠ   s      r/   r\   z*_get_sorted_parts_urls.<locals>.<listcomp>r  s\   € ð ð ð á(�H˜jØ×#Ò#Ñ%Ô%ðõ +.¨h©-¬-¸!Ò*;Ð*;õ �X˜rÑ"Ô" JÐ/à*;Ð*;Ð*;r6   c                 ó   — | d         S )Nr   rG   )Úts    r/   ú<lambda>z(_get_sorted_parts_urls.<locals>.<lambda>w  s
   € ˜!˜Aœ$€ r6   )Úkeyz0Invalid server response to upload large LFS file)ÚsortedÚitemsr4   r   r"   rt   )r‡   r’   rˆ   Úsorted_part_upload_urlsÚ	num_partss        r/   r¬   r¬   n  s›   € ð
ð 
å#ðð à,2¯LªL©N¬Nðñ ô ð
 �ð
ñ 
ô 
ð
ñ 
ô 
Ðõ Ð+Ñ,Ô,€IØ•D˜Ô)¨JÑ6Ñ7Ô7Ò7Ð7ÝÐKÑLÔLÐLØ"Ð"r6   rµ   rY   c                 óÚ   — g }t          | ¦  «        D ]U\  }}|                     d¦  «        }|�|dk    rt          d|› d|dz   › �¦  «        ‚|                     |dz   |dœ¦  «         ŒV||dœS )Nr   rR   zInvalid etag (`z`) returned for part r   )r~   r   )rY   r‚   )Ú	enumeraterq   rt   Úappend)rµ   rY   r‚   Úpart_numberr‡   r   s         r/   r³   r³   €  s¥   € Ø "€EÝ(Ð)9Ñ:Ô:ð 	
ð 	
Ñˆ�VØ�zŠz˜&Ñ!Ô!ˆØˆ<˜4 2š:˜:ÝÐ[¨tÐ[Ð[È+ÐXYÉ/Ð[Ð[Ñ\Ô\Ð\Ø�Šà)¨A™oØðð ñ	
ô 	
ð 	
ð 	
ð  Ð'Ð'Ð'r6   r«   c                 ób  — g }|                       d¬¦  «        5 }t          |¦  «        D ]m\  }}t          |||z  |¬¦  «        5 }t          d||¬¦  «        }t	          |¦  «         |                     |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   Œn	 d d d ¦  «         n# 1 swxY w Y   |S )NTr¤   )Ú	seek_fromÚ
read_limitr¦   r§   )r¨   rÇ   r   r   r   rÈ   rN   )	r]   r«   rˆ   rN   r7   Úpart_idxÚpart_upload_urlÚfileobj_sliceÚpart_upload_ress	            r/   r²   r²   �  sK  € ð €GØ	×	Ò	 TÐ	Ñ	*Ô	*ð 
8¨gÝ)2Ð3DÑ)EÔ)Eð 		8ð 		8Ñ%ˆH�oÝØØ$ xÑ/Ø%ðñ ô ð 8ð å".¨u°oÈMÐ"ZÑ"ZÔ"Z�Ý# OÑ4Ô4Ð4Ø—’˜Ô6Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8øð		8ð
8ð 
8ð 
8ñ 
8ô 
8ð 
8ð 
8ð 
8ð 
8ð 
8ð 
8øøøð 
8ð 
8ð 
8ð 
8ð €Ns5   ™*B$Á<BÁ?B$ÂBÂB$ÂBÂB$Â$B(Â+B(c                 ót  — 	 ddl m} n# t          $ r t          d¦  «        ‚w xY wdt	          j        |¦  «        j        v }|st          j        d¦  «         | j	        j
        }| j        }t          |¦  «        dk    rd|dd …         › �}t          d	d
|d|t          t                               ¦   «         ¦  «        d¬¦  «        5 }	  |d| j        ||ddddœ|r	d|j        ini ¤Ž}n"# t&          $ r}	t)          d¦  «        |	‚d }	~	ww xY w|s|                     |¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Nr   )Úmultipart_uploadzªFast uploading using 'hf_transfer' is enabled (HF_HUB_ENABLE_HF_TRANSFER=1) but 'hf_transfer' package is not available in your environment. Try `pip install hf_transfer`.Úcallbackz”You are using an outdated version of `hf_transfer`. Consider upgrading to latest version to enable progress bars using `pip install -U hf_transfer`.é(   u   (â€¦)iØÿÿÿÚBTzhuggingface_hub.lfs_upload)ÚunitÚ
unit_scaleÚtotalÚinitialÚdescÚdisabler`   é€   é   é   )Ú	file_pathÚ
parts_urlsrˆ   Ú	max_filesÚparallel_failuresÚmax_retriesz~An error occurred while uploading using `hf_transfer`. Consider disabling HF_HUB_ENABLE_HF_TRANSFER for better error handling.rG   )Úhf_transferrÒ   ÚImportErrorrt   ÚinspectÚ	signatureÚ
parametersr¯   r°   r’   r"   r�   r4   r   r   r‹   ÚgetEffectiveLevelr®   ÚupdateÚ	ExceptionÚRuntimeError)
r]   r«   rˆ   rÒ   Úsupports_callbackrØ   rÚ   ÚprogressÚoutputÚes
             r/   r±   r±   ¡  s  € ð
Ø0Ð0Ð0Ð0Ð0Ð0Ð0øÝð 
ð 
ð 
ÝðQñ
ô 
ð 	
ð
øøøð #¥gÔ&7Ð8HÑ&IÔ&IÔ&TÐTÐØð 
ÝŒð cñ	
ô 	
ð 	
ð Ô!Ô&€EØÔ!€DÝ
ˆ4�y„y�2‚~€~Ø#�t˜C˜D˜D”zÐ#Ð#ˆå	ØØØØØÝ ¥×!9Ò!9Ñ!;Ô!;Ñ<Ô<Ø)ð
ñ 
ô 
ð ð 
ð	Ø%Ð%ð Ø#Ô3Ø,Ø%ØØ"%Øðð ð 5FÐM�J ¤Ð0Ð0È2ðð ˆFˆFøõ ð 	ð 	ð 	Ýð*ñô ð ðøøøøð	øøøð
 !ð 	#Ø�OŠO˜EÑ"Ô"Ð"Øð5ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s>   ‚	 ‰#ÃD-ÃC&Ã%D-Ã&
DÃ0D Ä DÄD-Ä-D1Ä4D1)NNNN)NNN)DrA   ræ   r)   Úrer¯   Údataclassesr   Úmathr   Úos.pathr   Úpathlibr   Útypingr   r   r	   r
   r   r   r   r   Úurllib.parser   Úhuggingface_hubr   Úutilsr   r   r   r   r   r   r   r   Ú
utils._lfsr   Ú	utils.shar   r   Ú
utils.tqdmr   Ú_commit_apir   Ú
get_loggerr>   r‹   ÚcompileÚ	OID_REGEXÚLFS_MULTIPART_UPLOAD_COMMANDro   r!   rF   r›   r{   r}   r�   r—   rŽ   rh   rl   r‘   rD   r�   r¬   r³   r²   r±   rG   r6   r/   ú<module>r     s\  ðð 5Ð 4à €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ø  Ð  Ð  Ð  Ð  Ð  à %Ð %Ð %Ð %Ð %Ð %ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð %Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (ð ð 0Ø/Ð/Ð/Ð/Ð/Ð/à	ˆÔ	˜HÑ	%Ô	%€àˆBŒJÐ(Ñ)Ô)€	à5Ð ð -Ø2ðð €ð ð&9ð &9ð &9ð &9ð &9ñ &9ô &9ñ „ð&9ðR ð #Ø"Ø(,Ø%)ðSð SØ˜:Ô&ðSà�CŒ=ðSð ðSð ð	Sð
 �sŒmðSð �sŒmðSð �d˜3 ˜8”nÔ%ðSð ˜˜Sœ	Ô"ðSð ˆ4�Œ:�t˜D”z 8¨C¤=Ð0Ô1ðSð Sð Sñ ÔðSðlð ð ð ð �9ñ ô ð ð
ð ð ð ð ˜ñ ô ð ð  Ø(,Ø"ðCAð CAØ#ðCAàðCAð �CŒ=ðCAð �d˜3 ˜8”nÔ%ð	CAð
 �sŒmðCAð 
ðCAð CAð CAð CAðL Tð ð ð ð ð¨tð ð ð ð ð¨4ð ð ð ð ð&Ð#7ð &ÀSð &ÈTð &ð &ð &ð &ð, (Ð"6ð  (Àð  (ÐRUð  (Ðcfð  (Ðkoð  (ð  (ð  (ð  (ðF# 4ð #°jð #Ècð #ÐVZÐ[^ÔV_ð #ð #ð #ð #ð$(¨d°4¬jð (¸sð (ÐGYð (ð (ð (ð (ðØ#ðØ8<¸S¼	ðØORðà	ˆ$„Zðð ð ð ð$1Ø#ð1Ø8<¸S¼	ð1ØORð1à	ˆ$„Zð1ð 1ð 1ð 1ð 1ð 1r6   