Ë
    ëÿæi-+  ã            !       ód  — d Z ddlZddlZddlZddlm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mZmZmZmZmZmZmZ dd	lmZmZ  ej2                  e«      Zg d
¢Zddej:                  ddddddddddej<                  fdedeedz   ej@                  d¬«      f   deedz   ej@                  d¬«      f   dedededee!e   dz   ejD                  d¬«      f   dee!e   dz   ejD                  d¬«      f   dee!e   dz   ejD                  d¬«      f   deedz   ejD                  d¬«      f   deedz   ejD                  d¬«      f   dee# ejD                  d ¬«      f   d!ee$dz   ejD                  d"¬«      f   d#ed$ed%df d&„Z%dededz  dedz  de!e   dz  d%e&eee!e   dz  f   f
d'„Z'y)(aß  Contains command to upload a repo or file with the CLI.

Usage:
    # Upload file (implicit)
    hf upload my-cool-model ./my-cool-model.safetensors

    # Upload file (explicit)
    hf upload my-cool-model ./my-cool-model.safetensors  model.safetensors

    # Upload directory (implicit). If `my-cool-model/` is a directory it will be uploaded, otherwise an exception is raised.
    hf upload my-cool-model

    # Upload directory (explicit)
    hf upload my-cool-model ./models/my-cool-model .

    # Upload filtered directory (example: tensorboard logs except for the last run)
    hf upload my-cool-model ./model/training /logs --include "*.tfevents.*" --exclude "*20230905*"

    # Upload with wildcard
    hf upload my-cool-model "./model/training/*.safetensors"

    # Upload private dataset
    hf upload Wauplin/my-cool-dataset ./data . --repo-type=dataset --private

    # Upload with token
    hf upload Wauplin/my-cool-model --token=hf_****

    # Sync local Space with Hub (upload new files, delete removed files)
    hf upload Wauplin/space-example --repo-type=space --exclude="/logs/*" --delete="*" --commit-message="Sync local Space with Hub"

    # Schedule commits every 30 minutes
    hf upload Wauplin/my-cool-model --every=30
é    N)Ú	Annotated)Úlogging)ÚCommitScheduler)ÚRevisionNotFoundErroré   )ÚFormatWithAutoOptÚ
PrivateOptÚ	RepoIdArgÚRepoTypeÚRepoTypeOptÚRevisionOptÚTokenOptÚ
get_hf_api)ÚOutputFormatWithAutoÚout)zhf upload my-cool-model . .z:hf upload Wauplin/my-cool-model ./models/model.safetensorszChf upload Wauplin/my-cool-dataset ./data /train --repo-type=datasetzrhf upload Wauplin/my-cool-model ./models . --commit-message="Epoch 34/50" --commit-description="Val accuracy: 68%"z?hf upload bigcode/the-stack . . --repo-type dataset --create-prFÚrepo_idÚ
local_pathzkLocal path to the file or folder to upload. Wildcard patterns are supported. Defaults to current directory.)ÚhelpÚpath_in_repoz\Path of the file or folder in the repo. Defaults to the relative path of the file or folder.Ú	repo_typeÚrevisionÚprivateÚincludez'Glob patterns to match files to upload.Úexcludez.Glob patterns to exclude from files to upload.ÚdeletezDGlob patterns for file to be deleted from the repo while committing.Úcommit_messagez9The summary / title / first line of the generated commit.Úcommit_descriptionz(The description of the generated commit.Ú	create_prz0Whether to upload content as a new Pull Request.ÚeveryzNIf set, a background job is scheduled to create commits every `every` minutes.ÚtokenÚformatÚreturnc                 ó   ‡ ‡‡‡‡‡	‡
‡‡‡‡‡‡‡— ‰�‰dk  rt        j                  dd¬«      ‚|j                  Št        |¬«      Št	        ‰ |||¬«      \  ŠŠŠdt
        fˆˆ
ˆ	ˆˆˆˆˆˆ ˆˆˆˆˆfd	„} |«       }t        j                  d
|¬«       y)zLUpload a file or a folder to the Hub. Recommended for single-commit uploads.Nr   z --every must be a positive valuer   )Ú
param_hint)r    )r   r   r   r   r"   c                  óŠ  •— t         j                  j                  ‰«      r‰�3t        ‰«      dkD  r%t	        ‰t
        «      rt        j                  d«       ‰�#t        ‰«      dkD  rt        j                  d«       ‰
