o
    viM                     @   s  d Z ddlZddlZddlmZmZm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mZmZmZmZmZmZmZmZmZ eeeZeeZejd	d
d eD edZ eee ej!dd"e deedf Z#eddZ$e$%d							d&dedededeee  ej!ddf dede#deddfddZ&e$%d 			d'd!eeej'd"df d#ede#deddf
d$d%Z(dS )(a  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Optionalget_args)RepositoryNotFoundErrorRevisionNotFoundError)ExpandModelProperty_TModelSort_T)ANSI   )
	AuthorOpt	FilterOptLimitOptRevisionOpt	SearchOptTokenOpt
get_hf_apimake_expand_properties_parserrepo_info_to_dicttyper_factoryModelSortEnumc                 C   s   i | ]}||qS  r   ).0sr   r   Y/home/air/biblejyuku/back/venv/lib/python3.10/site-packages/huggingface_hub/cli/models.py
<dictcomp>5   s    r   )typezWComma-separated properties to expand. Example: '--expand=downloads,likes,tags'. Valid: z, .)helpcallbackz Interact with models on the Hub.)r   ls
   searchauthorfiltersortzSort results.limitexpandtokenreturnc           
   	   C   sN   t |d}|r
|jnd}dd |j||| |||dD }	ttj|	dd dS )zList models on the Hub.r'   Nc                 S   s   g | ]}t |qS r   )r   )r   
model_infor   r   r   
<listcomp>T   s    zmodels_ls.<locals>.<listcomp>)r#   r"   r!   r$   r%   r&      indent)r   valuelist_modelsprintjsondumps)
r!   r"   r#   r$   r%   r&   r'   apisort_keyresultsr   r   r   	models_lsD   s   
r7   infomodel_idz)The model ID (e.g. `username/repo-name`).revisionc              
   C   s   t |d}z
|j| ||d}W n7 ty'   tdt|  d tjdd tyF   tdtt	| dt|  d	 tjddw tt
jt|d
d dS )z"Get info about a model on the Hub.r)   )repo_idr:   r&   zModel z not found.r
   )codez	Revision z not found on r   r,   r-   N)r   r*   r   r1   r	   boldtyperExitr   strr2   r3   r   )r9   r:   r&   r'   r4   r8   r   r   r   models_info]   s   
&rA   )NNNNr    NN)NNN))__doc__enumr2   typingr   r   r   r>   huggingface_hub.errorsr   r   huggingface_hub.hf_apir   r   huggingface_hub.utilsr	   
_cli_utilsr   r   r   r   r   r   r   r   r   r   sorted_EXPAND_PROPERTIES_SORT_OPTIONSEnumr@   r   Optionjoin	ExpandOpt
models_clicommandr7   ArgumentrA   r   r   r   r   <module>   s   0
	
	
