Ë
    -Œ:j)  ã                   ó|  — d 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 ddlmZmZ d	d
lmZmZmZmZmZ d	dlmZ g d¢Z	 	 	 	 	 	 	 	 	 	 	 d$dedeee   dz   ej8                  d¬«      f   dededeee   dz   ej:                  d¬«      f   deee   dz   ej:                  d¬«      f   deedz   ej:                  d¬«      f   deedz   ej:                  d¬«      f   dee ej:                  d¬«      f   dee ej:                  d¬«      f   ded ee ej:                  d!¬«      f   d"dfd#„Z y)%an  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

    # Download a subfolder
    hf download HuggingFaceM4/FineVision art/ --repo-type=dataset

    # Download using an hf:// URI (repo type, revision and file path are read from the URI)
    hf download hf://datasets/HuggingFaceM4/FineVision@refs/pr/1/data/train.parquet
é    N)Ú	Annotated)Ú	constants)Úsnapshot_download)ÚCLIError)ÚDryRunFileInfoÚhf_hub_download)Ú_format_sizeÚparse_hf_urié   )Ú	RepoIdArgÚRepoTypeÚRepoTypeOptionalOptÚRevisionOptÚTokenOpt)Úout)z,hf download meta-llama/Llama-3.2-1B-InstructzGhf download meta-llama/Llama-3.2-1B-Instruct config.json tokenizer.jsonzXhf download meta-llama/Llama-3.2-1B-Instruct --include "*.safetensors" --exclude "*.bin"zGhf download meta-llama/Llama-3.2-1B-Instruct --local-dir ./models/llamaz=hf download HuggingFaceM4/FineVision art/ --repo-type datasetz6hf download hf://datasets/HuggingFaceH4/ultrachat_200kÚrepo_idÚ	filenamesz>Files to download (e.g. `config.json`, `data/metadata.jsonl`).)ÚhelpÚ	repo_typeÚrevisionÚincludez;Glob patterns to include from files to download. eg: *.jsonÚexcludez0Glob patterns to exclude from files to download.Ú	cache_dirzDirectory where to save files.Ú	local_dirz¹If set, the downloaded file will be placed under this directory. Check out https://huggingface.co/docs/huggingface_hub/guides/download#download-files-to-a-local-folder for more details.Úforce_downloadzFIf True, the files will be downloaded even if they are already cached.Údry_runzAIf True, perform a dry run without actually downloading the file.ÚtokenÚmax_workerszEMaximum number of workers to use for downloading files. Default is 8.Úreturnc                 ó¶  ‡ ‡‡‡‡‡‡‡‡	‡
‡‡— ‰�‰�t        d«      ‚‰ j                  t        j                  «      r§|�t        d‰ › d�«      ‚‰�t        d‰ › d�«      ‚t	        ‰ «      }|j
                  rt        d«      ‚|j                  }|r‰ j                  d«      r|dz  }|j                  |j                  |j                  cŠ ŠŠ|r6‰rt        d|› d	‰› d
�«      ‚|gŠn|xs t        j                  j                  Šdt        t        z  t         t           z  fˆˆ	ˆˆˆˆˆˆˆ ˆˆˆ
fd„}dt        t        z  t         t           z  ddfd„} | |«       «       y)zDownload files from the Hub.NzÒCannot use both `--local-dir` and `--cache-dir` at the same time. Use `--cache-dir` (or set the HF_HOME environment variable) for shared caching, or `--local-dir` for a one-off download to a specific directory.z3'--repo-type' cannot be used with an 'hf://' URI ('z').z2'--revision' cannot be used with an 'hf://' URI ('zBBuckets are not supported by `hf download`. Use `hf sync` instead.ú/z.Cannot combine a file path in the hf:// URI ('z') with positional filenames ú.r   c                  óF  •— ‰
�‰
ng } | D �cg c]  }|j                  d«      sŒ|‘Œ }}|D �cg c]  }|j                  d«      › d�‘Œ }}| D �cg c]  }|j                  d«      rŒ|‘Œ }}t        |«      dkD  rP‰�&t        ‰«      dkD  rt        d|d   › d|d   › d�«      ‚‰	�&t        ‰	«      dkD  rt        d|d   › d|d   › d�«      ‚t        |«      dkD  rJ‰�#t        ‰«      dkD  rt	        j
                  d	«       ‰	�#t        ‰	«      dkD  rt	        j
                  d
