§
    }ŠtjBq  ã                   ó2  — d Z 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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 ddlmZ dd	lmZmZ dd
lmZmZmZmZmZ erddlm Z m!Z!  ej"        e#¦  «        Z$dZ%g d¢Z&dZ'dZ(dZ)dZ* e+¦   «         Z,dZ-dZ.dZ/e-fde0de0de1de2fd„Z3de0de2fd„Z4 G d„ d¦  «        Z5 G d„ d¦  «        Z6 G d „ d!¦  «        Z7 G d"„ d#¦  «        Z8dddd$dd%œd&d'd(e2d)e2d*e9e         d+e9e         d,e2d-e2dz  d.e2e:z  dz  d/e2dz  d0e:d1e2dz  dd2fd3„Z;dS )4ac  Streamed, multi-commit upload of a folder on top of the Xet upload protocol.

How it works:

- The **coordinator** (caller's thread) walks the list of files and asks the Hub, 256 files at a
  time, what each file is (regular git blob, xet file, ignored). Regular files are accumulated
  directly; xet files are registered into a `XetSession` upload-commit, which chunks, deduplicates,
  retries and uploads them in the background while the coordinator keeps going. No Python-side
  sha256 computation: `hf_xet` computes it during chunking (single read pass over each file).
- Whenever enough files have accumulated (adaptive batch size), the batch is handed over to the
  **committer** thread which joins the xet uploads, drops unchanged files, and creates a git
  commit for the batch. While a batch is being committed, the coordinator is already uploading
  the next one.
- Interrupted uploads are resumable by simply re-running the same call: already-committed files
  are dropped (no-op detection against the remote oid) and already-uploaded chunks are
  deduplicated by the xet storage backend, transferring ~0 bytes.
é    N)ÚTYPE_CHECKINGÚAnyÚCallable)Úquoteé   )Ú	constants)ÚCommitOperationAddÚCommitOperationDeleteÚ_fetch_upload_modesÚ_send_commitÚ_warn_on_overwriting_operations)ÚRepositoryNotFoundError)Úare_progress_bars_disabledÚlogging)ÚXetTokenTypeÚabort_xet_sessionÚget_xet_sessionÚxet_connection_info_refresh_urlÚxet_headers_without_auth)Ú
CommitInfoÚHfApié   )
é   é2   éK   éd   é}   éÈ   éú   i�  iX  éè  é   g      D@g     Àr@i  @r   ç      à?g      >@ÚcurrentÚtotalÚwidthÚreturnc                 óz   — |dk    rd|z  S t          t          | |z  d¦  «        |z  ¦  «        }d|z  d||z
  z  z   S )Nr   u   â–‘ç      ð?u   â–ˆ)ÚintÚmin)r#   r$   r%   Úfilleds       ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/huggingface_hub/_upload_pipeline.pyÚ_barr-   U   sM   € Ø�‚z€zØ�u‰}ÐÝ•�W˜u‘_ cÑ*Ô*¨UÑ2Ñ3Ô3€FØ�6‰>˜E U¨V¡^Ñ4Ñ4Ð4ó    Únc                 ó–   — dD ]A}t          | ¦  «        dk     r'| dk     r	| d›|› �c S | dk     r	| d›|› �c S | d›|› �c S | dz  } ŒB| d›d�S )	N)ÚBÚkBÚMBÚGBÚTBr    é
   z.2fr   ú.1fz.0fÚPB)Úabs)r/   Úunits     r,   Ú_format_bytesr;   \   s™   € Ø-ð ð ˆÝˆq‰6Œ6�DŠ=ˆ=Ø�2ŠvˆvØÐ'Ð' Ð'Ð'Ð'Ð'Ð'Ø�S’�ØÐ'Ð' Ð'Ð'Ð'Ð'Ð'ØÐ#Ð#˜TÐ#Ð#Ð#Ð#Ð#Ø	ˆT‰	ˆˆØˆ<ˆ<ˆ<ˆ<Ðr.   c                   óø   — e Zd ZdZdZddededdfd„Zdd	„Zdd
„Z	deddfd„Z
deddfd„Zdeddfd„Zdee         ddfd„Zdeddfd„Zdeddfd„Zdd„Zdd„Zdd„Zdd„Zdefd„Zdefd„Zdefd„Zdefd„ZdS ) Ú_LiveDisplayuR  Three-line live progress display on stderr::

        Preparing   â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆ  11,100 / 11,100 âœ“
        Uploading   â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–‘â–‘â–‘â–‘â–‘â–‘  580 / 603 files  3.8GB Â· 19.7MB/s
        Committing  â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–‘â–‘  10,800 / 11,100  14 commits

    A small renderer thread redraws the three lines in-place every ~0.5 s on a TTY
    (worker threads only update counters under a lock). When stderr is not a TTY,
    it falls back to a periodic ``logger.info`` summary instead.

    Disabling progress bars (e.g. agent output mode) only turns off the TTY renderer:
    the non-TTY log summaries are gated by the logger verbosity alone, so consumers
    tailing stderr during a long upload still see periodic progress.
    é   TÚtotal_filesÚenabledr&   Nc                 óÞ  — || _         |ot          j                             ¦   «         | _        | j        p#t
                               t          j        ¦  «        | _	        t          j        ¦   «         | _        d| _        t          j        ¦   «         | _        d | _        d| _        d| _        d| _        t)          ¦   «         | _        d| _        d| _        d| _        d| _        d| _        d | _        d S )NFr   ç        )Ú_totalÚsysÚstderrÚisattyÚ_ttyÚloggerÚisEnabledForr   ÚINFOÚ_activeÚ	threadingÚLockÚ_lockÚ_drawnÚEventÚ_stop_eventÚ_threadÚ	_preparedÚ_ignoredÚ
_xet_totalÚsetÚ	_xet_doneÚ
_committedÚ_nb_commitsÚ
_xet_bytesÚ
_speed_emaÚ_prev_bytesÚ
_prev_time)Úselfr?   r@   s      r,   Ú__init__z_LiveDisplay.__init__z   sÂ   € Ø!ˆŒØÐ3¥¤
× 1Ò 1Ñ 3Ô 3ˆŒ	Ø”yÐE¥F×$7Ò$7½¼Ñ$EÔ$EˆŒÝ”^Ñ%Ô%ˆŒ
ØˆŒÝ$œ?Ñ,Ô,ˆÔØ04ˆŒð ˆŒØˆŒØˆŒÝ#&¡5¤5ˆŒØˆŒØˆÔð ˆŒØˆŒØˆÔØ(,ˆŒˆˆr.   c                 ór  — | j         sd S | j        rHt          j                             d| j        d›d�¦  «         t          j                             ¦   «          n$t                               d| j        d›d�¦  «         t          j
        | j        dd¬¦  «        | _        | j                             ¦   «          d S )NzFound ú,z files to upload
