§
    «˜ºh8  ã                   óâ   — d Z ddlZddlZddlZddlmZ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 dd	lmZ dd
lmZ ddlmZmZ ddlmZ  ej        e¦  «        Z G d„ de¦  «        ZdS )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)Ú	NamespaceÚ_SubParsersAction)ÚListÚOptional)Úlogging)ÚCommitScheduler)ÚBaseHuggingfaceCLICommand)ÚHF_HUB_ENABLE_HF_TRANSFER)ÚRevisionNotFoundError)ÚHfApi)Údisable_progress_barsÚenable_progress_bars)Úis_xet_availablec                   óN   — e Zd Zedefd„¦   «         Zdeddfd„Zd	d„Zde	fd„Z
dS )
ÚUploadCommandÚparserc                 ó   — |                       dd¬¦  «        }|                     dt          d¬¦  «         |                     ddd	¬
¦  «         |                     ddd¬
¦  «         |                     dg d¢dd¬¦  «         |                     dt          d¬¦  «         |                     ddd¬¦  «         |                     ddt          d¬¦  «         |                     ddt          d¬¦  «         |                     ddt          d¬¦  «         |                     d t          d!¬¦  «         |                     d"t          d#¬¦  «         |                     d$dd%¬¦  «         |                     d&t          d'¬¦  «         |                     d(t          d)¬¦  «         |                     d*dd+¬¦  «         |                     t
          ¬,¦  «         d S )-NÚuploadzLUpload a file or a folder to the Hub. Recommended for single-commit uploads.)ÚhelpÚrepo_idz<The ID of the repo to upload to (e.g. `username/repo-name`).)Útyper   Ú
local_pathú?zkLocal path to the file or folder to upload. Wildcard patterns are supported. Defaults to current directory.)Únargsr   Úpath_in_repoz\Path of the file or folder in the repo. Defaults to the relative path of the file or folder.z--repo-type)ÚmodelÚdatasetÚspacer   z/Type of the repo to upload to (e.g. `dataset`).)ÚchoicesÚdefaultr   z
--revisionz°An optional Git revision to push to. It can be a branch name or a PR reference. If revision does not exist and `--create-pr` is not set, a branch will be automatically created.z	--privateÚ
store_truezfWhether to create a private repo if repo doesn't exist on the Hub. Ignored if the repo already exists.)Úactionr   z	--includeÚ*z'Glob patterns to match files to upload.)r   r   r   z	--excludez.Glob patterns to exclude from files to upload.z--deletezDGlob patterns for file to be deleted from the repo while committing.z--commit-messagez9The summary / title / first line of the generated commit.z--commit-descriptionz(The description of the generated commit.z--create-prz0Whether to upload content as a new Pull Request.z--everyzNIf set, a background job is scheduled to create commits every `every` minutes.z--tokenzIA User Access Token generated from https://huggingface.co/settings/tokensz--quietzWIf True, progress bars are disabled and only the path to the uploaded files is printed.)Úfunc)Ú
add_parserÚadd_argumentÚstrÚfloatÚset_defaultsr   )r   Úupload_parsers     úb/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/huggingface_hub/cli/upload.pyÚregister_subcommandz!UploadCommand.register_subcommandE   s’  € à×)Ò)ØÐið *ñ 
ô 
ˆð 	×"Ò"Ø�CÐ&dð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØØ~ð 	#ñ 	
ô 	
ð 	
ð
 	×"Ò"ØØØoð 	#ñ 	
ô 	
ð 	
ð
 	×"Ò"ØØ1Ð1Ð1ØØBð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØÝð_ð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØðð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò" ;°cÅÐJsÐ"ÑtÔtÐtØ×"Ò"Ø˜s­Ð3cð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØÝØWð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"Ø¥SÐ/jð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"Ð#9ÅÐJtÐ"ÑuÔuÐuØ×"Ò"Ø ,Ð5gð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØÝØað 	#ñ 	
ô 	
ð 	
ð
 	×"Ò"Ø�CÐ&qð 	#ñ 	
