
    ujM                         d dl 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	 d dl
mZ d dlmZ  ee j                  Zd	 Z G d
 de          ZdS )    N)ArgumentParser)
CLICommand)concurrent_download)HubApi)DEFAULT_SKILLS_DIR)
get_logger)	log_levelc                      t          |           S )z8Function which will be called for a specific sub parser.)	SkillsCMDargss    e/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/modelscope/cli/skills.pysubparser_funcr      s    T??    c                   >    e Zd ZdZdZd Zedefd            Zd Z	dS )r   zCommand for managing skills.skillsc                     || _         d S )Nr   )selfr   s     r   __init__zSkillsCMD.__init__   s    			r   parsersc                    |                      t          j                  }|                    dd          }|                     dd          }|                    dt
          dd	
           |                    dt
          dd           |                    dt
          dd           |                    dt          dd           |                    t                     dS )zDefine args for skills command.skills_actionzskills subcommands)desthelpaddzDownload and install skills)r   	skill_ids+z/Skill IDs to download, in format: <path>/<name>)typenargsr   z--tokenNzAccess token for authentication)r   defaultr   z--local_dirz7Target directory for skills (default: ~/.agents/skills)z--max-workers   z)Maximum concurrent downloads (default: 8))func)	
add_parserr   nameadd_subparsersadd_argumentstrintset_defaultsr   )r   parser
subparsersr#   s       r   define_argszSkillsCMD.define_args   s*    ##IN33** '; + = =
  **5 + 7 7
B	 	  	D 	D 	D
 	2	 	  	4 	4 	4
 	J	 	  	L 	L 	L
 	<	 	  	> 	> 	>
 	^44444r   c                    t          | j        d          r| j        j        st          d           d S t          | j        d          r| j        j        st          d           d S t          | j        j                  | j        j        pt          | j        j        }t          dt          |           d           t          |          dk    ry	 
                    |d	         
          }t          d|            d S # t          $ r:}t          d|d	          d|            t          j        d           Y d }~d S d }~ww xY wfd}t          ||| j        j        d           d S )Nr   z8Usage: modelscope skills add <skill_id1> <skill_id2> ...r   zONo skill IDs provided. Usage: modelscope skills add <skill_id1> <skill_id2> ...)tokenzDownloading z skill(s)...   r   skill_id	local_dirzSkill downloaded to: zFailed to download skill z: c                     	                      |           }| |d fS # t          $ r}| d t          |          fcY d }~S d }~ww xY w)Nr0   )download_skill	Exceptionr'   )r1   	skill_direapir2   s      r   _download_onez(SkillsCMD.execute.<locals>._download_oneX   sw    4 # 2 2!)Y !3 !@ !@I$i66  4 4 4$dCFF33333334s    
AA A Askill)max_workers	item_name)hasattrr   r   printr   r   r.   r2   r   lenr4   r5   sysexitr   r;   )r   r   r6   r7   r9   r8   r2   s        @@r   executezSkillsCMD.execute<   s   ty&( ( 	/3y/F	LMMMFty+.. 	di6I 	 0 1 1 1F49?+++I'=+=	I'	9S^^999:::y>>Q..&q\Y / @ @	9i99:::::   E)A,EE!EEFFF
4 4 4 4 4 4   I1!	# # # # # #s   /D 
E	/EE	N)
__name__
__module____qualname____doc__r$   r   staticmethodr   r,   rB    r   r   r   r      sd        &&D   5^ 5 5 5 \5>(# (# (# (# (#r   r   )loggingr@   argparser   modelscope.cli.baser   modelscope.cli.utilsr   modelscope.hub.apir   modelscope.hub.constantsr   modelscope.utils.loggerr   WARNINGloggerr   r   rH   r   r   <module>rR      s     



 # # # # # # * * * * * * 4 4 4 4 4 4 % % % % % % 7 7 7 7 7 7 . . . . . .	go	.	.	.  
P# P# P# P# P#
 P# P# P# P# P#r   