z files to uploadzhf-upload-displayT©ÚtargetÚnameÚdaemon)rK   rG   rD   rE   ÚwriterC   ÚflushrH   ÚinforL   ÚThreadÚ_render_looprR   Ústart©r^   s    r,   rk   z_LiveDisplay.start“   sµ   € ØŒ|ð 	ØˆFØŒ9ð 	BÝŒJ×ÒÐG d¤kÐGÐGÐGÐGÑHÔHÐHÝŒJ×ÒÑÔÐÐå�KŠKÐ@ ¤Ð@Ð@Ð@Ð@ÑAÔAÐAÝ Ô'¨tÔ/@ÐGZÐcgÐhÑhÔhˆŒØŒ×ÒÑÔÐÐÐr.   c                 óò   — | j         �2| j                             ¦   «          | j                              ¦   «          | j        r6| j        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S ©N)rR   rQ   rV   ÚjoinrG   rN   Ú_redrawrl   s    r,   Úclosez_LiveDisplay.closež   sÀ   € ØŒ<Ð#ØÔ× Ò Ñ"Ô"Ð"ØŒL×ÒÑÔÐØŒ9ð 	Ø”ð ð Ø—’‘”�ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð	ð 	s   ÁA*Á*A.Á1A.r/   c                 óf   — | j         5  | xj        |z  c_        d d d ¦  «         d S # 1 swxY w Y   d S rn   )rN   rS   ©r^   r/   s     r,   Únotify_preparedz_LiveDisplay.notify_prepared¨   s~   € ØŒZð 	 ð 	 ØˆNŒN˜aÑˆNŒNð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ó   ˆ&¦*­*c                 óf   — | j         5  | xj        |z  c_        d d d ¦  «         d S # 1 swxY w Y   d S rn   )rN   rT   rs   s     r,   Únotify_ignoredz_LiveDisplay.notify_ignored¬   s~   € ØŒZð 	ð 	ØˆMŒM˜QÑˆMŒMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ru   c                 óf   — | j         5  | xj        |z  c_        d d d ¦  «         d S # 1 swxY w Y   d S rn   )rN   rU   rs   s     r,   Únotify_xet_registeredz"_LiveDisplay.notify_xet_registered°   ó~   € ØŒZð 	!ð 	!ØˆOŒO˜qÑ ˆOŒOð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ru   Únamesc                 óz   — | j         5  | j                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rn   )rN   rW   Úupdate)r^   r{   s     r,   Únotify_xet_uploadedz _LiveDisplay.notify_xet_uploaded´   s„   € ØŒZð 	)ð 	)ØŒN×!Ò! %Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆ0°4·4c                 óf   — | j         5  | xj        |z  c_        d d d ¦  «         d S # 1 swxY w Y   d S rn   )rN   rX   rs   s     r,   Únotify_skippedz_LiveDisplay.notify_skipped¸   rz   ru   Ún_filesc                 ó†   — | j         5  | xj        |z  c_        | xj        dz  c_        d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )rN   rX   rY   )r^   r�   s     r,   Únotify_commitz_LiveDisplay.notify_commit¼   s’   € ØŒZð 	"ð 	"ØˆOŒO˜wÑ&ˆOŒOØÐÔ Ñ!ÐÔð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ˆ!6¶:½:úCallable | Nonec                 óN   ‡ ‡— ‰ j         sdS dŠdt          dt          ddfˆˆ fd„}|S )aS  Progress callback for one ``new_upload_commit``.

        The byte counters in ``group_report`` are cumulative *per upload-commit* and several
        upload-commits can be in flight at once (one finalizing, one filling), so each commit
        gets its own closure tracking its own previous value; increments are summed globally.
        Nr   Úgroup_reportÚitem_reportsr&   c                 ó@  •— ‰j         5  | j        }‰xj        t          d|‰z
  ¦  «        z  c_        |Š|                     ¦   «         D ]<}|j        dk    r/|j        |j        k    r‰j                             |j	        ¦  «         Œ=	 d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   )
rN   Útotal_transfer_bytes_completedrZ   ÚmaxÚvaluesÚtotal_bytesÚbytes_completedrW   ÚaddÚ	item_name)r†   r‡   Ú	completedÚitemÚprevr^   s       €€r,   Úcallbackz/_LiveDisplay.new_xet_callback.<locals>.callbackÌ   sò   ø€ à”ð ;ð ;Ø(ÔG�	Ø�”¥3 q¨)°dÑ*:Ñ#;Ô#;Ñ;�”Ø �Ø(×/Ò/Ñ1Ô1ð ;ð ;�DØÔ'¨!Ò+Ð+°Ô0DÈÔHXÒ0XÐ0XØœ×*Ò*¨4¬>Ñ:Ô:Ð:øð;ð	;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   ‰A<BÂBÂB)rK   r   )r^   r”   r“   s   ` @r,   Únew_xet_callbackz_LiveDisplay.new_xet_callbackÁ   sY   øø€ ð Œ|ð 	Ø�4Øˆð	;¥3ð 	;µcð 	;¸dð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð ˆr.   c                 óä  — d}| j                              t          ¦  «        sÎ| j        5  |                      ¦   «          | j        r|                      ¦   «          n^t          j        ¦   «         |z
  t          k    r?t                               |                      ¦   «         ¦  «         t          j        ¦   «         }d d d ¦  «         n# 1 swxY w Y   | j                              t          ¦  «        ¯Ìd S d S )NrB   )rQ   ÚwaitÚ_REFRESH_INTERVALrN   Ú_update_speedrG   rp   ÚtimeÚ	monotonicÚ_NON_TTY_LOG_INTERVALrH   rh   Ú_summary)r^   Úlast_logs     r,   rj   z_LiveDisplay._render_loopÚ   s  € ØˆØÔ"×'Ò'Õ(9Ñ:Ô:ð 	0Ø”ð 0ð 0Ø×"Ò"Ñ$Ô$Ð$Ø”9ð 0Ø—L’L‘N”N�N�NÝ”^Ñ%Ô%¨Ñ0Õ4IÒIÐIÝ—K’K §¢¡¤Ñ0Ô0Ð0Ý#œ~Ñ/Ô/�Hð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð Ô"×'Ò'Õ(9Ñ:Ô:ð 	0ð 	0ð 	0ð 	0ð 	0s   ©BCÃCÃCc                 óî   — t          j        ¦   «         }| j        �G|| j        k    r<| j        | j        z
  || j        z
  z  }| j        dk    r|nd|z  d| j        z  z   | _        || _        | j        | _        d S )Nr   g333333Ó?gffffffæ?)rš   r›   r]   rZ   r\   r[   )r^   ÚnowÚrates      r,   r™   z_LiveDisplay._update_speedå   s~   € ÝŒnÑÔˆØŒ?Ð&¨3°´Ò+@Ð+@Ø”O dÔ&6Ñ6¸3ÀÄÑ;PÑQˆDØ&*¤o¸Ò&:Ð&:˜d˜dÀÀdÁ
