Ë
    -Œ:j¢1  ã                   óB  — 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m	Z	 ddl
mZ ddlmZ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  e	j6                  e«      Zg d¢Z	 	 	 	 	 	 	 	 	 	 	 	 	 d'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$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

    # Upload using an hf:// URI (repo type, revision and path in repo are read from the URI)
    hf upload hf://datasets/Wauplin/my-cool-dataset@my-branch/data/train.csv ./train.csv
é    N)Ú	Annotated)Ú	constantsÚlogging)ÚCommitScheduler)ÚCLIErrorÚRevisionNotFoundError)Úparse_hf_urié   )Ú
PrivateOptÚ	RepoIdArgÚRepoTypeÚRepoTypeOptionalOptÚRevisionOptÚTokenOptÚ
get_hf_api)Ú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-prÚ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Úreturnc                 óÂ  ‡ ‡‡‡‡‡	‡
‡‡‡‡‡‡‡— ‰�‰dk  rt        j                  dd¬«      ‚‰ j                  t        j                  «      r |�t        d‰ › d�«      ‚‰�t        d‰ › d�«      ‚t        ‰ «      }|j                  rt        d	«      ‚|j                  |j                  |j                  cŠ ŠŠ|j                  rI|�t        d
|j                  › d|› d�«      ‚|j                  }n|xs t        j                  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_hintz3'--repo-type' cannot be used with an 'hf://' URI ('z').z2'--revision' cannot be used with an 'hf://' URI ('z@Buckets are not supported by `hf upload`. Use `hf sync` instead.z)Cannot combine a path in the hf:// URI ('z&') with the `path_in_repo` argument (')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         €€€€€€€€€€€€€€ú\/var/www/html/tokenscope/api/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Ú
startswithr   ÚHF_PROTOCOLr   r	   Ú	is_bucketÚidÚtyper   r   r   ÚmodelÚvaluer   Ú_resolve_upload_pathsÚstrr   Úresult)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   ÚurirT   rb   rN   rO   rP   rQ   rR   s   `   `` ``````    @@@@@rS   Úuploadrd   W   sz  ÿý€ ð~ Ð˜U ašZÜ× Ñ Ð!CÐPWÔXÐXð ×Ñœ)×/Ñ/Ô0ØÐ ÜÐPÐQXÐPYÐY\Ð]Ó^Ð^ØÐÜÐOÐPWÈyÐX[Ð\Ó]Ð]Ü˜7Ó#ˆØ�=Š=ÜÐ]Ó^Ð^Ø+.¯6©6°3·8±8¸S¿\¹\Ð(ˆ� Ø×ÒØÐ'ÜØ?À×@PÑ@PÐ?QÐQwð  yEð  xFð  FIð  Jóð ð ×+Ñ+‰Là"Ò4¤h§n¡n×;Ñ;ˆä
˜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Ñ%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   r`   r`   !  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Ð5re   )NNNNNNNNNNFNN)(Ú__doc__r3   r>   r9   Útypingr   rW   Úhuggingface_hubr   r   Ú!huggingface_hub._commit_schedulerr   Úhuggingface_hub.errorsr   r   Úhuggingface_hub.utilsr	   Ú
_cli_utilsr   r   r   r   r   r   r   Ú_outputr   Ú
get_loggerÚ__name__rF   ÚUPLOAD_EXAMPLESra   ÚArgumentr8   ÚOptionÚboolÚfloatrd   Útupler`   rj   re   rS   ú<module>r‡      sØ  ðñ#óJ 
Û Û Ý ã ç .Ý =ß BÝ .÷÷ ñ õ ð 
ˆ×	Ñ	˜HÓ	%€ò€ð  	ð 	Ø%)Ø Øð 	ð 	ð 	ð 	ð 	ð 	ð 	ØñwG'ØðG'àØˆd‰
Øˆ�‰Ø~ô	
ð	ñðG'ð Øˆd‰
Øˆ�‰Øoô	
ð	ñðG'ð #ðG'ð ðG'ð  ð!G'ð" ØˆS‰	�DÑØˆ�‰Ø:ô	
ð	ñð#G'ð. ØˆS‰	�DÑØˆ�‰ØAô	
ð	ñð/G'ð: ØˆS‰	�DÑØˆ�‰ØWô	
ð	ñð;G'ðF Øˆd‰
Øˆ�‰ØLô	
ð	ñðGG'ðR "Øˆd‰
Øˆ�‰Ø;ô	
ð	ñðSG'ð^ ØØˆ�‰ØCô	
ð	ñð_G'ðj Ø�‰Øˆ�‰Øaô	
ð	ñðkG'ðv ðwG'ðx 
óyG'ðT6Øð6Ø!$ t¡ð6Ø;>À¹:ð6ØPTÐUXÑPYÐ\`ÑP`ð6à
ˆ3��T˜#‘Y Ñ%Ð%Ñ&ô6re   