""" File: tabs.py Author: Elena Ryumina and Dmitry Ryumin Description: Gradio app tabs - Contains the definition of various tabs for the Gradio app interface. License: MIT License """ import gradio as gr # Importing necessary components for the Gradio app from app.description import DESCRIPTION from app.authors import AUTHORS from app.config import config_data from app.practical_tasks import supported_practical_tasks from app.components import ( html_message, files_create_ui, video_create_ui, button, dataframe, radio_create_ui, number_create_ui, dropdown_create_ui, ) def app_tab(): gr.Markdown(value=DESCRIPTION) with gr.Row(): files = files_create_ui() video = video_create_ui() with gr.Row(): examples = button( config_data.OtherMessages_EXAMPLES_APP, True, 1, True, "examples_oceanai" ) calculate_pt_scores = button( config_data.OtherMessages_CALCULATE_PT_SCORES, False, 3, True, "calculate_oceanai", ) clear_app = button( config_data.OtherMessages_CLEAR_APP, False, 1, True, "clear_oceanai" ) notifications = html_message(config_data.InformationMessages_NOTI_VIDEOS, False) pt_scores = dataframe(visible=False) csv_pt_scores = files_create_ui( None, "single", [".csv"], config_data.OtherMessages_EXPORT_PT_SCORES, True, False, False, "csv-container", ) first_practical_task = next(iter(supported_practical_tasks)) with gr.Column(scale=1, visible=False, render=True) as practical_tasks_column: practical_tasks = radio_create_ui( first_practical_task, config_data.Labels_PRACTICAL_TASKS_LABEL, list(map(str, supported_practical_tasks.keys())), config_data.InformationMessages_PRACTICAL_TASKS_INFO, True, True, ) practical_subtasks = radio_create_ui( supported_practical_tasks[first_practical_task][0], config_data.Labels_PRACTICAL_SUBTASKS_LABEL, supported_practical_tasks[first_practical_task], config_data.InformationMessages_PRACTICAL_SUBTASKS_INFO, True, True, ) with gr.Row( visible=False, render=True, variant="default", elem_classes="settings-container", ) as settings_practical_tasks: threshold_professional_skills = number_create_ui( value=0.5, minimum=0.0, maximum=1.0, step=0.01, label=config_data.Labels_THRESHOLD_PROFESSIONAL_SKILLS_LABEL, info=config_data.InformationMessages_THRESHOLD_PROFESSIONAL_SKILLS_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) dropdown_professional_skills = dropdown_create_ui( label=f"Professional skills ({len(config_data.Settings_DROPDOWN_PROFESSIONAL_SKILLS)})", info=config_data.InformationMessages_DROPDOWN_PROFESSIONAL_SKILLS_INFO, choices=config_data.Settings_DROPDOWN_PROFESSIONAL_SKILLS, value=config_data.Settings_DROPDOWN_PROFESSIONAL_SKILLS[0], visible=False, elem_classes="dropdown-container", ) target_score_ope = number_create_ui( value=config_data.Values_TARGET_SCORES[0], minimum=0.0, maximum=1.0, step=0.000001, label=config_data.Labels_TARGET_SCORE_OPE_LABEL, info=config_data.InformationMessages_TARGET_SCORE_OPE_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) target_score_con = number_create_ui( value=config_data.Values_TARGET_SCORES[1], minimum=0.0, maximum=1.0, step=0.000001, label=config_data.Labels_TARGET_SCORE_CON_LABEL, info=config_data.InformationMessages_TARGET_SCORE_CON_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) target_score_ext = number_create_ui( value=config_data.Values_TARGET_SCORES[2], minimum=0.0, maximum=1.0, step=0.000001, label=config_data.Labels_TARGET_SCORE_EXT_LABEL, info=config_data.InformationMessages_TARGET_SCORE_EXT_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) target_score_agr = number_create_ui( value=config_data.Values_TARGET_SCORES[3], minimum=0.0, maximum=1.0, step=0.000001, label=config_data.Labels_TARGET_SCORE_AGR_LABEL, info=config_data.InformationMessages_TARGET_SCORE_AGR_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) target_score_nneu = number_create_ui( value=config_data.Values_TARGET_SCORES[4], minimum=0.0, maximum=1.0, step=0.000001, label=config_data.Labels_TARGET_SCORE_NNEU_LABEL, info=config_data.InformationMessages_TARGET_SCORE_NNEU_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) equal_coefficient = number_create_ui( value=0.5, minimum=0.0, maximum=1.0, step=0.01, label=config_data.Labels_EQUAL_COEFFICIENT_LABEL, info=config_data.InformationMessages_EQUAL_COEFFICIENT_INFO, show_label=True, interactive=True, visible=False, render=True, elem_classes="number-container", ) calculate_practical_task = button( config_data.OtherMessages_CALCULATE_PRACTICAL_TASK, True, 1, False, "calculate_practical_task", ) with gr.Row( visible=False, render=True, variant="default", ) as sorted_videos: with gr.Column(scale=1, visible=False, render=True) as sorted_videos_column: practical_task_sorted = dataframe(visible=False) csv_practical_task_sorted = files_create_ui( None, "single", [".csv"], config_data.OtherMessages_EXPORT_PS, True, False, False, "csv-container", ) video_sorted = video_create_ui(visible=False) practical_subtasks_selected = gr.JSON( value={ str(task): supported_practical_tasks.get(task, [None])[0] for task in supported_practical_tasks.keys() }, visible=False, render=True, ) in_development = html_message( config_data.InformationMessages_NOTI_IN_DEV, False, False ) return ( notifications, files, video, examples, calculate_pt_scores, clear_app, pt_scores, csv_pt_scores, practical_tasks, practical_subtasks, settings_practical_tasks, threshold_professional_skills, dropdown_professional_skills, target_score_ope, target_score_con, target_score_ext, target_score_agr, target_score_nneu, equal_coefficient, calculate_practical_task, practical_subtasks_selected, practical_tasks_column, sorted_videos, sorted_videos_column, practical_task_sorted, csv_practical_task_sorted, video_sorted, in_development, ) def about_authors_tab(): return gr.Markdown(value=AUTHORS)