ÈSÐSWÔSbÑMbÑ@bˆDŒOØˆŒØœ?ˆÔÐÐr.   c                 óð  — | j         r(t          j                             d| j        › d�¦  «         t          j        ¦   «         j        }|                      ¦   «         |  	                    ¦   «         |  
                    ¦   «         fD ]M}t          |¦  «        |dz
  k    r|d |dz
  …         dz   n|}t          j                             d|› d�¦  «         ŒNt          j                             ¦   «          d| _         d S )	Nz[ÚAr   é   z...z[Kú
T)rO   rD   rE   rf   Ú_N_LINESÚshutilÚget_terminal_sizeÚcolumnsÚ_line_preparingÚ_line_uploadingÚ_line_committingÚlenrg   )r^   r%   ÚlineÚ	truncateds       r,   rp   z_LiveDisplay._redrawí   sð   € ØŒ;ð 	7ÝŒJ×ÒÐ5 T¤]Ð5Ð5Ð5Ñ6Ô6Ð6ÝÔ(Ñ*Ô*Ô2ˆØ×)Ò)Ñ+Ô+¨T×-AÒ-AÑ-CÔ-CÀT×EZÒEZÑE\ÔE\Ð]ð 	7ð 	7ˆDÝ58¸±Y´YÀÈÁÒ5JÐ5J˜˜[˜u q™y˜[Ô)¨EÑ1Ð1ÐPTˆIÝŒJ×ÒÐ5¨	Ð5Ð5Ð5Ñ6Ô6Ð6Ð6ÝŒ
×ÒÑÔÐØˆŒˆˆr.   c                 óŒ   — | j         | j        k    rdnd}dt          | j         | j        ¦  «        › d| j         d›d| j        d›|› �S )Nõ    âœ“Ú z  Preparing   ú  ra   ú / )rS   rC   r-   )r^   Údones     r,   rª   z_LiveDisplay._line_preparing÷   sW   € Øœ¨4¬;Ò6Ð6ˆvˆv¸BˆØo¥ T¤^°T´[Ñ AÔ AÐoÐoÀTÄ^ÐoÐoÐoÐZ^ÔZeÐoÐoÐimÐoÐoÐor.   c           	      óH  — | j         dk    r6| j        | j        k    rt          dd¦  «        nt          dd¦  «        }d|› d�S t	          | j        ¦  «        }g }| j        dk    r'|                     t          | j        ¦  «        ¦  «         | j	        dk    r*|                     t          | j	        ¦  «        › d�¦  «         |rdd 
                    |¦  «        › �nd}| j        | j        k    r|| j         k    rd	nd}dt          || j         ¦  «        › d|d
›d| j         d
›d|› |› �	S )Nr   r   z  Uploading   z  -z/sr³   u    Â· r²   r±   ra   r´   z files)rU   rS   rC   r-   r­   rW   rZ   Úappendr;   r[   ro   )r^   ÚbarÚn_doneÚpartsÚextrarµ   s         r,   r«   z_LiveDisplay._line_uploadingû   s?  € ØŒ?˜aÒÐØ $¤°$´+Ò =Ð =•$�q˜!‘*”*�*Å4ÈÈ1Á:Ä:ˆCØ, CÐ,Ð,Ð,Ð,Ý�T”^Ñ$Ô$ˆØˆØŒ?˜QÒÐØ�LŠL� t¤Ñ7Ô7Ñ8Ô8Ð8ØŒ?˜QÒÐØ�LŠL�M¨$¬/Ñ:Ô:Ð>Ð>Ð>Ñ?Ô?Ð?Ø-2Ð:Ð)�V—[’[ Ñ'Ô'Ð)Ð)Ð)¸ˆØœ¨4¬;Ò6Ð6¸6ÀTÄ_Ò;TÐ;TˆvˆvÐZ\ˆØt¥ V¨T¬_Ñ =Ô =ÐtÐtÀÐtÐtÐtÈdÌoÐtÐtÐtÐglÐtÐnrÐtÐtÐtr.   c                 óÔ   — | j         | j        z
  }| j        dk    rd| j        › d�nd}| j        |cxk    rdk    rn ndnd}dt	          | j        |¦  «        › d| j        d›d	|d›|› |› �S )
