
    jC                        d Z ddlZddlmZmZ ddlZddlmZmZ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mZmZmZmZ dd	lmZ dd
lmZ  e ee                    Z  ee          Z! ej"        dd e!D             e#          Z$ee#dz   ej%        dd&                    e            d ee                     f         Z' ed          Z(e()                    dg d          ddddddeddddddfdee#dz   ej*        d          f         dede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e+ ej%        d$d%d&          f         d'ee+ ej%        d(d)          f         d*ee+ ej%        d+d,d-          f         d.ed/ed0dfd1            Z,e()                    d2d3d4g          	 	 	 dAd5ee# ej*        d6          f         d.ed"e'd/ed0df
d7            Z-e()                    d8g d9          	 	 	 dBd5ee# ej*        d6          f         d:ee+ ej%        d;d<          f         d=ee+ ej%        d>d?          f         d/ed0df
d@            Z.dS )Ca  Contains commands to interact with models on the Hugging Face Hub.

Usage:
    # list models on the Hub
    hf models ls

    # list models with a search query
    hf models ls --search "llama"

    # get info about a model
    hf models info Lightricks/LTX-2
    N)	Annotatedget_args)CLIErrorRepositoryNotFoundErrorRevisionNotFoundError)ExpandModelProperty_TModelSort_T)	ModelCard   )REPO_LIST_DEFAULT_LIMIT	AuthorOpt	FilterOptLimitOptRevisionOpt	SearchOptTokenOptapi_object_to_dict
get_hf_apimake_expand_properties_parsertyper_factory)list_repo_files_cmd)outModelSortEnumc                     i | ]}||S  r   ).0ss     ]/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/huggingface_hub/cli/models.py
<dictcomp>r   7   s    +H+H+HQAq+H+H+H    )typezComma-separated properties to return. When used, only the listed properties (and id) are returned. Example: '--expand=downloads,likes,tags'. Valid: z, .)helpcallbackz Interact with models on the Hub.)r#   z	list | ls)z(hf models ls --sort downloads --limit 10z1hf models ls --search "llama" --author meta-llamaz:hf models ls --num-parameters min:6B,max:128B --sort likesz-hf models ls meta-llama/Llama-3.2-1B-Instructz0hf models ls meta-llama/Llama-3.2-1B-Instruct -Rz7hf models ls meta-llama/Llama-3.2-1B-Instruct --tree -h)examplesFrepo_idzRModel ID (e.g. `username/repo-name`) to list files from. If omitted, lists models.searchauthorfilternum_parametersz2Filter by parameter count, e.g. 'min:6B,max:128B'.sortzSort results.limitexpandhuman_readablez--human-readablez-hz=Show sizes in human readable format (only for listing files).as_treez--treez3List files in tree format (only for listing files).	recursivez--recursivez-Rz0List files recursively (only for listing files).revisiontokenreturnc           
         | |t          j        d          |t          j        d          |t          j        d          |t          j        d          |t          j        d          |t          k    rt          j        d          |t          j        d          t          | d	||	|
||
          S |	rt          j        d          |
rt          j        d          |rt          j        d          |t          j        d          t	          |          }|r|j        nd}d |                    |||||||          D             }t          j        |           dS )zList models on the Hub, or files in a model repo.

    When called with no argument, lists models on the Hub.
    When called with a model ID, lists files in that model repo.
    Nz'Cannot use --search when listing files.z'Cannot use --author when listing files.z'Cannot use --filter when listing files.z/Cannot use --num-parameters when listing files.z%Cannot use --sort when listing files.z&Cannot use --limit when listing files.z'Cannot use --expand when listing files.model)r&   	repo_typer.   r/   r0   r1   r2   z&Cannot use --tree when listing models.z+Cannot use --recursive when listing models.z0Cannot use --human-readable when listing models.z*Cannot use --revision when listing models.r2   c                 ,    g | ]}t          |          S r   )r   )r   
model_infos     r   
<listcomp>zmodels_ls.<locals>.<listcomp>   s0        	:&&  r    )r)   r(   r'   r*   r+   r,   r-   )	typerBadParameterr   r   r   valuelist_modelsr   table)r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   apisort_keyresultss                   r   	models_lsrC   F   s   b $%NOOO$%NOOO$%NOOO%$%VWWW$%LMMM+++$%MNNN$%NOOO")
 
 
 	
  K !IJJJ P !NOOO U !STTT !MNNN
5
!
!
!C!+tzztH //) * 
 
  G Igr    infoz/hf models info meta-llama/Llama-3.2-1B-Instructz<hf models info Qwen/Qwen3.5-9B --expand downloads,likes,tagsmodel_idz)The model ID (e.g. `username/repo-name`).c                    t          |          }	 |                    | ||          }nJ# t          $ r}t          d|  d          |d}~wt          $ r}t          d| d|  d          |d}~ww xY wt          j        |           dS )	z"Get info about a model on the Hub.r7   )r&   r1   r-   zModel 'z' not found.Nz
Revision 'z' not found on 'z'.)r   r9   r   r   r   r   dict)rE   r1   r-   r2   r@   rD   es          r   models_inforI      s     5
!
!
!CS~~h&~QQ" @ @ @777788a?  S S SJHJJhJJJKKQRRSHTNNNNNs    + 
A2A		A2A--A2card)z$hf models card google/gemma-4-31B-itz/hf models card google/gemma-4-31B-it --metadataz=hf models card google/gemma-4-31B-it --metadata --format jsonz+hf models card google/gemma-4-31B-it --textmetadataz
--metadataz'Output only the metadata from the card.textz--textz(Output only the text body (no metadata).c                 R   |r|rt          d          t          j        | |          }|r-t          j        |j                                                   dS |rt          j        |j                   dS t          j        |j                   t          j	        d|  d           dS )z3Get the model card (README) for a model on the Hub.z---metadata and --text are mutually exclusive.r7   zUse `hf models card z/ --metadata` to extract only the card metadata.N)
r   r
   loadr   rG   datato_dictrL   contenthint)rE   rK   rL   r2   rJ   s        r   models_cardrS      s       HD HFGGG>(%000D c""$$%%%%%	 caaaabbbbbr    )NNN)FFN)/__doc__enumtypingr   r   r;   huggingface_hub.errorsr   r   r   huggingface_hub.hf_apir   r	   huggingface_hub.repocardr
   
_cli_utilsr   r   r   r   r   r   r   r   r   r   r   _file_listingr   _outputr   sorted_EXPAND_PROPERTIES_SORT_OPTIONSEnumstrr   Optionjoin	ExpandOpt
models_clicommandArgumentboolrC   rI   rS   r   r    r   <module>ri      s     & & & & & & & &  [ [ [ [ [ [ [ [ [ [ E E E E E E E E . . . . . .                          / . . . . .       VHH%:;;<< %%	/+H+H-+H+H+HsSSS $JEL E  ei  en  en  oA  eB  eB  E  E  E../ABB  	 ] BCCC
     
 
 	 	 	- 	 	 	 ?U Ud
pqqq	sU
 U U U d
NOOO	QU /***	,U  !U" #U$ '4sttt	v%U, X$YZZZ	\-U4 ]D/abbb	d5U< =U> ?U@ 
AU U U
 
Up 
9F    !	 ^U^1\]]]]^  	
 
   " 
      mrej	c c^U^1\]]]]^clel<>ghhhhic D,%,x6`aaaa
bc 	c
 
c c c c c cr    