|
from os import listdir |
|
from os.path import isfile, join |
|
import html |
|
|
|
import gradio as gr |
|
|
|
import pipe |
|
from io_utils import get_logs_file |
|
|
|
LOG_PATH = "./tmp" |
|
CONFIG_PATH = "./cicd/configs/" |
|
MAX_FILES_NUM = 20 |
|
|
|
|
|
def get_accordions_of_files(path, files): |
|
components = [None for _ in range(0, MAX_FILES_NUM)] |
|
for i in range(0, len(files)): |
|
if i >= MAX_FILES_NUM: |
|
break |
|
with open(join(path, files[i]), "r") as f: |
|
components[i] = f.read() |
|
return components |
|
|
|
|
|
def get_accordions_of_log_files(): |
|
log_files = [ |
|
f for f in listdir(LOG_PATH) if isfile(join(LOG_PATH, f)) and f.endswith("_log") |
|
] |
|
return get_accordions_of_files(LOG_PATH, log_files) |
|
|
|
|
|
def get_accordions_of_config_files(): |
|
config_files = [ |
|
f |
|
for f in listdir(CONFIG_PATH) |
|
if isfile(join(CONFIG_PATH, f)) and f.endswith(".yaml") |
|
] |
|
return get_accordions_of_files(CONFIG_PATH, config_files) |
|
|
|
|
|
def get_config_files(): |
|
config_files = [ |
|
join(CONFIG_PATH, f) |
|
for f in listdir(CONFIG_PATH) |
|
if isfile(join(CONFIG_PATH, f)) and f.endswith(".yaml") |
|
] |
|
return config_files |
|
|
|
|
|
def get_log_files(): |
|
return [ |
|
join(LOG_PATH, f) |
|
for f in listdir(LOG_PATH) |
|
if isfile(join(LOG_PATH, f)) and f.endswith("log") |
|
] |
|
|
|
|
|
def get_jobs_info_in_queue(): |
|
return [f"⌛️job id {html.escape(job[0])}: {html.escape(job[2])}<br/>" for job in pipe.jobs] |
|
|
|
def get_queue_status(): |
|
if len(pipe.jobs) > 0 or pipe.current is not None: |
|
current = pipe.current |
|
if current is None: |
|
current = "None" |
|
return f'<div style="padding-top: 5%">Current job: {html.escape(current)} <br/> Jobs in queue: <br/> {"".join(get_jobs_info_in_queue())}</div>' |
|
else: |
|
return '<div style="padding-top: 5%">No jobs in queue, please submit an evaluation task from another tab.</div>' |
|
|
|
|
|
def get_demo(): |
|
with gr.Row(): |
|
gr.HTML( |
|
value=get_queue_status, |
|
every=5, |
|
) |
|
with gr.Accordion(label="Log Files", open=False): |
|
with gr.Row(): |
|
gr.Files(value=get_log_files, label="Log Files", every=10) |
|
with gr.Row(): |
|
gr.Textbox( |
|
value=get_logs_file, every=0.5, lines=10, visible=True, label="Current Log File" |
|
) |
|
with gr.Accordion(label="Config Files", open=False): |
|
gr.Files(value=get_config_files, label="Config Files", every=10) |
|
|