Nr   r³   z commitsr²   r   r±   z  Committing  ra   r´   )rC   rT   rY   rX   r-   )r^   Ú	effectiveÚcommits_strrµ   s       r,   r¬   z_LiveDisplay._line_committing	  s¤   € Ø”K $¤-Ñ/ˆ	Ø9=Ô9IÈAÒ9MÐ9MÐ5˜4Ô+Ð5Ð5Ð5Ð5ÐSUˆØœ¨IÐ9Ð9Ò9Ð9¸Ò9Ð9Ð9Ð9Ð9ˆvˆv¸rˆàw�T $¤/°9Ñ=Ô=ÐwÐwÀÄÐwÐwÐwÐW`ÐwÐwÐdoÐwÐquÐwÐwð	
r.   c                 ó¶   — d| j         d›d| j        d›dt          | j        ¦  «        d›d| j        d›dt          | j        ¦  «        › d| j        d›d| j        › d�S )	NzUploading... ra   ú/z files checked, z uploaded (z transferred), z committed in z
 commit(s))	rS   rC   r­   rW   rU   r;   rZ   rX   rY   rl   s    r,   r�   z_LiveDisplay._summary  sª   € ðM˜DœNÐNð Mð M¨t¬{ÐNð Mð MÝ�4”>Ñ"Ô"ÐtðMð MØ'+¤ÐtðMð MÝERÐSWÔSbÑEcÔEcðMð MàŒÐLðMð Mà04Ô0@ðMð Mð Mð	
r.   )T©r&   N)r&   r„   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r¦   r)   Úboolr_   rk   rq   rt   rw   ry   ÚlistÚstrr~   r€   rƒ   r•   rj   r™   rp   rª   r«   r¬   r�   © r.   r,   r=   r=   h   s  € € € € € ðð ð €Hð-ð - Cð -°$ð -À$ð -ð -ð -ð -ð2	ð 	ð 	ð 	ðð ð ð ð  ð  ¨ð  ð  ð  ð  ð ð ¨ð ð ð ð ð! sð !¨tð !ð !ð !ð !ð)¨¨c¬ð )°tð )ð )ð )ð )ð! ð !¨ð !ð !ð !ð !ð" Sð "¨Tð "ð "ð "ð "ð
ð ð ð ð2	0ð 	0ð 	0ð 	0ð+ð +ð +ð +ðð ð ð ðp ð pð pð pð pðu ð uð uð uð uð
 #ð 
ð 
ð 
ð 
ð
˜#ð 
ð 
ð 
ð 
ð 
ð 
r.   r=   c                   óR   — e Zd ZdZd
d„Zedefd„¦   «         Zdededdfd„Z	d
d	„Z
dS )Ú_CommitPacerzOAdaptive number of files per commit, to stay below server-side commit timeouts.r&   Nc                 ó   — t           | _        d S rn   )ÚINITIAL_COMMIT_SIZE_INDEXÚ_indexrl   s    r,   r_   z_CommitPacer.__init__  s   € Ý/ˆŒˆˆr.   c                 ó&   — t           | j                 S rn   )ÚCOMMIT_SIZE_SCALErÎ   rl   s    r,   rc   z_CommitPacer.target  s   € å  ¤Ô-Ð-r.   ÚdurationÚnb_filesc                 óî   — |t           k     r?|| j        k    r4t          | j        dz   t	          t
          ¦  «        dz
  ¦  «        | _        d S |t           k    rt          | j        dz
  d¦  «        | _        d S d S ©Nr   r   )ÚTARGET_COMMIT_DURATIONrc   r*   rÎ   r­   rÐ   r‹   )r^   rÑ   rÒ   s      r,   Úrecord_successz_CommitPacer.record_success#  sr   € ØÕ,Ò,Ð,°¸T¼[Ò1HÐ1HÝ˜dœk¨A™o­sÕ3DÑ/EÔ/EÈÑ/IÑJÔJˆDŒKˆKˆKØÕ.Ò.Ð.Ý˜dœk¨A™o¨qÑ1Ô1ˆDŒKˆKˆKð /Ð.r.   c                 ó@   — t          | j        dz
  d¦  «        | _        d S rÔ   )r‹   rÎ   rl   s    r,   Úrecord_failurez_CommitPacer.record_failure)  s   € Ý˜$œ+¨™/¨1Ñ-Ô-ˆŒˆˆr.   rÁ   )rÂ   rÃ   rÄ   rÅ   r_   Úpropertyr)   rc   ÚfloatrÖ   rØ   rÉ   r.   r,   rË   rË     s’   € € € € € ØYÐYð0ð 0ð 0ð 0ð ð.˜ð .ð .ð .ñ „Xð.ð2 uð 2¸ð 2Àð 2ð 2ð 2ð 2ð.ð .ð .ð .ð .ð .r.   rË   c                   ó   — e Zd ZdZdd„ZdS )Ú_BatchzSA group of files destined to a single git commit, with their in-flight xet uploads.r&   Nc                 ón   — g | _         d| _        d | _        g | _        t	          j        ¦   «         | _        d S r‰   )ÚopsÚregular_bytesÚ
xet_commitÚhandlesrš   r›   Ú
created_atrl   s    r,   r_   z_Batch.__init__0  s2   € Ø-/ˆŒØ"#ˆÔØ#ˆŒØ=?ˆŒÝ!%¤Ñ!1Ô!1ˆŒˆˆr.   rÁ   )rÂ   rÃ   rÄ   rÅ   r_   rÉ   r.   r,   rÜ   rÜ   -  s.   € € € € € Ø]Ð]ð2ð 2ð 2ð 2ð 2ð 2r.   rÜ   c                   ó  — e Zd Zdddededee         dee         deded	z  d
eez  d	z  ded	z  deded	z  dd	fd„Zdd„Z	dd„Z
dedd	fd„Zdedd	fd„Zdd„Zdedd	fd„Zdee         dd	fd„Zdee         dd	fd„Zdd„Zd	S )Ú_UploadPipelineÚapir   Úrepo_idÚ	repo_typeÚadd_operationsÚdelete_operationsÚcommit_messageÚcommit_descriptionNÚtokenÚrevisionÚ	create_prÚparent_commitr&   c       
         ó  — || _         || _        || _        || _        || _        || _        || _        || _        |                     |¬¦  «        | _	        |	pt          j        | _        |
| _        || _        t          | j        d¬¦  «        | _        | j        | _        d | _        d | _        d| _        d | _        t-          ¦   «         | _        t1          j        d¬¦  «        | _        g | _        t9          j        ¦   «         | _        t?          tA          |¦  «        tC          ¦   «          ¬¦  «        | _"        tG          tH          j%        ||| j        |j&        ¬¦  «        }|
r|d	z  }tO          ¦   «         | _(        || j	        tS          | j	        ¦  «        d
œ| _*        d | _+        |D ]g}|j,        dk    rZ| -                    ¦   «         5 }| .                    ¦   «          /                    ¦   «         | _+        d d d ¦  «         n# 1 swxY w Y    d S Œhd S )N)rì   r²   ©Úsafer   r   )Úmaxsize)r?   r@   )Ú
token_typeræ   rç   rí   Úendpointz?create_pr=1)Útoken_refresh_urlÚtoken_refresh_headersÚcustom_headersz
.gitignore)0rå   ræ   rç   rè   ré   rê   rë   rì   Ú_build_hf_headersÚheadersr   ÚDEFAULT_REVISIONrí   rî   rï   r   Úbase_revision_quotedÚcommit_revision_quotedÚpr_urlÚpr_revisionÚ
nb_commitsÚlast_commit_inforË   ÚpacerÚqueueÚQueueÚbatch_queueÚerrorsrL   rP   Úabort_eventr=   r­   r   Údisplayr   r   ÚWRITErõ   r   Úxet_sessionr   Úxet_commit_kwargsÚgitignore_contentÚpath_in_repoÚas_fileÚreadÚdecode)r^   rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   Úrefresh_urlÚopÚfs                  r,   r_   z_UploadPipeline.__init__9  sB  € ð ˆŒØˆŒØ"ˆŒØ,ˆÔØ!2ˆÔØ,ˆÔØ"4ˆÔØˆŒ
Ø×,Ò,°5Ð,Ñ9Ô9ˆŒØ Ð>¥IÔ$>ˆŒØ"ˆŒØ*ˆÔõ
 %*¨$¬-¸bÐ$AÑ$AÔ$AˆÔ!ð '+Ô&?ˆÔ#Ø"&ˆŒØ'+ˆÔØˆŒØ59ˆÔÝ!‘^”^ˆŒ
õ ).¬¸AÐ(>Ñ(>Ô(>ˆÔØ+-ˆŒÝ$œ?Ñ,Ô,ˆÔÝ#µ°NÑ0CÔ0CÕQkÑQmÔQmÐMmÐnÑnÔnˆŒõ 6Ý#Ô)ØØØÔ.Ø”\ð
ñ 
ô 
ˆð ð 	*Ø˜>Ñ)ˆKÝ*Ñ,Ô,ˆÔà!,Ø%)¤\Ý6°t´|ÑDÔDð"
ð "
ˆÔð .2ˆÔØ ð 	ð 	ˆBØŒ ,Ò.Ð.Ø—Z’Z‘\”\ð ? QØ-.¯VªV©X¬X¯_ª_Ñ->Ô->�DÔ*ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?à��ð /ð	ð 	s   Ç,G:Ç:G>	ÈG>	r   c           	      óä  — t          g | j        ¢| j        ¢¦  «         t          j        | j        dd¬¦  «        }|                     ¦   «          | j                             ¦   «          	 |                      ¦   «          n6# t          $ r) | j
                             ¦   «          t          ¦   «          ‚ w xY w	 | j
                             ¦   «         r|                     d¬¦  «         n3| j                             t"          ¦  «         |                     ¦   «          | j                             ¦   «          | j
                             ¦   «         r2| j        �+t(                               d| j        › d| j        › d�¦  «         nÎ# | j
                             ¦   «         r|                     d¬¦  «         n3| j                             t"          ¦  «         |                     ¦   «          | j                             ¦   «          | j
                             ¦   «         r3| j        �-t(                               d| j        › d| j        › d�¦  «         w w w xY w| j        r| j        d	         ‚|                      ¦   «         S )
Nzhf-upload-committerTrb   r6   ©ÚtimeoutzUpload to pull request zF did not complete. To resume into the same PR, re-run with `revision="z^"` (without `create_pr=True`). Re-running with `create_pr=True` would open a new pull request.r   )r   ré   rè   rL   ri   Ú_committer_looprk   r  Ú_coordinator_loopÚBaseExceptionr  rV   r   Úis_setro   r  ÚputÚ	_SENTINELrq   rÿ   rH   Úwarningrþ   r  Ú_final_commit_info)r^   Ú	committers     r,   Úrunz_UploadPipeline.run‚  s›  € Ý'Ð(W¨$Ô*@Ð(WÀ4ÔCVÐ(WÑXÔXÐXÝÔ$¨DÔ,@ÐG\ÐeiÐjÑjÔjˆ	Ø�ŠÑÔÐØŒ×ÒÑÔÐð	Ø×"Ò"Ñ$Ô$Ð$Ð$øÝð 	ð 	ð 	ØÔ× Ò Ñ"Ô"Ð"ÝÑÔÐØð	øøøð %ð Ô×&Ò&Ñ(Ô(ð !ð —’ r�Ñ*Ô*Ð*Ð*àÔ ×$Ò$¥YÑ/Ô/Ð/Ø—’Ñ Ô Ð ØŒL×ÒÑ Ô Ð ØÔ×&Ò&Ñ(Ô(ð ¨TÔ-=Ð-IÝ—’ðL¨d¬kð Lð LØ8<Ô8HðLð Lð Lñô ð øøð Ô×&Ò&Ñ(Ô(ð !ð —’ r�Ñ*Ô*Ð*Ð*àÔ ×$Ò$¥YÑ/Ô/Ð/Ø—’Ñ Ô Ð ØŒL×ÒÑ Ô Ð ØÔ×&Ò&Ñ(Ô(ð ¨TÔ-=Ð-IÝ—’ðL¨d¬kð Lð LØ8<Ô8HðLð Lð Lñô ð ð ðÐ-Iøøøð Œ;ð 	!Ø”+˜a”.Ð Ø×&Ò&Ñ(Ô(Ð(s   Á(A= Á<E< Á=3B0Â0E< Å<CIc                 óÌ  — dd l }t          ¦   «         }t          dt          | j        ¦  «        t
          ¦  «        D �]}| j                             ¦   «         r|                      |¦  «          d S | j        ||t
          z   …         }	 t          || j
        | j        | j        | j        | j        j        | j        | j        ¬¦  «         n.# t$          $ r!}ddlm} |                     |¦  «         ‚ d }~ww xY w| j                             t          |¦  «        ¦  «         |D �]-}|j        r>t2                               d|j        › d�¦  «         | j                             d¦  «         ŒH|j        dk    r|xj        |j        j         z  c_        �n|j!        €5 | j"        j#        dd| j         $                    ¦   «         i| j%        ¤Ž|_!        |j        j&        r|j        j'         (                    ¦   «         n|j)        }tU          |j+        tX          ¦  «        r(|j!         -                    |j+        ||j        ¬	¦  «        }	n.|j!         .                    t_          |j+        ¦  «        |¬
¦  «        }	|j0         1                    ||	f¦  «         | j         2                    d¦  «         |j3         1                    |¦  «         t          |j3        ¦  «        | j4        j5        k    sL|j        tl          k    s<to          j8        ¦   «         |j9        z
  tt          k    r;t          |j3        ¦  «        dk    r#|  ;                    |¦  «         t          ¦   «         }�Œ/�Œ|  ;                    |¦  «         d S )Nr   )Ú	additionsrç   ræ   rú   rí   rõ   rî   r  r   )Ú$_CREATE_COMMIT_NO_REPO_ERROR_MESSAGEzSkipping upload for 'z' (ignored by gitignore rules).ÚregularÚprogress_callback)Úsha256rd   )r&  rÉ   )<Úhf_xetrÜ   Úranger­   rè   ÚPREUPLOAD_BATCH_SIZEr  r  Ú_abort_batchr   rç   ræ   rú   rü   rå   rõ   rî   r  r   Úhf_apir#  Úappend_to_messager  rt   Ú_should_ignorerH   Údebugr  rw   Ú_upload_moderß   Úupload_infoÚsizerà   r
  Únew_upload_commitr•   r  Ú	is_hashedr&  ÚhexÚCOMPUTE_SHA256Ú
isinstanceÚpath_or_fileobjÚbytesÚstart_upload_bytesÚstart_upload_filerÈ   rá   r·   ry   rÞ   r  rc   ÚREGULAR_CONTENT_BYTES_BUDGETrš   r›   râ   ÚMAX_COMMIT_INTERVALÚ_enqueue)
r^   r'  Úbatchrk   ÚchunkÚer#  r  Úsha_argÚhandles
             r,   r  z!_UploadPipeline._coordinator_loop£  su  € Øˆˆˆå‘”ˆÝ˜1�c $Ô"5Ñ6Ô6Õ8LÑMÔMð 5	%ñ 5	%ˆEØÔ×&Ò&Ñ(Ô(ð Ø×!Ò! %Ñ(Ô(Ð(Ø��ØÔ'¨°Õ8LÑ0LÐ(LÔMˆEðÝ#Ø#Ø"œnØ œLØ œLØ!Ô6Ø!œXÔ.Ø"œnØ&*Ô&<ð	ñ 	ô 	ð 	ð 	øõ +ð ð ð ØHÐHÐHÐHÐHÐHà×#Ò#Ð$HÑIÔIÐIØøøøøð	øøøð
 ŒL×(Ò(­¨U©¬Ñ4Ô4Ð4Øð %ñ %�ØÔ$ð Ý—L’LÐ!i¸¼Ð!iÐ!iÐ!iÑjÔjÐjØ”L×/Ò/°Ñ2Ô2Ð2ØØ”? iÒ/Ð/ØÐ'Ô'¨2¬>Ô+>Ñ>Ð'Ô'Ñ'àÔ'Ð/Ø+M¨4Ô+;Ô+Mð ,ð ,Ø.2¬l×.KÒ.KÑ.MÔ.Mð,ØQUÔQgð,ð ,˜Ô(ð
 >@¼^Ô=UÐp˜bœnÔ3×7Ò7Ñ9Ô9Ð9Ð[aÔ[p�GÝ! "Ô"4µeÑ<Ô<ð mØ!&Ô!1×!DÒ!DØÔ.°wÀRÄ_ð "Eñ "ô "˜˜ð "'Ô!1×!CÒ!CÅCÈÔHZÑD[ÔD[ÐdkÐ!CÑ!lÔ!l˜Ø”M×(Ò(¨"¨f¨Ñ6Ô6Ð6Ø”L×6Ò6°qÑ9Ô9Ð9Ø”	× Ò  Ñ$Ô$Ð$õ ˜œ	‘N”N d¤jÔ&7Ò7Ð7ØÔ*Õ.JÒJÐJÝœÑ(Ô(¨5Ô+;Ñ;Õ>QÒQÐQÕVYÐZ_ÔZcÑVdÔVdÐghÒVhÐVhà—M’M %Ñ(Ô(Ð(Ý"™HœH�Eùñ?%ð@ 	�Š�eÑÔÐÐÐs   Â?CÃ
C2ÃC-Ã-C2r>  c                 óD  — t          |j        ¦  «        dk    r%| j        dk    rt          | j        ¦  «        dk    sd S | j                             ¦   «         s4	 | j                             |d¬¦  «         d S # t          j	        $ r Y ŒIw xY w|  
                    |¦  «         d S )Nr   r(   r  )r­   rÞ   r   ré   r  r  r  r  r  ÚFullr*  ©r^   r>  s     r,   r=  z_UploadPipeline._enqueueß  sµ   € ÝˆuŒy‰>Œ>˜QÒÐ¨¬¸1Ò(<Ð(<ÅÀTÔE[ÑA\ÔA\Ð_`ÒA`ÐA`ØˆFàÔ"×)Ò)Ñ+Ô+ð 	ðØÔ ×$Ò$ U°CÐ$Ñ8Ô8Ð8Ø�øÝ”:ð ð ð Ø�ðøøøà×Ò˜%Ñ Ô Ð Ð Ð s   ÁA6 Á6BÂBc                 ón   — |j         �-	 |j                              ¦   «          d S # t          $ r Y d S w xY wd S rn   )rà   ÚabortÚ	ExceptionrE  s     r,   r*  z_UploadPipeline._abort_batchë  sU   € ØÔÐ'ðØÔ ×&Ò&Ñ(Ô(Ð(Ð(Ð(øÝð ð ð Ø��ðøøøð (Ð's   ‰$ ¤
