o
    e                     @   s   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Z	dZ
dZdZd	Zd
dgZG dd deZe	e
fddZdd Zdd ZG dd deZdd ZdS )    N)ArgumentParser)__version__)init_logger)loggerih     z/appnormalZlightZdarkc                   @      e Zd Zdd ZdS )DefaultArgsc                 C   s   | d| _| dt| _| dt| _| dt| _| d| _| d| _	| dd| _
| d	d| _| d
d| _| dt| _| dd| _| dd | _| dd| _| dd| _| dd | _d S )Nlogdirhostportcache_timeoutlanguagepublic_pathapi_onlyFopen_browsermodel product	telemetryTthemedestbehaviorcomponent_tabs)getr
   default_hostr   default_portr   default_cache_timeoutr   r   r   r   r   r   default_productr   r   r   r   r   r   )selfargs r!   DD:\Projects\ConvertPro\env\Lib\site-packages\visualdl/server/args.py__init__!   s   zDefaultArgs.__init__N__name__
__module____qualname__r#   r!   r!   r!   r"   r	           r	   c                 C   sD   | s t  } zt j| |fdd W | S  t jy   d} Y | S w | S )N   )timeout	localhost)socketgetfqdncreate_connectionerror)r   r   r!   r!   r"   get_host3   s   r0   c                 C   s   | j s| jdkrtd td | jd ur'| jds'td td | jd ur?| jtvr?td	| j td g d}| j
d ur`| j
D ]}||vr_td	|| td qKd S d S )N/z'Public path cannot be set to root path.z+Public path should always start with a `/`.zTheme {} is not support.)ZscalarimagetextZ
embeddingsZaudioZ	histogramZhyper_parametersZstatic_graphZdynamic_graphZpr_curveZ	roc_curveZprofilerZx2paddleZfastdeploy_serverZfastdeploy_clientz9Component_tab {} is not support. Please choose tabs in {})r   r   r   r/   sysexit
startswithr   support_themesformatr   )r    Zsupported_tabsZcomponent_tabr!   r!   r"   validate_args=   s*   







r:   c                 C   sP   | j d u r| jr
dnt| _ n| j d| _ | jrd| _| js&t| j| j| _| S )Nr   r1   F)r   r   default_public_pathrstripr   r   r0   r   )r    r!   r!   r"   format_args]   s   
r=   c                   @   r   )	ParseArgsc                 K   s   t |}t| t|}|j| _|j| _|j| _|j| _|j| _|j| _|j	| _	|j
| _
|j| _|j| _|j| _|j| _|j| _|j| _|j| _d S )N)r	   r:   r=   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   kwargsr    r!   r!   r"   r#   p   s$   zParseArgs.__init__Nr$   r!   r!   r!   r"   r>   o   r(   r>   c                  C   sh  t dddd} | jddddd	 | jd
dddd	 | jddttddd | jddttddd | jdtdddd | jdddttdd | jddtdddd | jdtdd dd!d" | jd#d$d%d&d'd( | jd)d*d+d,d-d. | jd/d0d1t	d2 | jd3tdt
d4d | jd5d6d7d8d9d( | jd:dd;dtd<d= | jd>d?d@dA | jdBd?dC |  }t|j t|S )Dz
    :return:
    ZVisualDLz,VisualDL, a tool to visualize deep learning.z>For more information: https://github.com/PaddlePaddle/VisualDL)progdescriptionepilogz--logdirstore+zlog file directory)actionnargshelpz--component_tabsz&component tabs presented in html page.z-pz--portzport of %(prog)s board)typedefaultrE   rG   z-tz--hostzbind %(prog)s board to ip/hostz--modelr   zmodel file path)rH   rE   rI   rG   z--cache-timeoutr   z?memory cache timeout duration in seconds (default: %(default)s))rE   r   rH   rI   rG   z-Lz
--languageNzspecify the default languagez--public-pathr   zset public path)rH   rE   r   rI   rG   z
--api-only
store_truer   Fzserve api only)rE   r   rI   rG   z	--verbosez-vcountr   z2set log level, use -vvv... to get more information)rE   rI   rG   z	--versionversionz%(prog)s {})rE   rL   z	--productzspecify the productz--disable-telemetrystore_falser   Tzdisable telemetryz--themer   z	set theme)rE   r   rI   choicesrG   r   ?zset destination for log)rF   rG   r   )rF   )r   add_argumentintr   strr   floatr   r9   r   r   r8   
parse_argsr   verbosevars)parserr    r!   r!   r"   rT      s   
rT   )r,   r5   argparser   Zvisualdlr   Zvisualdl.server.logr   r   r   r   r   r;   r   r8   objectr	   r0   r:   r=   r>   rT   r!   r!   r!   r"   <module>   s$   
 