�#t        ‰
«      dkD  rt        j                  d«       ‰�æt         j                  j                  ‰«      rGt         j                  j                  ‰«      } ‰j                  ‰«      r‰d t        ‰«        n‰}‰g}g }n-‰} ‰}‰}‰}‰
�#t        ‰
«      dkD  rt        j                  d«       t        | ‰‰‰|||‰‰‰¬«
      }t        j                  d‰› d|j                  › d	�«       	 	 t        j                  d«       Œt         j                  j                  ‰«      s.t         j                  j%                  ‰«      st'        d‰› d�«      ‚‰j)                  ‰‰d
‰‰dk(  rdnd ¬«      j                  }‰�‰	s	 ‰j+                  |‰‰¬«       t         j                  j                  ‰«      r‰j5                  ‰‰|‰‰‰‰‰	¬«      S ‰j7                  ‰‰|‰‰‰‰‰	‰‰‰
¬«      S # t         $ r |j#                  «        Y yw xY w# t,        $ r1 t.        j1                  d‰› d�«       ‰j3                  |‰‰d
¬«       Y Œ¬w xY w)Nr   z3Ignoring --include since a single file is uploaded.z3Ignoring --exclude since a single file is uploaded.z2Ignoring --delete since a single file is uploaded.z8Ignoring --delete when uploading with scheduled commits.)
Úfolder_pathr   r   r   Úallow_patternsÚignore_patternsr   r   r   Úhf_apizScheduling commits every z minutes to Ú.Téd   zStopped scheduled commits.zNo such file or directory: 'z'.ÚspaceÚgradio)r   r   Úexist_okr   Ú	space_sdk)r   r   r   zBranch 'z' not found. Creating it...)r   r   Úbranchr.   )Úpath_or_fileobjr   r   r   r   r   r   r   )r&   r   r   r   r   r   r   r   r'   r(   Údelete_patterns)ÚosÚpathÚisfileÚlenÚ
isinstanceÚlistÚwarningsÚwarnÚdirnameÚendswithr   r   Útextr   ÚtimeÚsleepÚKeyboardInterruptÚstopÚisdirÚFileNotFoundErrorÚcreate_repoÚ	repo_infor   ÚloggerÚinfoÚcreate_branchÚupload_fileÚupload_folder)r&   Úpir'   r(   Ú	schedulerÚcreatedÚapir   r   r   r   r   r   r   r   Úrepo_type_strÚresolved_includeÚresolved_local_pathÚresolved_path_in_repor   s         €€€€€€€€€€€€€€úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/huggingface_hub/cli/upload.pyÚ
run_uploadzupload.<locals>.run_upload    sì  ø€ Ü�7‰7�>‰>Ð-Ô.ØÐ+´Ð4DÓ0EÈÒ0IÌjÐYiÔkoÔNpÜ—‘ÐSÔTØÐ"¤s¨7£|°aÒ'7Ü—‘ÐSÔTØÐ!¤c¨&£k°A¢oÜ—‘ÐRÔSð Ðô �w‰w�~‰~Ð1Ô2ä Ÿg™gŸo™oÐ.AÓB�ð -×5Ñ5Ð6IÔJð *Ð*E¬SÐ1DÓ-EÐ,EÑFà.ð ð
 #6Ð!6�Ø"$‘à1�Ø*�Ø!1�Ø")�ØÐ%¬#¨f«+¸ª/Ü—M‘MÐ"\Ô]ä'Ø'ØØ'Ø!Ø-Ø /ØØØØôˆIô �H‰HÐ0°°°|ÀI×DUÑDUÐCVÐVWÐXÔYð4ØÜ—J‘J˜s”Oð ô �w‰w�~‰~Ð1Ô2¼2¿7¹7¿=¹=ÐI\Ô;]Ü#Ð&BÐCVÐBWÐWYÐ$ZÓ[Ð[Ø—/‘/ØØ#ØØØ"/°7Ò":‘hÀð "ó 
