a
    ==ico                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
Z	ejejeZejeejedejeddZdadd Zdd Zd	d
 Zdd Zeddd Zeddd Zdd Zedkreejdd  dS )    NZ	templatesZstatic)Ztemplate_folderZstatic_folderc                 C   sB   |    | jdd }| jd}tj| j| j||  dS )Nz<script>   z	</script>resultscript)ZbuildcontentZhtmlcontentfindflaskjsonify	containerstrip)chartZscript_startZ
script_end r   g/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/mint/app.pyjsonify_nvd3   s    r   c              
   C   sH  zt | }W n4 tyB } zd| t|W  Y d }~S d }~0 0 tjtj| d }t	j
|d tjdd}tjdk rt|jd tj  d}ntj}t d|jd |}|j|||df dd |j|||df d	d |j|||d
f dd |j|||d
f ||df  dd |j|||d
f ||df  dd t|S )NCannot load file {}: {}r   Z_summary_chart.03gnameheightZy_axis_format   minxyr   max   mean   zm+stdzm-std)nploadtxt	Exceptionformatstrospathsplitextbasenamenvd3	lineChartargschart_heightsampler   shapearange	add_serier   )filenamedatae
chart_namer   stepxdatar   r   r   visualize_summary(   s(    &
$$r4   c           
   
   C   s  z*t | }|jdkr(|d d t jf }W n4 ty^ } zd| t|W  Y d }~S d }~0 0 tj	tj
| d }tj|d tjdd}tjdk rt|jd tj  d}ntj}t d|jd |}|jd dkr^|jd | }|d ||  ||f}|j|d | |jdddd	 |j|d | |jddd
d	 |j|||df |d	 n@tdt|jd tjD ]&}	|j||||	f d||	d	 qvt|S )Nr   r   r   Z
_log_chartr   r   )ZaxisZrunning_minr   Zrunning_maxz{}[{}])r   r   ndimZnewaxisr   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r   r+   r,   Zreshaper-   r   rangeZ
max_curvesr   )
r.   r/   r0   r1   r   r2   r3   Z
trunc_sizeZrunning_matir   r   r   visualize_print_logA   sJ    

&







r8   c                 C   sL   t jtj| }| dr"t|S | dr4t|S tj	d
| ddS d S )NsummarylogzUnsupport file: {} r   )r"   r#   joinr(   rootendswithr4   r8   r   r   r    )r.   fullnamer   r   r   visualize_fileo   s    

r@   /c                  C   s@   t  tjtjd} |   dd | D }tjdtj||dS )Nz*.*c                 S   s   g | ]}t j|qS r   )r"   r#   r%   ).0fr   r   r   
<listcomp>       zindex.<locals>.<listcomp>z
index.html)r=   namesZdebug_messages)	globr"   r#   r<   r(   r=   sortr   Zrender_template)filesrF   r   r   r   index|   s    rJ   z/visualization/<string:name>c                 C   s   t | }|S )N)r@   )r   retr   r   r   visualization   s    rL   c                 C   s   t d}|jddtddd |jddtd	d
d |jdtddd |jdtddd |jddtddd || atj	tj
t}|tj tdtj tjj   d S )NzThe mint visualizer.z-pz--porti  zThe flask port to use.)typedefaulthelpz-rz--root.z0The root folder to read files for visualization.z--max_curves   z2The max number of curves to show in a dump tensor.z--chart_heighti,  zThe chart height for nvd3.z-sz--samplei8zSample every given number of data points. A negative number means the total points we will sample on the whole curve. Default 100 points.z#Tornado server starting on port {}.)argparseArgumentParseradd_argumentintr!   
parse_argsr(   tornadoZ
httpserverZ
HTTPServerZwsgiZWSGIContainerapplistenportprintr    ZioloopZIOLoopinstancestart)argvparserserverr   r   r   main   sN    


ra   __main__r   )rR   r   rG   numpyr   r&   r"   sysZtornado.httpserverrW   Ztornado.wsgir#   abspathdirname__file__Z
__folder__ZFlask__name__r<   rX   r(   r   r4   r8   r@   ZrouterJ   rL   ra   r^   r   r   r   r   <module>   s4   .

-