
    HTh                         S r SSKrSSKJrJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJrJr  \	R&                  " \5      r " S
 S\5      rg)a  Contains command to download files from the Hub with the CLI.

Usage:
    huggingface-cli download --help

    # Download file
    huggingface-cli download gpt2 config.json

    # Download entire repo
    huggingface-cli download fffiloni/zeroscope --repo-type=space --revision=refs/pr/78

    # Download repo with filters
    huggingface-cli download gpt2 --include="*.safetensors"

    # Download with token
    huggingface-cli download Wauplin/private-model --token=hf_***

    # Download quietly (no progress bar, no warnings, only the returned path)
    huggingface-cli download gpt2 config.json --quiet

    # Download to local dir
    huggingface-cli download gpt2 --local-dir=./models/gpt2
    N)	Namespace_SubParsersAction)ListOptional)logging)snapshot_download)BaseHuggingfaceCLICommand)hf_hub_download)disable_progress_barsenable_progress_barsc                   V    \ rS rSr\S\4S j5       rS\SS4S jrSS jr	S\
4S	 jrS
rg)DownloadCommand5   parserc                    U R                  SSS9nUR                  S[        SS9  UR                  S[        SS	S
9  UR                  S/ SQSSS9  UR                  S[        SS9  UR                  SS[        SS9  UR                  SS[        SS9  UR                  S[        SS9  UR                  S[        SS9  UR                  S/ SQSS9  UR                  SS S!S"9  UR                  S#S S$S"9  UR                  S%[        S&S9  UR                  S'S S(S"9  UR                  S)[        S*S+S,9  UR	                  [
        S-9  g ).NdownloadzDownload files from the Hub)helprepo_idz<ID of the repo to download from (e.g. `username/repo-name`).)typer   	filenames*z>Files to download (e.g. `config.json`, `data/metadata.jsonl`).)r   nargsr   z--repo-type)modeldatasetspacer   z4Type of repo to download from (defaults to 'model').)choicesdefaultr   z
--revisionzPAn optional Git revision id which can be a branch name, a tag, or a commit hash.z	--includez)Glob patterns to match files to download.)r   r   r   z	--excludez0Glob patterns to exclude from files to download.z--cache-dirz9Path to the directory where to save the downloaded files.z--local-dirzIf set, the downloaded file will be placed under this directory. Check out https://huggingface.co/docs/huggingface_hub/guides/download#download-files-to-local-folder for more details.z--local-dir-use-symlinks)autoTrueFalsezWDeprecated and ignored. Downloading to a local directory does not use symlinks anymore.)r   r   z--force-download
store_truezFIf True, the files will be downloaded even if they are already cached.)actionr   z--resume-downloadzDeprecated and ignored. Downloading a file to local dir always attempts to resume previously interrupted downloads (unless hf-transfer is enabled).z--tokenzIA User Access Token generated from https://huggingface.co/settings/tokensz--quietzWIf True, progress bars are disabled and only the path to the download files is printed.z--max-workers   zEMaximum number of workers to use for downloading files. Default is 8.)r   r   r   )func)
add_parseradd_argumentstrintset_defaultsr   )r   download_parsers     Y/var/www/auris/envauris/lib/python3.13/site-packages/huggingface_hub/commands/download.pyregister_subcommand#DownloadCommand.register_subcommand6   s    ++J=Z+[$$C&d 	% 	
 	$$c3s 	% 	
 	$$1G	 	% 	
 	$$c 	% 	

 	$$s3^ 	% 	
 	$$s3e 	% 	
 	$$*e 	% 	
 	$$	 	% 	
 	$$&-k 	% 	

 	$$Y 	% 	

 	$$ g 	% 	

 	$$C&q 	% 	
 	$$j 	% 	

 	$$X	 	% 	
 	$$/$:    argsreturnNc                 "   UR                   U l         UR                  U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l	        UR                  =(       d    S U l
        UR                  U l        UR                  U l        UR                  b  [        R                  " S[         5        g g )NzbIgnoring --local-dir-use-symlinks. Downloading to a local directory does not use symlinks anymore.)tokenr   r   	repo_typerevisionincludeexclude	cache_dir	local_dirforce_downloadresume_downloadquietmax_workerslocal_dir_use_symlinkswarningswarnFutureWarning)selfr/   s     r+   __init__DownloadCommand.__init__{   s    ZZ
 LL$(NN"nn'+}},0LL,0LL(,(,$($7$7/3/C/C/Kt::
 $ 0 0&&2MMt 3r.   c                    U R                   (       ab  [        5         [        R                  " 5          [        R                  " S5        [        U R                  5       5        S S S 5        [        5         g [        R                  " 5         [        U R                  5       5        [        R                  " 5         g ! , (       d  f       N]= f)Nignore)r;   r   r>   catch_warningssimplefilterprint	_downloadr   r   set_verbosity_infoset_verbosity_warning)rA   s    r+   runDownloadCommand.run   su    ::!#((*%%h/dnn&' + !"&&($.."#))+ +*s   0B88
Cc                    [        U R                  5      S:  ax  U R                  b/  [        U R                  5      S:  a  [        R                  " S5        U R
                  b/  [        U R
                  5      S:  a  [        R                  " S5        [        U R                  5      S:X  ao  [        U R                  U R                  U R                  U R                  S   U R                  U R                  U R                  U R                  U R                  SS9
$ [        U R                  5      S:X  a  U R                  nU R
                  nOU R                  nS n[        U R                  U R                  U R                  UUU R                  U R                  U R                  U R                  U R                  SU R                   S9$ )Nr   z?Ignoring `--include` since filenames have being explicitly set.z?Ignoring `--exclude` since filenames have being explicitly set.   zhuggingface-cli)
r   r3   r4   filenamer7   r:   r9   r2   r8   library_name)r   r3   r4   allow_patternsignore_patternsr:   r9   r7   r2   r8   rQ   r<   )lenr   r5   r>   r?   r6   r
   r   r3   r4   r7   r:   r9   r2   r8   r   r<   )rA   rR   rS   s      r+   rI   DownloadCommand._download   sZ   t~~"||'C,=,A_`||'C,=,A_` t~~!#"..*.. $ 4 4#22jj...   A%!\\N"llO!^^N"O LLnn]])+ 00..nn**nn*((
 	
r.   )r7   r6   r   r9   r5   r8   r<   r;   r   r3   r:   r4   r2   )r0   N)__name__
__module____qualname____firstlineno__staticmethodr   r,   r   rB   rL   r'   rI   __static_attributes__ r.   r+   r   r   5   sD    B;$5 B; B;HY 4 *
,,
3 ,
r.   r   )__doc__r>   argparser   r   typingr   r   huggingface_hubr   "huggingface_hub._snapshot_downloadr   huggingface_hub.commandsr	   huggingface_hub.file_downloadr
   huggingface_hub.utilsr   r   
get_loggerrV   loggerr   r\   r.   r+   <module>rg      sE   0  1 ! # @ > 9 M 
		H	%S
/ S
r.   