«       t        |«      dk(  r&t        |«      dk(  rt        ‰‰‰|d   ‰‰‰‰d‰¬«
      S t        |«      dk(  rt        |«      dk(  r‰}‰	}n||z   }d }t        ‰‰‰||‰‰‰‰d‰‰¬«      S c c}w c c}w c c}w )Nr!   z/**r   z$Cannot combine subfolder argument ('z,') with `--include`. Please use `--include "z*"` instead.z,') with `--exclude`. Please use `--include "z*"` with `--exclude` instead.z>Ignoring `--include` since filenames have been explicitly set.z>Ignoring `--exclude` since filenames have been explicitly set.r   zhuggingface-cli)
r   r   r   Úfilenamer   r   r   r   Úlibrary_namer   )r   r   r   Úallow_patternsÚignore_patternsr   r   r   r   r%   r   r   )ÚendswithÚrstripÚlenr   ÚwarningsÚwarnr   r   )Úfilenames_listÚfÚ
subfoldersÚsubfolder_patternsÚregular_filenamesr&   r'   r   r   r   r   r   r   r   r   r   Úrepo_type_strr   r   s          €€€€€€€€€€€€ú^/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/huggingface_hub/cli/download.pyÚrun_downloadzdownload.<locals>.run_download¡   s  ø€ Ø&/Ð&;™Àˆð "0ÖC˜A°1·:±:¸cµ?’aÐCˆ
ÐCØ=GÖH¸ §¡¨#£ ¨sÒ3ÐHÐÐHØ(6ÖN 1¸a¿j¹jÈ½ošQÐNÐÐNô Ð!Ó" QÒ&ØÐ"¤s¨7£|°aÒ'7ÜØ:¸:Àa¹=¸/ð J.Ø.8¸©m¨_¸LðJóð ð Ð"¤s¨7£|°aÒ'7ÜØ:¸:Àa¹=¸/ð J.Ø.8¸©m¨_Ð<Yð[óð ô Ð Ó! AÒ%ØÐ"¤s¨7£|°aÒ'7Ü—‘Ð^Ô_ØÐ"¤s¨7£|°aÒ'7Ü—‘Ð^Ô_ô Ð Ó! QÒ&¬3Ð/AÓ+BÀaÒ+GÜ"ØØ'Ø!Ø*¨1Ñ-Ø#Ø-ØØ#Ø.Øôð ô Ð Ó! QÒ&¬3Ð/AÓ+BÀaÒ+Gà$ˆNØ%‰Oð /Ð1CÑCˆNØ"ˆOä ØØ#ØØ)Ø+Ø)ØØØØ*Ø#Øô
ð 	
ùòe DùÚHùÚNs   ŒF£F­FÁFÁ%FÚresultc                 ó  — t        | t        «      rt        j                  d| ¬«       y t        | t        «      r| g} | D �cg c]  }|j
                  sŒ|‘Œ }}t        j                  dt        |«      › dt        | «      › dt        t        d„ |D «       «      «      › d�«       t        | d„ ¬	«      D �cg c]2  }|j                  |j
                  rt        |j                  «      nd
dœ‘Œ4 }}t        j                  |«       y c c}w c c}w )NÚ
Downloaded)Úpathz[dry-run] Will download z files (out of z) totalling c              3   ó4   K  — | ]  }|j                   –— Œ y ­w©N)Ú	file_size)Ú.0Úrs     r3   ú	<genexpr>z2download.<locals>._print_result.<locals>.<genexpr>ó   s   è ø€ Ò*N¸1¨1¯;­;Ñ*Nùs   ‚r"   c                 ó   — | j                   S r:   )r$   )Úxs    r3   ú<lambda>z1download.<locals>._print_result.<locals>.<lambda>ú   s
   € °Q·Z±Z€ ó    )Úkeyú-)ÚfileÚsize)Ú
isinstanceÚstrr   r5   r   Úwill_downloadÚtextr*   r	   ÚsumÚsortedr$   r;   Útable)r5   r=   rI   ÚinfoÚitemss        r3   Ú_print_resultzdownload.<locals>._print_resultç   sõ   € Ü�fœcÔ"Ü�J‰J�|¨&Õ1Øô �fœnÔ-Ø�XˆFØ$*Ö>˜q¨a¯o«ošÐ>ˆÐ>Ü�‰Ø&¤s¨=Ó'9Ð&:ð ;Ü˜F›�}ð %Ü&¤sÑ*NÀÔ*NÓ'NÓOÐPÐPQðSô	
ô ˜vÑ+?Ô@ö
ð
 ð Ÿ™Ø8<×8JÒ8Jœ T§^¡^Ô4ÐPSóð
ˆð 
ô 	�	‰	�%Õùò ?ùò
s   Á DÁDÂ27D)r   Ú
startswithr   ÚHF_PROTOCOLr
   Ú	is_bucketÚpath_in_repor(   ÚidÚtyper   r   ÚmodelÚvaluerH   r   Úlist)r   r   r   r   r   r   r   r   r   r   r   r   ÚurirT   r4   rP   r2   s   `` `````````    @r3   Údownloadr[   E   st  ÿû€ ðn Ð Ð!6ÜðOó
ð 	
ð ×Ñœ)×/Ñ/Ô0ØÐ ÜÐPÐQXÐPYÐY\Ð]Ó^Ð^ØÐÜÐOÐPWÈyÐX[Ð\Ó]Ð]Ü˜7Ó#ˆØ�=Š=ÜÐ_Ó`Ð`ð ×'Ñ'ˆÙ˜G×,Ñ,¨SÔ1Ø˜CÑˆLØ+.¯6©6°3·8±8¸S¿\¹\Ð(ˆ� ÙÙÜØDÀ\ÀNÐRoÐpyÐozÐz{Ð|óð ð &˜‰Ià"Ò4¤h§n¡n×;Ñ;ˆðD
œ#¤Ñ.´´nÑ1EÑE÷ D
÷ D
ð D
ðLœc¤NÑ2´T¼.Ñ5IÑIð Èdó ñ. ‘,“.Õ!rB   )NNNNNNNFFNé   )!Ú__doc__r+   Útypingr   ÚtyperÚhuggingface_hubr   Ú"huggingface_hub._snapshot_downloadr   Úhuggingface_hub.errorsr   Úhuggingface_hub.file_downloadr   r   Úhuggingface_hub.utilsr	   r
   Ú
_cli_utilsr   r   r   r   r   Ú_outputr   ÚDOWNLOAD_EXAMPLESrY   rH   ÚArgumentÚOptionÚboolÚintr[   © rB   r3   ú<module>rm      s  ðñó< Ý ã å %Ý @Ý +ß Iß <ç WÕ WÝ òÐ ð" 	Ø%)Ø ð 	ð 	ð 	ð 	ð 	ð 	Øð 	
ñiy"Øðy"àØˆS‰	�DÑØˆ�‰ØQô	
ð	ñðy"ð #ðy"ð ðy"ð ØˆS‰	�DÑØˆ�‰ØNô	
ð	ñðy"ð  ØˆS‰	�DÑØˆ�‰ØCô	
ð	ñð!y"ð, Øˆd‰
Øˆ�‰Ø1ô	
ð	ñð-y"ð8 Øˆd‰
Øˆ�‰ð Mô	
ð	ñð9y"ðD ØØˆ�‰ØYô	
ð	ñðEy"ðP ØØˆ�‰ØTô	
ð	ñðQy"ð\ ð]y"ð^ ØØˆ�‰ØXô	
ð	ñð_y"ðj 
ôky"rB   