Spaces:
Running
Running
| 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) | |