2±2c                 ó  — 	 	 | j                              d¬¦  «        }n1# t          j        $ r | j                             ¦   «         rY d S Y ŒKw xY w|t          u rd S 	 | j                             ¦   «         s|                      |¦  «         n|                      |¦  «         n_# t          $ rR}|                      |¦  «         | j
                             |¦  «         | j                             ¦   «          Y d }~nd }~ww xY wŒÿ)NTr"   r  )r  Úgetr  ÚEmptyr  r  r  Ú_process_batchr*  r  r  r·   rV   )r^   r>  r@  s      r,   r  z_UploadPipeline._committer_loopô  s3  € ð	'ðØÔ(×,Ò,°SÐ,Ñ9Ô9��øÝ”;ð ð ð ØÔ#×*Ò*Ñ,Ô,ð Ø�F�FØ�ðøøøð �	Ð!Ð!Ø�ð'ØÔ'×.Ò.Ñ0Ô0ð -Ø×'Ò'¨Ñ.Ô.Ð.Ð.à×%Ò% eÑ,Ô,Ð,øøÝ ð 'ð 'ð 'Ø×!Ò! %Ñ(Ô(Ð(Ø”×"Ò" 1Ñ%Ô%Ð%ØÔ ×$Ò$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&øøøøð'øøøð	's)   ƒ Ÿ(AÁAÁAB! Â!
