
                  
          S 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	  SSK
Jr  SSK
Jr  SS	KJr  S
rSrSrSrSrSrSrS\ \ S\ \ S\ \ S3
rS\ \ S3rS\ \ S3rS\ \ S\ \ S\ \ S3
r\	R4                  " \	R6                  R8                  \	R6                  R:                  \	R6                  R<                  5      \	R>                   " S S\	R@                  5      5       5       r!g)zQThe command lists the models in Model Garden and their supported functionalities.    )absolute_import)division)unicode_literals)client)base)	constants)endpoint_util)_IsDefaultUniversezformat("{0:s}@{1:s}/{2:s}", name, versionId, name.regex("publishers/hf-.*", "@hf", "@mg")).sub("publishers/hf-", "").sub("publishers/", "").sub("models/", "").sub("@001/@hf", ""). sub("/@mg", ""):sort=1z-format("{0:s}@{1:s}", name, versionId):sort=1z:label=MODEL_IDz1supportedActions.multiDeployVertex.yesno(yes=Yes)z:label=CAN_DEPLOYz%publisherModelTemplate.yesno(yes=Yes)z:label=CAN_PREDICTztable(z, )c                   .    \ rS rSrSr\S 5       rS rSrg)List?   a,  List the publisher models in Model Garden.

This command lists either all models in Model Garden or all Hugging
Face models supported by Model Garden.

## EXAMPLES

To list all models in Model Garden, run:

  $ gcloud ai model-garden models list

To list Hugging Face models that can be deployed in Model Garden, run:

  $ gcloud ai model-garden models list --can-deploy-hugging-face-models

To list models with `gemma` in their names, run:

  $ gcloud ai model-garden models list --model-filter=gemma

Note: Since the number of Hugging Face models is large, the default limit is
set to 500 with a page size of 100 when listing supported Hugging Face models.
To override the limit or page size, specify the --limit or --page-size flags,
respectively. To list all models in Model Garden, use `--limit=unlimited`.
c                 2   U R                   R                  [        5        U R                  SSSSSS9  U R                  SSS SSS9  U R                  S	SSSS
S9  [        R
                  R                  U 5        [        R                  R                  U S5        g )Nz --can-deploy-hugging-face-models
store_trueFz>Whether to only list Hugging Face models that can be deployed.)actiondefaultrequiredhelpz--model-filterstorezNFilter to apply to the model names or the display names of the list of models.z--full-resource-namez6Whether to return the full resource name of the model.i  )	display_info	AddFormat_DEFAULT_TABLE_FORMATadd_argumentr   URI_FLAGRemoveFromParser
LIMIT_FLAG
SetDefault)parsers    *lib/surface/ai/model_garden/models/list.pyArgs	List.Args]   s    
!!"78
*M     	 E   	MM""6*OOvt,    c                 l   [         R                  nUR                  (       a#  UR                  5       R	                  [
        5        UR                  (       aN  UR                  5       R	                  UR                  (       a  [        O[        5        UR                  c  SUl	        [        5       (       a  SOS n[        R                  " X#S9   [        R                  " U5      nUR                  UR                   UR                  UR                  UR"                  S9sS S S 5        $ ! , (       d  f       g = f)Nd   zus-central1)region)limit
batch_sizelist_hf_modelsmodel_filter)r   BETA_VERSIONfull_resource_nameGetDisplayInfor    _FULL_RESOURCE_NAME_TABLE_FORMATcan_deploy_hugging_face_models%_FULL_RESOURCE_NAME_ONLY_TABLE_FORMAT#_SHORT_MODEL_NAME_ONLY_TABLE_FORMAT	page_sizer
   r	   AiplatformEndpointOverrides	client_mgModelGardenClientListPublisherModelsr&   r)   )selfargsversionr%   	mg_clients        r   RunList.Run{   s    $$G
%%&FG
 **
%%$$ 02
 
	022]F		2	27	J--g6i**

^^<<((	 +  
K	J	Js   AD%%
D3 N)	__name__
__module____qualname____firstlineno____doc__staticmethodr    r:   __static_attributes__r<   r"   r   r   r   ?   s     
2 - -:r"   r   N)"rA   
__future__r   r   r   &googlecloudsdk.api_lib.ai.model_gardenr   r3   googlecloudsdk.callioper   googlecloudsdk.command_lib.air   r	   )googlecloudsdk.command_lib.ai.region_utilr
   _SHORT_NAME_FORMAT_FULL_RESOURCE_NAME_FORMAT_MODEL_ID_LABEL_CAN_DEPLOY_FILTER_CAN_DEPLOY_LABEL_CAN_PREDICT_FILTER_CAN_PREDICT_LABELr   r0   r/   r-   ReleaseTracksReleaseTrackALPHABETAGAUniverseCompatibleListCommandr   r<   r"   r   <module>rW      sq   X '  ' F ( 3 7
  M #H ' = )    1 2-. //03    13 $ '((9; & '((9 :-. //03 ! T..33T5F5F5I5I R4 R Rr"   