o
    ߥi                     @   sv   d dl mZ d dlmZ d dlmZ e Zdd ZG dd deZG dd	 d	eZ	G d
d deZ
G dd deZdS )    )ArgumentParser)
CLICommand)PluginsManagerc                 C   s   t | S )z> Function which will be called for a specific sub parser.
    )
PluginsCMDargs r   J/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/cli/plugins.pysubparser_func   s   r
   c                   @   s2   e Zd ZdZdd ZedefddZdd Zd	S )
r   pluginc                 C   s
   || _ d S Nr   )selfr   r   r   r	   __init__   s   
zPluginsCMD.__init__parsersc                 C   sF   |  tj}|jdd}t| t| t| |jt	d dS )z* define args for install command.
        command)dest)funcN)

add_parserr   nameadd_subparsersPluginsInstallCMDdefine_argsPluginsUninstallCMDPluginsListCMDset_defaultsr
   )r   parser
subparsersr   r   r	   r      s   


zPluginsCMD.define_argsc                 C   s`   t | j | jjtjkrt| j | jjtjkrt| j | jjtjkr.t| j d S d S r   )printr   r   r   r   executer   r   )r   r   r   r	   r   $   s   
zPluginsCMD.executeN)	__name__
__module____qualname__r   r   staticmethodr   r   r   r   r   r   r	   r      s    r   c                   @   .   e Zd ZdZedefddZedd ZdS )r   installr   c                 C   sL   |  tj}|jdtdd dd |jddtd dd |jd	d
tddd d S )Npackage+$Name of the package to be installed.typenargsdefaulthelpz--index_urlz-i%Base URL of the Python Package Index.r)   r+   r,   z--force_updatez-fFzIf force update the package)r   r   r   add_argumentstrr   r$   r   r   r	   r   1   s,   
zPluginsInstallCMD.define_argsc                 C   s   t jt| j| j| jd d S )N)	index_urlforce_update)plugins_managerinstall_pluginslistr%   r2   r3   r   r   r   r	   r   G   s
   
zPluginsInstallCMD.executeNr   r    r!   r   r"   r   r   r   r   r   r   r	   r   .   s    r   c                   @   r#   )r   	uninstallr   c                 C   s8   |  tj}|jdtdd dd |jddtddd	 d S )
Nr%   r&   r'   r(   z--yesz-yFr-   r.   )r   r   r   r/   r0   r1   r   r   r	   r   R   s   
zPluginsUninstallCMD.define_argsc                 C   s   t jt| j| jd d S )N)is_yes)r4   uninstall_pluginsr6   r%   yesr   r   r   r	   r   b   s   zPluginsUninstallCMD.executeNr7   r   r   r   r	   r   O   s    r   c                   @   r#   )r   r6   r   c                 C   s$   |  tj}|jddtd dd d S )Nz--allz-az6Show all of the plugins including those not installed.r.   )r   r   r   r/   r0   r1   r   r   r	   r   j   s   
zPluginsListCMD.define_argsc                 C   s   t jtd d S )N)show_all)r4   list_pluginsallr   r   r   r	   r   t   s   zPluginsListCMD.executeNr7   r   r   r   r	   r   g   s    	r   N)argparser   modelscope.cli.baser   modelscope.utils.pluginsr   r4   r
   r   r   r   r   r   r   r   r	   <module>   s   !