C=Â+AC8Ã8C=c                 óâ  — |j         �¢|j                              ¦   «          |j        D ]X\  }}|j        j        s@t
                               |                     ¦   «         j        j	        ¦  «        |j        _	        d|_
        ŒY| j                             d„ |j        D ¦   «         ¦  «         g }|j        D ]l}|j        �N|j        |j        k    r>t                                d|j        › d�¦  «         | j                             d¦  «         ŒW|                     |¦  «         Œmt+          |¦  «        dk    s#| j        dk    r/t+          | j        ¦  «        dk    r|                      |¦  «         d S d S d S )NTc                 ó~   — g | ]:\  }}t          |j        t          ¦  «        st          |j        ¦  «        n|j        ‘Œ;S rÉ   )r6  r7  r8  rÈ   r  )Ú.0r  Ú_s      r,   ú
<listcomp>z2_UploadPipeline._process_batch.<locals>.<listcomp>  sS   € ð ð ð á˜˜Aõ 4>¸bÔ>PÕRWÑ3XÔ3XÐm•C˜Ô*Ñ+Ô+Ð+Ð^`Ô^mðð ð r.   zSkipping commit for 'z' (file unchanged).r   r   )rà   Úwait_to_finishrá   r0  r3  r8  ÚfromhexÚresultÚxet_infor&  Ú_is_uploadedr  r~   rÞ   Ú_remote_oidÚ
_local_oidrH   r.  r  r€   r·   r­   r   ré   Ú_commit_with_split)r^   r>  r  rB  Úops_to_commits        r,   rL  z_UploadPipeline._process_batch  s‡  € ð ÔÐ'ØÔ×+Ò+Ñ-Ô-Ð-Ø#œmð 'ð '‘
��FØ”~Ô/ð [Ý,1¯MªM¸&¿-º-¹/¼/Ô:RÔ:YÑ,ZÔ,Z�B”NÔ)Ø"&�”�àŒL×,Ò,ðð à!&¤ðñ ô ñô ð ð ˆØ”)ð 	%ð 	%ˆBØŒ~Ð)¨b¬nÀÄÒ.MÐ.MÝ—’ÐY°R´_ÐYÐYÐYÑZÔZÐZØ”×+Ò+¨AÑ.Ô.Ð.ØØ× Ò  Ñ$Ô$Ð$Ð$õ ˆ}ÑÔ Ò!Ð! d¤o¸Ò&:Ð&:½sÀ4ÔCYÑ?ZÔ?ZÐ]^Ò?^Ð?^Ø×#Ò# MÑ2Ô2Ð2Ð2Ð2ð ';Ð&:Ð?^Ð?^r.   rÞ   c                 óÈ  — 	 |                       |¦  «         d S # t          $ r¾}| j                             ¦   «          t	          |¦  «        t
          d         k    r‚ t                               dt	          |¦  «        › d|›d�¦  «         | j        j        }t          dt	          |¦  «        |¦  «        D ]"}|  
                    ||||z   …         ¦  «         Œ#Y d }~d S d }~ww xY w)Nr   z
Commit of z files failed (z). Retrying in smaller chunks.)Ú
_do_commitrH  r  rØ   r­   rÐ   rH   r  rc   r(  rY  )r^   rÞ   r@  rc   rk   s        r,   rY  z"_UploadPipeline._commit_with_split'  s  € ð		EØ�OŠO˜CÑ Ô Ð Ð Ð øÝð 	Eð 	Eð 	EØŒJ×%Ò%Ñ'Ô'Ð'Ý�3‰xŒxÕ,¨QÔ/Ò/Ð/ØÝ�NŠNÐd­¨C©¬ÐdÐdÀÐdÐdÐdÑeÔeÐeØ”ZÔ&ˆFÝ˜q¥# c¡(¤(¨FÑ3Ô3ð Eð E�Ø×'Ò'¨¨E°E¸F±NÐ,BÔ(CÑDÔDÐDÐDðEð Eð Eð Eð Eð Eøøøøð	Eøøøs   ‚ ™
C!£B3CÃC!c                 ó  — | j         rˆ| j        €�| j                             | j        | j        | j        | j        | j        ¬¦  «        }|j	        €t          d¦  «        ‚|j        | _        |j	        | _        t          |j	        d¬¦  «        | _        t          |¦  «        }| j        dk    rt          | j        ¦  «        |z   }| j        dk    r| j        n| j        › d| j        dz   › d�}t%          j        ¦   «         }t)          |i || j        pd| j        | j        | j        | j        | j        j        | j        dk    r| j        nd d	¬
¦  «        | _        t%          j        ¦   «         |z
  }| j                             |t7          |¦  «        ¦  «         | xj        dz  c_        |D ]	}d	|_        Œ
| j                             t7          |¦  «        ¦  «         t>                                dt7          |¦  «        › d|d›d| j        j!        › �¦  «         d S )N)ræ   Útitlerì   Údescriptionrç   zCServer did not return a git reference for the created pull request.r²   rñ   r   z (part r   ú)T)Ú
operationsÚfiles_to_copyrê   rë   rç   ræ   rú   rí   rõ   rï   Úretry_on_errorz
Committed z file(s) in r7   zs: )"rî   rÿ   rå   Úcreate_pull_requestræ   rê   rì   rë   rç   Úgit_referenceÚ
ValueErrorÚurlrþ   r   rý   rÇ   r   ré   rš   r›   r   rú   rõ   rï   r  r  rÖ   r­   Ú_is_committedr  rƒ   rH   r.  Ú
commit_url)r^   rÞ   Úprra  rê   Út0rÑ   r  s           r,   r\  z_UploadPipeline._do_commit3  s(  € ØŒ>ð 	K˜dÔ.Ð6ð ”×-Ò-ØœØÔ)Ø”jØ Ô3Øœ.ð .ñ ô ˆBð ÔÐ'Ý Ð!fÑgÔgÐgØœ&ˆDŒKØ!Ô/ˆDÔÝ*/°Ô0@ÀrÐ*JÑ*JÔ*JˆDÔ'å $ S¡	¤	ˆ
ØŒ?˜aÒÐå˜dÔ4Ñ5Ô5¸
ÑBˆJð $(¤?°aÒ#7Ð#7ˆDÔÐÀÔ@SÐ=rÐ=rÐ\`Ô\kÐnoÑ\oÐ=rÐ=rÐ=rð 	õ Œ^ÑÔˆõ !-Ø!ØØ)Ø#Ô6Ð<¸"Ø”nØ”LØ”LØÔ0Ø”XÔ&Ø04´À1Ò0DÐ0D˜$Ô,Ð,È$Øð!
ñ !
ô !
ˆÔõ ”>Ñ#Ô# bÑ(ˆØŒ
×!Ò! (­C°©H¬HÑ5Ô5Ð5ØˆŒ˜1ÑˆŒàð 	$ð 	$ˆBØ#ˆBÔÐØŒ×"Ò"¥3 s¡8¤8Ñ,Ô,Ð,Ý�ŠÐk¥# c¡(¤(ÐkÐk¸ÐkÐkÐkÈÔI^ÔIiÐkÐkÑlÔlÐlÐlÐlr.   c                 ó’  — ddl m} | j        €·t                               d¦  «         | j                             | j        | j        | j	        | j
        ¬¦  «        }| j        j        }| j        t          j        k    r|› d| j        › d�} ||› d| j        › d|j        › �| j        | j        pd|j        | j        j        ¬	¦  «        S | j        dk    r#t                               d
| j        › d�¦  «         | j        �H || j        j        | j        j        | j        j        | j        j        | j        | j        j        ¬¦  «        S | j        S )Nr   )r   zPNo files have been modified since last commit. Skipping to prevent empty commit.)ræ   rç   rí   rì   rÀ   Úsz/commit/r²   )ri  rê   rë   ÚoidÚ	_endpointzUpload completed in z	 commits.)ri  rê   rë   rn  rþ   ro  )r+  r   r  rH   r  rå   Ú	repo_inforæ   rç   rí   rì   rõ   r   ÚREPO_TYPE_MODELÚsharê   rë   r   rh   rþ   ri  rn  )r^   r   rh   Ú
url_prefixs       r,   r  z"_UploadPipeline._final_commit_infoj  su  € Ø&Ð&Ð&Ð&Ð&Ð&àÔ Ð(õ �NŠNÐmÑnÔnÐnØ”8×%Ò%Øœ°´ÈÌÐ^bÔ^hð &ñ ô ˆDð œÔ*ˆJØŒ~¥Ô!:Ò:Ð:Ø *Ð>Ð>¨T¬^Ð>Ð>Ð>�
Ø�:Ø(ÐKÐK¨4¬<ÐKÐKÀÄÐKÐKØ#Ô2Ø#'Ô#:Ð#@¸bØ”HØœ(Ô+ðñ ô ð ð Œ?˜QÒÐÝ�KŠKÐI¨t¬ÐIÐIÐIÑJÔJÐJØŒ;Ð"à�:ØÔ0Ô;Ø#Ô4ÔCØ#'Ô#8Ô#KØÔ)Ô-Ø”{Øœ(Ô+ðñ ô ð ð Ô$Ð$r.   )r&   r   rÁ   )rÂ   rÃ   rÄ   rÈ   rÇ   r	   r
   rÆ   r_   r   r  rÜ   r=  r*  r  rL  rY  r\  r  rÉ   r.   r,   rä   rä   8  så  € € € € € ðGàðGð ð	Gð
 ðGð Ð/Ô0ðGð  Ð 5Ô6ðGð ðGð   $™JðGð �T‰z˜DÑ ðGð ˜‘*ðGð ðGð ˜T‘zðGð 
ðGð Gð Gð GðR)ð )ð )ð )ðB:ð :ð :ð :ðx
!˜fð 
!¨ð 
!ð 
!ð 
!ð 
!ð &ð ¨Tð ð ð ð ð'ð 'ð 'ð 'ð(3 Fð 3¨tð 3ð 3ð 3ð 3ð>
E dÐ+=Ô&>ð 
EÀ4ð 
Eð 
Eð 
Eð 
Eð3m˜dÐ#5Ô6ð 3m¸4ð 3mð 3mð 3mð 3mðn %ð  %ð  %ð  %ð  %ð  %r.   rä   F)rë   rì   rí   rî   rï   rå   r   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   r   c       
         óZ   — t          | |||||||||	|
¬¦  «                             ¦   «         S )z¨Upload a prepared list of operations through the streamed multi-commit pipeline.

    Requires `hf_xet` to be installed. See module docstring for the architecture.
    )
ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   )rä   r   )rå   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   s              r,   Úpipelined_uploadru  �  sG   € õ& ØØØØ%Ø+Ø%Ø-ØØØØ#ðñ ô ÷ 
‚c�e„eðr.   )<rÅ   r  r§   rD   rL   rš   Útypingr   r   r   Úurllib.parser   r²   r   Ú_commit_apir	   r
   r   r   r   r  r   Úutilsr   r   Ú
utils._xetr   r   r   r   r   r+  r   r   Ú
get_loggerrÂ   rH   r)  rÐ   rÍ   rÕ   r<  r;  Úobjectr  Ú
_BAR_WIDTHr˜   rœ   rÚ   r)   rÈ   r-   r;   r=   rË   rÜ   rä   rÇ   rÆ   ru  rÉ   r.   r,   ú<module>r~     sœ  ððð ð$ €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)à	ˆÔ	˜HÑ	%Ô	%€ð Ð ð EÐDÐDÐ ØÐ ØÐ ØÐ ð  1Ð àˆF‰HŒH€	ð €
ØÐ ØÐ ð 5?ð 5ð 5�%ð 5 ð 5¨cð 5À3ð 5ð 5ð 5ð 5ð	�Uð 	˜sð 	ð 	ð 	ð 	ðn
ð n
ð n
ð n
ð n
ñ n
ô n
ð n
ðb.ð .ð .ð .ð .ñ .ô .ð .ð(2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðR%ð R%ð R%ð R%ð R%ñ R%ô R%ð R%ðz
 &*Ø#ØØØ $ðð ð Ø	ðð ðð ð	ð
 Ð+Ô,ðð Ð1Ô2ðð ðð ˜d™
ðð �‰:˜Ñðð �D‰jðð ðð ˜‘:ðð ðð ð ð ð ð r.   