ô 	
ð 	
ð 	×"Ò"ØØØjð 	#ñ 	
ô 	
ð 	
ð
 	×"Ò"­Ð"Ñ6Ô6Ð6Ð6Ð6ó    ÚargsÚreturnNc                 ó  ‡— ‰j         | _         ‰j        | _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j	        | _	        t          ‰j        d¬¦  «        | _        ‰j        | _        ‰j        �#‰j        dk    rt          d‰j        › d�¦  «        ‚‰j        | _        ‰j                              d¦  «        d         }|  |  ‰j        �nt%          ˆfd„d	D ¦   «         ¦  «        rS‰j        �t          d
¦  «        ‚‰j        �‰j        dk    rt          d¦  «        ‚d| _        ‰j        | _        d| _        d S ‰j        €/t(          j                             |¦  «        r|| _        || _        d S ‰j        €/t(          j                             |¦  «        r|| _        d| _        d S ‰j        €t          d|› d�¦  «        ‚‰j        €[t(          j                             ‰j        ¦  «        r7‰j        | _        t(          j                             ‰j        ¦  «        | _        d S ‰j        €‰j        | _        d| _        d S ‰j        | _        ‰j        | _        d S )NÚhf)ÚtokenÚlibrary_namer   z'`every` must be a positive value (got 'z')ú/éÿÿÿÿc              3   ó*   •K  — | ]}|‰j         v V — Œd S )N)r   )Ú.0Úcr.   s     €r+   ú	<genexpr>z)UploadCommand.__init__.<locals>.<genexpr>§   s*   øè è € Ð.]Ð.]È¨q°D´OÐ/CÐ.]Ð.]Ð.]Ð.]Ð.]Ð.]r-   )r#   r   ú[zICannot set `--include` when passing a `local_path` containing a wildcard.ú.zLCannot set `path_in_repo` when passing a `local_path` containing a wildcard.ú'zD' is not a local file or folder. Please set `local_path` explicitly.)r   Ú	repo_typeÚrevisionÚprivateÚincludeÚexcludeÚdeleteÚcommit_messageÚcommit_descriptionÚ	create_prr   r2   ÚapiÚquietÚeveryÚ
ValueErrorÚsplitr   Úanyr   ÚosÚpathÚisfileÚisdirÚbasename)Úselfr.   Ú	repo_names    ` r+   Ú__init__zUploadCommand.__init__�   sl  ø€ Ø œLˆŒØ(,¬ˆŒØ'+¤}ˆŒØ!œ\ˆŒà,0¬LˆŒØ,0¬LˆŒØ+/¬;ˆŒà-1Ô-@ˆÔØ15Ô1HˆÔØ#œ~ˆŒÝ d¤j¸tÐDÑDÔDˆŒØœ:ˆŒ
ð Œ:Ð! d¤j°A¢o oÝÐUÀtÄzÐUÐUÐUÑVÔVÐVØ&*¤jˆŒ
ð œ×+Ò+¨CÑ0Ô0°Ô4ˆ	ØÐØÐàŒ?Ð&­3Ð.]Ð.]Ð.]Ð.]È_Ð.]Ñ.]Ô.]Ñ+]Ô+]Ð&ØŒ|Ð'Ý Ð!lÑmÔmÐmØÔ Ð,°Ô1BÀcÒ1IÐ1IÝ Ð!oÑpÔpÐpØ!ˆDŒOØœ?ˆDŒLØ #ˆDÔÐÐØŒ_Ð$­¬¯ª¸	Ñ)BÔ)BÐ$à'ˆDŒOØ )ˆDÔÐÐØŒ_Ð$­¬¯ª°yÑ)AÔ)AÐ$à'ˆDŒOØ #ˆDÔÐÐØŒ_Ð$õ Ðp ÐpÐpÐpÑqÔqÐqØÔÐ&­2¬7¯>ª>¸$¼/Ñ+JÔ+JÐ&à"œoˆDŒOÝ "¤× 0Ò 0°´Ñ AÔ AˆDÔÐÐØÔÐ&à"œoˆDŒOØ #ˆDÔÐÐð #œoˆDŒOØ $Ô 1ˆDÔÐÐr-   c                 óž  — | j         r~t          ¦   «          t          j        ¦   «         5  t          j        d¦  «         t          |                      ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «          d S t          j	        ¦   «          t          |                      ¦   «         ¦  «         t          j
        ¦   «          d S )NÚignore)rG   r   ÚwarningsÚcatch_warningsÚsimplefilterÚprintÚ_uploadr   r   Úset_verbosity_infoÚset_verbosity_warning)rQ   s    r+   ÚrunzUploadCommand.runÈ   sñ   € ØŒ:ð 		,Ý!Ñ#Ô#Ð#ÝÔ(Ñ*Ô*ð &ð &ÝÔ% hÑ/Ô/Ð/Ý�d—l’l‘n”nÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ !Ñ"Ô"Ð"Ð"Ð"åÔ&Ñ(Ô(Ð(Ý�$—,’,‘.”.Ñ!Ô!Ð!ÝÔ)Ñ+Ô+Ð+Ð+Ð+s   ©6A+Á+A/Á2A/c                 óÐ  — t           j                             | j        ¦  «        r™| j        �,t          | j        ¦  «        dk    rt          j        d¦  «         | j        �,t          | j        ¦  «        dk    rt          j        d¦  «         | j	        �,t          | j	        ¦  «        dk    rt          j        d¦  «         t          ¦   «         s!t          st                               d¦  «         | j        ���t           j                             | j        ¦  «        rwt           j                             | j        ¦  «        }| j                             | j        ¦  «        r"| j        d t          | j        ¦  «         …         n| j        }| j        g}g }nS| j        }| j        }| j        pg }| j        pg }| j	        �,t          | j	        ¦  «        dk    rt          j        d¦  «         t%          || j        | j        | j        |||| j        | j        | j        ¬¦
  «
        }t1          d| j        › d	|j        › d
�¦  «         	 	 t3          j        d¦  «         Œ# t6          $ r |                     ¦   «          Y dS w xY wt           j                             | j        ¦  «        s<t           j                             | j        ¦  «        st=          d| j        › d�¦  «        ‚| j                             | j        | j        d| j        | j        dk    rdnd ¬¦  «        j        }| j        �‹| j         s„	 | j         !                    || j        | j        ¬¦  «         n[# tD          $ rN t                               d| j        › d�¦  «         | j         #                    || j        | j        d¬¦  «         Y nw xY wt           j                             | j        ¦  «        rE| j         $                    | j        | j        || j        | j        | j%        | j&        | j         ¬¦  «        S | j         '                    | j        | j        || j        | j        | j%        | j&        | j         | j        | j        | j	        ¬¦  «        S )Nr   z5Ignoring `--include` since a single file is uploaded.z5Ignoring `--exclude` since a single file is uploaded.z4Ignoring `--delete` since a single file is uploaded.z©Consider using `hf_transfer` for faster uploads. This solution comes with some limitations. See https://huggingface.co/docs/huggingface_hub/hf_transfer for more details.z:Ignoring `--delete` when uploading with scheduled commits.)
Úfolder_pathr   r=   r>   Úallow_patternsÚignore_patternsr   r?   rH   Úhf_apizScheduling commits every z minutes to r;   Téd   zStopped scheduled commits.zNo such file or directory: 'z'.r   Úgradio)r   r=   Úexist_okr?   Ú	space_sdk)r   r=   r>   zBranch 'z' not found. Creating it...)r   r=   Úbranchre   )Úpath_or_fileobjr   r   r=   r>   rC   rD   rE   )r_   r   r   r=   r>   rC   rD   rE   r`   ra   Údelete_patterns)(rL   rM   rN   r   r@   ÚlenrV   ÚwarnrA   rB   r   r
   ÚloggerÚinforH   Údirnamer   Úendswithr   r   r=   r>   r?   rF   rY   ÚtimeÚsleepÚKeyboardInterruptÚstoprO   ÚFileNotFoundErrorÚcreate_reporE   Ú	repo_infor   Úcreate_branchÚupload_filerC   rD   Úupload_folder)rQ   r_   r   r`   ra   Ú	schedulerr   s          r+   rZ   zUploadCommand._uploadÔ   sm  € ÝŒ7�>Š>˜$œ/Ñ*Ô*ð 	VØŒ|Ð'­C°´Ñ,=Ô,=ÀÒ,AÐ,AÝ”ÐUÑVÔVÐVØŒ|Ð'­C°´Ñ,=Ô,=ÀÒ,AÐ,AÝ”ÐUÑVÔVÐVØŒ{Ð&­3¨t¬{Ñ+;Ô+;¸aÒ+?Ð+?Ý”ÐTÑUÔUÐUåÑ!Ô!ð 	Õ*Cð 	Ý�KŠKð]ñô ð ð Œ:Ñ!ÝŒw�~Š~˜dœoÑ.Ô.ð `å œgŸošo¨d¬oÑ>Ô>�ð Ô(×1Ò1°$´/ÑBÔBð+�DÔ%Ð&=­¨T¬_Ñ)=Ô)=Ð(=Ð&=Ô>Ð>àÔ*ð ð
 #'¤/Ð!2�Ø"$��à"œo�Ø#Ô0�Ø!%¤Ð!3°�Ø"&¤,Ð"4°"�Ø”;Ð*­s°4´;Ñ/?Ô/?À!Ò/CÐ/CÝ”MÐ"^Ñ_Ô_Ð_å'Ø'ØœØœ.ØœØ-Ø /Ø)ØœØ”jØ”xðñ ô ˆIõ ÐZ¨d¬jÐZÐZÀiÔFWÐZÐZÐZÑ[Ô[Ð[ð4ð$Ý”J˜s‘O”O�Oð$øå$ð 4ð 4ð 4Ø—’Ñ Ô Ð Ø3Ð3Ð3ð4øøøõ
 Œw�~Š~˜dœoÑ.Ô.ð 	Xµr´w·}²}ÀTÄ_Ñ7UÔ7Uð 	XÝ#Ð$VÀ4Ä?Ð$VÐ$VÐ$VÑWÔWÐWØ”(×&Ò&Ø”LØ”nØØ”LØ"&¤.°GÒ";Ð";�h�hÀð 'ñ 
