OCEANAI / app /tabs.py
DmitryRyumin's picture
Summary
20b6a53
"""
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)