÷ ‰'ð 	ð Ð©	ðlØ—‘ g¸ÐQY�ÔZô �7‰7�>‰>Ð-Ô.Ø—?‘?Ø 3Ø2ØØ'Ø!Ø-Ø#5Ø#ð #ó 	ð 	ð × Ñ Ø+Ø.ØØ#ØØ)Ø1ØØ+Ø#Ø"ð !ó 
ð 	
øôQ %ò 4Ø—‘Ô Ù3ð4ûô* )ò lÜ—‘˜h x jÐ0KÐLÔMØ×!Ñ!¨'¸]ÐS[ÐfjÐ!Ökðlús$   Å1I) ÈJ É)JÊJÊ7KËKÚUploaded)Úurl)ÚtyperÚBadParameterÚvaluer   Ú_resolve_upload_pathsÚstrr   Úresult)r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   rT   r\   rN   rO   rP   rQ   rR   s   `   `` ``````    @@@@@rS   Úuploadr]   T   s�   ÿý€ ð@ Ð˜U ašZÜ× Ñ Ð!CÐPWÔXÐXà—O‘O€Mä
˜5Ô
!€Cô DYØ J¸\ÐSZôDÑ@ÐÐ.Ð0@ðc
œ÷ c
÷ c
ò c
ñJ ‹\€FÜ‡J�Jˆz˜vÖ&ó    c                 óþ  ‡— | j                  d«      d   }|}‰�9t        ˆfd„dD «       «      r%|�t        d«      ‚|�|dk7  rt        d«      ‚d‰dgfS ‰€$t        j                  j                  |«      r|||fS ‰€$t        j                  j                  |«      r|d|fS ‰€t        d|› d	�«      ‚|€At        j                  j                  ‰«      r"‰t        j                  j                  ‰«      |fS |€‰d|fS ‰||fS )
NÚ/éÿÿÿÿc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w)N© )Ú.0Úcr   s     €rS   Ú	<genexpr>z(_resolve_upload_paths.<locals>.<genexpr>  s   øè ø€ Ð%O¹¸! a¨:¤o¹ùs   ƒ)Ú*Ú?Ú[z9Cannot set --include when local_path contains a wildcard.r*   z<Cannot set path_in_repo when local_path contains a wildcard.Ú'zB' is not a local file or folder. Please set local_path explicitly.)ÚsplitÚanyÚ
ValueErrorr3   r4   r5   rB   Úbasename)r   r   r   r   Ú	repo_namerP   s    `    rS   rZ   rZ   	  s   ø€ ð —‘˜cÓ" 2Ñ&€IØÐàÐ¤#Ó%O¹Ó%OÔ"OØÐÜÐXÓYÐYØÐ#¨¸Ò(;ÜÐ[Ó\Ð\Ø�J  Ð%Ð%àÐœbŸg™gŸn™n¨YÔ7Ø˜)Ð%5Ð5Ð5ØÐœbŸg™gŸm™m¨IÔ6Ø˜#Ð/Ð/Ð/ØÐÜ˜1˜Y˜KÐ'iÐjÓkÐkàÐ¤§¡§¡¨zÔ :Øœ2Ÿ7™7×+Ñ+¨JÓ7Ð9IÐIÐIØÐØ˜3Ð 0Ð0Ð0Ø�|Ð%5Ð5Ð5r^   )(Ú__doc__r3   r>   r9   Útypingr   rW   Úhuggingface_hubr   Ú!huggingface_hub._commit_schedulerr   Úhuggingface_hub.errorsr   Ú
_cli_utilsr   r	   r
   r   r   r   r   r   Ú_outputr   r   Ú
get_loggerÚ__name__rF   ÚUPLOAD_EXAMPLESÚmodelÚautor[   ÚArgumentr8   ÚOptionÚboolÚfloatr]   ÚtuplerZ   rc   r^   rS   Ú<module>r�      sï  ðñ óD 
Û Û Ý ã å #Ý =Ý 8÷	÷ 	ó 	÷ /ð 
ˆ×	Ñ	˜HÓ	%€ò€ð  	ð 	Ø%Ÿ^™^Ø Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ØØ 4× 9Ñ 9ñyr'Øðr'àØˆd‰
Øˆ�‰Ø~ô	
ð	ñðr'ð Øˆd‰
Øˆ�‰Øoô	
ð	ñðr'ð ðr'ð ðr'ð  ð!r'ð" ØˆS‰	�DÑØˆ�‰Ø:ô	
ð	ñð#r'ð. ØˆS‰	�DÑØˆ�‰ØAô	
ð	ñð/r'ð: ØˆS‰	�DÑØˆ�‰ØWô	
ð	ñð;r'ðF Øˆd‰
Øˆ�‰ØLô	
ð	ñðGr'ðR "Øˆd‰
Øˆ�‰Ø;ô	
ð	ñðSr'ð^ ØØˆ�‰ØCô	
ð	ñð_r'ðj Ø�‰Øˆ�‰Øaô	
ð	ñðkr'ðv ðwr'ðx ðyr'ðz 
ó{r'ðj6Øð6Ø!$ t¡ð6Ø;>À¹:ð6ØPTÐUXÑPYÐ\`ÑP`ð6à
ˆ3��T˜#‘Y Ñ%Ð%Ñ&ô6r^   