from os import listdir from os.path import isfile, join import gradio as gr import pipe LOG_PATH = "./tmp" CONFIG_PATH = "./cicd/configs" def get_accordions_of_files(path, files): components = [] for file in files: with gr.Row(): with gr.Accordion(label=file, open=False): with gr.Row(): with open(join(path, file), "r") as f: gr.Markdown(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_demo(demo): with gr.Row(): # check if jobs is an attribute of pipe if hasattr(pipe, "jobs") and len(pipe.jobs) > 0: gr.Markdown(f"Current job: {pipe.current} Jobs in queue: {len(pipe.jobs)}") else: gr.Markdown("No jobs in queue, please submit an evaluation task.") with gr.Accordion(label="Config Files", open=False): config_accordion = get_accordions_of_config_files() demo.load(get_accordions_of_config_files, outputs=config_accordion, every=1) with gr.Accordion(label="Log Files", open=False): log_accordions = get_accordions_of_log_files() demo.load(get_accordions_of_log_files, outputs=log_accordions, every=1)