ô 
ô ð 	ð Œ=Ð$¨T¬^Ð$ðwØ”×"Ò"¨7¸d¼nÐW[ÔWdÐ"ÑeÔeÐeÐeøÝ(ð wð wð wÝ—’ÐQ t¤}ÐQÐQÐQÑRÔRÐRØ”×&Ò&¨wÀ$Ä.ÐY]ÔYfÐquÐ&ÑvÔvÐvÐvÐvðwøøøõ Œ7�>Š>˜$œ/Ñ*Ô*ð 	Ø”8×'Ò'Ø $¤Ø!Ô.ØØœ.ØœØ#Ô2Ø#'Ô#:Øœ.ð (ñ 	ô 	ð 	ð ”8×)Ò)Ø œOØ!Ô.ØØœ.ØœØ#Ô2Ø#'Ô#:Øœ.Ø#œ|Ø $¤Ø $¤ð *ñ ô ð s%   È;I ÉI3É2I3Ì%'M ÍAN%Î$N%)r/   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r,   r   rS   r]   r'   rZ   © r-   r+   r   r   D   s™   € € € € € ØðE7Ð$5ð E7ð E7ð E7ñ „\ðE7ðN92˜Yð 92¨4ð 92ð 92ð 92ð 92ðv
,ð 
,ð 
,ð 
,ðh˜ð hð hð hð hð hð hr-   r   )Ú__doc__rL   rp   rV   Úargparser   r   Útypingr   r   Úhuggingface_hubr   Ú!huggingface_hub._commit_schedulerr   Úhuggingface_hub.commandsr	   Úhuggingface_hub.constantsr
   Úhuggingface_hub.errorsr   Úhuggingface_hub.hf_apir   Úhuggingface_hub.utilsr   r   Úhuggingface_hub.utils._runtimer   Ú
get_loggerr{   rl   r   r   r-   r+   ú<module>rŒ      sF  ðð ð  ðD 
€	€	€	Ø €€€Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à #Ð #Ð #Ð #Ð #Ð #Ø =Ð =Ð =Ð =Ð =Ð =Ø >Ð >Ð >Ð >Ð >Ð >Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø (Ð (Ð (Ð (Ð (Ð (Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ ;Ð ;Ð ;Ð ;Ð ;Ð ;ð 
ˆÔ	˜HÑ	%Ô	%€ðxð xð xð xð xÐ-ñ xô xð xð xð xr-   