Spaces:
Running
Running
File size: 3,810 Bytes
1bf4da3 13aeb09 1bf4da3 aa6222e 52d84c5 1bf4da3 aa6222e 13aeb09 aa6222e 13aeb09 52d84c5 aa6222e 13aeb09 1bf4da3 52d84c5 13aeb09 1bf4da3 13aeb09 d6b712b 13aeb09 1bf4da3 52d84c5 1bf4da3 aa6222e 1bf4da3 aa6222e 13aeb09 52d84c5 1bf4da3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
"""
File: languages.py
Author: Elena Ryumina and Dmitry Ryumin
Description: Selected language event handlers for Gradio app.
License: MIT License
"""
import gradio as gr
from pathlib import Path
# Importing necessary components for the Gradio app
from app.description import DESCRIPTIONS
from app.description_steps import STEP_1, STEP_2
from app.config import config_data
from app.components import (
files_create_ui,
video_create_ui,
dropdown_create_ui,
button,
html_message,
dataframe,
)
from app.utils import get_language_settings
def event_handler_languages(languages, files, video, pt_scores, csv_pt_scores):
lang_id, choices = get_language_settings(languages)
if not video:
video = video_create_ui(label=config_data.OtherMessages_VIDEO_PLAYER[lang_id])
noti_videos = html_message(
config_data.InformationMessages_NOTI_VIDEOS[lang_id], False
)
else:
video = video_create_ui(
value=video,
label=config_data.OtherMessages_VIDEO_PLAYER[lang_id],
file_name=Path(video).name,
)
noti_videos = html_message(
config_data.OtherMessages_NOTI_CALCULATE[lang_id],
True,
False if pt_scores.shape[1] >= 7 else True,
)
csv_pt_scores = files_create_ui(
csv_pt_scores if pt_scores.shape[1] >= 7 else None,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_PT_SCORES[lang_id],
True,
False,
True if pt_scores.shape[1] >= 7 else False,
"csv-container",
)
step_2 = gr.HTML(
value=STEP_2[lang_id], visible=True if pt_scores.shape[1] >= 7 else False
)
if pt_scores.shape[1] >= 7:
pt_scores = dataframe(
headers=(config_data.Dataframes_PT_SCORES[lang_id]),
values=pt_scores.values.tolist(),
visible=True,
)
else:
pt_scores = dataframe(visible=False)
return (
gr.Markdown(value=DESCRIPTIONS[lang_id]),
gr.HTML(value=STEP_1[lang_id]),
gr.Image(
value=config_data.StaticPaths_IMAGES + config_data.Images_LANGUAGES[lang_id]
),
dropdown_create_ui(
label=None,
info=None,
choices=choices,
value=choices[lang_id],
visible=True,
show_label=False,
elem_classes="dropdown-language-container",
),
gr.Tab(config_data.Labels_APP_LABEL[lang_id]),
gr.Tab(config_data.Labels_ABOUT_APP_LABEL[lang_id]),
gr.Tab(config_data.Labels_ABOUT_AUTHORS_LABEL[lang_id]),
gr.Tab(config_data.Labels_REQUIREMENTS_LABEL[lang_id]),
files_create_ui(
value=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],
),
video,
button(
config_data.OtherMessages_EXAMPLES_APP[lang_id],
True,
1,
"./images/examples.ico",
True,
"examples_oceanai",
),
button(
config_data.OtherMessages_CALCULATE_PT_SCORES[lang_id],
True if files else False,
3,
"./images/calculate_pt_scores.ico",
True,
"calculate_oceanai",
),
button(
config_data.OtherMessages_CLEAR_APP[lang_id],
True if files else False,
1,
"./images/clear.ico",
True,
"clear_oceanai",
),
noti_videos,
pt_scores,
csv_pt_scores,
step_2,
)
|