o
    e	                     @   s4   d dl Z d dlZd dlmZmZ G dd deZdS )    N)Responsesend_from_directoryc                   @   sF   e Zd Zg dZg dZdddddZi Zdd Zdd	 Zd
d Z	dS )Template)z.htmlz.jsz.css)z	text/htmlzapplication/javascriptztext/cssz/app )ZPUBLIC_PATHZAPI_TOKEN_KEYZTELEMETRY_IDZTHEMEc              
      s  t j|s
td|| _|   t |D ]n\}}}|D ]f t fdd| jD rt j| }t j	||
t jjd}t|ddd)}| }	| j }
|
| |
 D ]\}}|	
d| d	 |}	qYW d    n1 srw   Y  |	t d
 f| j|< qqd S )Nztemplate file does not exist.c                 3   s    | ]}  |V  qd S )N)endswith).0namefile HD:\Projects\ConvertPro\env\Lib\site-packages\visualdl/server/template.py	<genexpr>)   s    z$Template.__init__.<locals>.<genexpr>/rzUTF-8)encodingz{{z}}r   )ospathexists	Exception_Template__add_mime_typeswalkanyextnamejoinrelpathreplacesepopenreaddefaultscopyupdateitems	mimetypes
guess_type_Template__files)selfr   contextroot_dirsfiles	file_pathrel_pathfcontentZenvskeyvaluer   r	   r   __init__"   s*   

zTemplate.__init__c                 C   s6   || j v rt| j | d | j | d dS t| j|S )Nr      )responsemimetype)r%   r   r   r   )r&   r
   r   r   r   render4   s   
 zTemplate.renderc                 C   s.   t | jD ]\}}t| j| pd| qd S )Nzapplication/octet-stream)	enumerater   r#   add_type)r&   iextr   r   r   Z__add_mime_types9   s   zTemplate.__add_mime_typesN)
__name__
__module____qualname__r   r#   r   r%   r1   r5   r   r   r   r   r   r      s    r   )r   r#   Zflaskr   r   objectr   r   r   r   r   <module>   s   