o
    e                     @   sx   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 Zdd	 ZdddZdd ZdddZdS )    N)bfile)is_VDLRecord_file)CONFIG_PATH)loggerc                  C   s>   t td} t| d }W d    |S 1 sw   Y  |S )Nr
server_url)openr   jsonload)fpr    r   ED:\Projects\ConvertPro\env\Lib\site-packages\visualdl/server/serve.pyget_server_url   s   
r   c                  C   s   t  d } tj| d }|S )Nz/sts/)url)r   requestspostr	   )r   resr   r   r   apply_for_token"   s   
r    c           
      K   sn   t  d }t| |d}ddi}tj|||d }|d}|d}d|kr0|d	}	|	S t| d S )
Nz/url/pathmodelzContent-Typezapplication/json)r   headersdatacodemsg000000r   )r   r	   dumpsr   r   getr   error)
r   r   kwargsr   r   r   r   err_coder   r   r   r   r   get_url)   s   




r"   c           	         s   i }i }| D ]}t |D ]\}}}|||i qq| D ]"\ } fdd|D }|jdd t|dkrA| |d i q|S )zGet logs.

    Every dir(means `run` in vdl) has only one log(meads `actual log file`).

    Returns:
        walks: A dict like {"exp1": "vdlrecords.1587375595.log",
                            "exp2": "vdlrecords.1587375685.log"}
    c                    s$   g | ]}t t |d dr|qS )F)r   check)r   r   join).0tagrunr   r   
<listcomp>I   s    
z$get_vdl_log_file.<locals>.<listcomp>T)reverser   )r   walkupdateitemssortlen)	ZlogdirswalksZ
walks_templogdirrootdirsfilestagsZ	tags_tempr   r'   r   get_vdl_log_file9   s   	r6   c                 C   s,  | s|st d d S i }| rt| }|st d|   d S t }|d}|d}d|krD|d}|d}|d}|d	}	nt | d S |rQ|rQ|sSd S tj|||d
}
| D ]\}}|
||}|
j	|	|d q_|rt
j|dkrt d n|
j	|	|d t|	|d}td|  d S )NzYMust specify directory to upload via `--logdir` or specify model to upload via `--model`.z There is no valid log file in %sr   r   r   sts_aksts_sktokendir)Zbos_akZbos_skZbos_sts)r   filenamei  @z"Size of model must less than 100M.r   z)View your visualization results at: `%s`.)r   r   r6   r   r   r   ZBosConfigClientr-   r$   Zupload_object_from_fileosr   getsizer"   print)r1   r   r0   r   r!   r   r7   r8   Z	sts_tokenZ	bucket_idZbos_fskeyvaluer;   r   r   r   r   upload_to_devR   sD   






rA   )r   r   )NN)r   r	   r<   Zvisualdl.ior   Zvisualdl.reader.readerr   Zvisualdl.utils.dirr   Zvisualdl.server.logr   r   r   r"   r6   rA   r   r   r   r   <module>   s   
