
    rh                         d 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mZ  e	j&                  e      Z G d
 de      Zy)a_  Contains command to download files from the Hub with the CLI.

Usage:
    hf download --help

    # Download file
    hf download gpt2 config.json

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

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

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

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

    # Download to local dir
    hf download gpt2 --local-dir=./models/gpt2
    N)	Namespace_SubParsersAction)ListOptional)logging)snapshot_download)BaseHuggingfaceCLICommand)hf_hub_download)disable_progress_barsenable_progress_barsc                   F    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
y)
DownloadCommandparserc                    | j                  dd      }|j                  dt        d       |j                  dt        dd	
       |j                  dg ddd       |j                  dt        d       |j                  ddt        d       |j                  ddt        d       |j                  dt        d       |j                  dt        d       |j                  ddd       |j                  dt        d        |j                  d!dd"       |j                  d#t        d$d%&       |j	                  t
        '       y )(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--force-download
store_truezFIf True, the files will be downloaded even if they are already cached.)actionr   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     o/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/huggingface_hub/cli/download.pyregister_subcommandz#DownloadCommand.register_subcommand6   s    ++J=Z+[$$C&d 	% 	
 	$$c3s 	% 	
 	$$1G	 	% 	
 	$$c 	% 	

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

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

 	$$X	 	% 	
 	$$/$:    argsreturnNc                    |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _        |j                  | _	        |j                  | _
        |j                  | _        y )N)tokenr   r   	repo_typerevisionincludeexclude	cache_dir	local_dirforce_downloadquietmax_workers)selfr*   s     r'   __init__zDownloadCommand.__init__q   s    ZZ
 LL$(NN"nn'+}},0LL,0LL(,(,$($7$7::
 $ 0 0r)   c                    | j                   r`t                t        j                         5  t        j                  d       t        | j                                d d d        t                y t        j                          t        | j                                t        j                          y # 1 sw Y   t                y xY w)Nignore)r5   r   warningscatch_warningssimplefilterprint	_downloadr   r   set_verbosity_infoset_verbosity_warning)r7   s    r'   runzDownloadCommand.run   s    ::!#((* (%%h/dnn&'( !"&&($.."#))+( !"s   /B//Cc                 ^   t        | j                        dkD  rr| j                  -t        | j                        dkD  rt        j                  d       | j
                  -t        | j
                        dkD  rt        j                  d       t        | j                        dk(  rgt        | j                  | j                  | j                  | j                  d   | j                  | j                  | j                  | j                  d	      S t        | j                        dk(  r| j                  }| j
                  }n| j                  }d }t        | j                  | j                  | j                  ||| j                  | j                  | j                  | j                  d| j                        S )Nr   z?Ignoring `--include` since filenames have being explicitly set.z?Ignoring `--exclude` since filenames have being explicitly set.   hf)	r   r.   r/   filenamer2   r4   r-   r3   library_name)r   r.   r/   allow_patternsignore_patternsr4   r2   r-   r3   rG   r6   )lenr   r0   r;   warnr1   r
   r   r.   r/   r2   r4   r-   r3   r   r6   )r7   rH   rI   s      r'   r?   zDownloadCommand._download   sH   t~~"||'C,=,A_`||'C,=,A_` t~~!#"..*..#22jj..!
 
  A%!\\N"llO!^^N"O LLnn]])+..nn**nn((
 	
r)   )r+   N)__name__
__module____qualname__staticmethodr   r(   r   r8   rB   r#   r?    r)   r'   r   r   5   sA    8;$5 8; 8;t1Y 14 1
,*
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_loggerrL   loggerr   rP   r)   r'   <module>r[      sG   0  1 ! # @ > 9 M 
		H	%@
/ @
r)   