Spaces:
Running
Running
""" | |
File: examples_blocks.py | |
Author: Elena Ryumina and Dmitry Ryumin | |
Description: Event handler for the addition of examples to the Gradio app. | |
License: MIT License | |
""" | |
import re | |
import gradio as gr | |
from pathlib import Path | |
# Importing necessary components for the Gradio app | |
from app.config import config_data | |
from app.description_steps import STEP_2 | |
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, | |
textbox_create_ui, | |
) | |
from app.utils import get_language_settings | |
def event_handler_examples_blocks(language): | |
lang_id, _ = get_language_settings(language) | |
first_practical_task = next(iter(supported_practical_tasks[lang_id])) | |
videos_dir = Path("videos") | |
video_files = sorted( | |
(str(p) for p in videos_dir.glob("*.mp4")), | |
key=lambda x: int(re.search(r"\d+", Path(x).stem).group()), | |
) | |
files_ui = files_create_ui( | |
value=video_files, | |
label="{} ({})".format( | |
config_data.OtherMessages_VIDEO_FILES[lang_id], | |
", ".join(config_data.Settings_SUPPORTED_VIDEO_EXT), | |
), | |
file_types=[f".{ext}" for ext in config_data.Settings_SUPPORTED_VIDEO_EXT], | |
) | |
webcam = gr.Video(interactive=False, visible=False) | |
switching_modes = button( | |
config_data.OtherMessages_SWITCHEHG_MODES_ONLINE[lang_id], | |
True, | |
1, | |
"./images/webcam.ico", | |
True, | |
"switching_modes", | |
) | |
type_modes_ui = gr.Radio( | |
choices=config_data.Settings_TYPE_MODES, | |
value=config_data.Settings_TYPE_MODES[0], | |
) | |
return ( | |
html_message( | |
config_data.InformationMessages_NOTI_VIDEOS[lang_id], | |
False, | |
True, | |
"notifications", | |
), | |
files_ui, | |
webcam, | |
switching_modes, | |
type_modes_ui, | |
video_create_ui( | |
value=video_files[0], | |
label=config_data.OtherMessages_VIDEO_PLAYER[lang_id], | |
file_name=Path(Path(video_files[0]).name).name, | |
), | |
button( | |
config_data.OtherMessages_CALCULATE_PT_SCORES[lang_id], | |
False, | |
3, | |
"./images/calculate_pt_scores.ico", | |
True, | |
"calculate_oceanai", | |
), | |
button( | |
config_data.OtherMessages_CLEAR_APP[lang_id], | |
False, | |
1, | |
"./images/clear.ico", | |
True, | |
"clear_oceanai", | |
), | |
dataframe(visible=False), | |
files_create_ui( | |
None, | |
"single", | |
[".csv"], | |
config_data.OtherMessages_EXPORT_PT_SCORES[lang_id], | |
True, | |
False, | |
False, | |
"csv-container", | |
), | |
gr.HTML(value=STEP_2[lang_id], visible=False), | |
gr.Column(visible=False), | |
radio_create_ui( | |
first_practical_task, | |
config_data.Labels_PRACTICAL_TASKS_LABEL[lang_id], | |
list(map(str, supported_practical_tasks[lang_id].keys())), | |
config_data.InformationMessages_PRACTICAL_TASKS_INFO[lang_id], | |
True, | |
True, | |
), | |
radio_create_ui( | |
supported_practical_tasks[lang_id][first_practical_task][0], | |
config_data.Labels_PRACTICAL_SUBTASKS_LABEL[lang_id], | |
supported_practical_tasks[lang_id][first_practical_task], | |
config_data.InformationMessages_PRACTICAL_SUBTASKS_INFO[lang_id], | |
True, | |
True, | |
), | |
gr.JSON( | |
value={ | |
str(task): supported_practical_tasks[index].get(task, [None])[0] | |
for index in range(len(supported_practical_tasks)) | |
for task in supported_practical_tasks[index].keys() | |
}, | |
visible=False, | |
render=True, | |
), | |
gr.Column(visible=False), | |
dropdown_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
dropdown_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
dropdown_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
number_create_ui(visible=False), | |
gr.Row(visible=False), | |
gr.Column(visible=False), | |
dataframe(visible=False), | |
files_create_ui( | |
None, | |
"single", | |
[".csv"], | |
config_data.OtherMessages_EXPORT_PS, | |
True, | |
False, | |
False, | |
"csv-container", | |
), | |
gr.Accordion(visible=False), | |
gr.HTML(visible=False), | |
dataframe(visible=False), | |
gr.Column(visible=False), | |
video_create_ui(visible=False), | |
gr.Column(visible=False), | |
gr.Row(visible=False), | |
gr.Row(visible=False), | |
gr.Image(visible=False), | |
textbox_create_ui(visible=False), | |
gr.Row(visible=False), | |
gr.Image(visible=False), | |
textbox_create_ui(visible=False), | |
gr.Row(visible=False), | |
gr.Row(visible=False), | |
gr.Image(visible=False), | |
textbox_create_ui(visible=False), | |
gr.Row(visible=False), | |
gr.Image(visible=False), | |
textbox_create_ui(visible=False), | |
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False), | |
) | |