o
    W+ i                     @   s   d dl Z 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dZejejeZd	d
 ZG dd deZdS )    N)ArgumentParser)Optional)
CLICommand)scan_cache_dir)CacheNotFound)
get_logger)	log_levelc                 C   s   t | S )z> Function which will be called for a specific sub parser.
    )ScanCacheCMD)args r   d/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/modelscope/cli/scancache.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	   z
scan-cachec                 C   s   || _ |j| _d S )N)r
   dir	cache_dir)selfr
   r   r   r   __init__   s   zScanCacheCMD.__init__parsersc                 C   s6   |  tj}| }|jdtddd |jtd dS )z; define args for create pipeline template command.
        z--dirNzLcache directory to scan (optional). Default to the default ModelScope cache.)typedefaulthelp)func)
add_parserr	   nameadd_mutually_exclusive_groupadd_argumentstrset_defaultsr   )r   parsergroupr   r   r   define_args   s   zScanCacheCMD.define_argsc              
   C   s   zt   }t| j}t   }W n ty, } z|j}td|  W Y d }~d S d }~ww t|  tdt|| d dt|j d|j	 d t|j
dkrhdt|j
 d	}t| |j
D ]}t| qad S d S )
NzCache directory not found: z	
Done in    zs. Scanned z repo(s) for a total of .r   zGot z warning(s) while scanning.)timer   r   r   printZexport_as_tableroundlenZreposZsize_on_disk_strwarnings)r   t0
cache_infot1excr   messagewarningr   r   r   execute/   s.   


zScanCacheCMD.executeN)	__name__
__module____qualname__r   r   staticmethodr   r   r-   r   r   r   r   r	      s    r	   )loggingosr"   argparser   typingr   Zmodelscope.cli.baser   Zmodelscope.hub.cache_managerr   Zmodelscope.hub.errorsr   Zmodelscope.utils.loggerr   WARNINGloggerpathdirnameabspath__file__current_pathr   r	   r   r   r   r   <module>   s   