MASAI / app /tabs.py
DmitryRyumin's picture
Summary
257d039
raw
history blame
6.03 kB
"""
File: tabs.py
Author: Dmitry Ryumin, Maxim Markitantov, Elena Ryumina, Anastasia Dvoynikova, and Alexey Karpov
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.requirements_app import read_requirements
def app_tab():
gr.Markdown(value=DESCRIPTION)
with gr.Row(
visible=True,
render=True,
variant="default",
elem_classes="app-container",
):
with gr.Column(
visible=True,
render=True,
variant="default",
elem_classes="video-container",
):
video = gr.Video(
label=config_data.Labels_VIDEO,
show_label=True,
interactive=True,
visible=True,
mirror_webcam=False,
include_audio=True,
elem_classes="video",
autoplay=False,
)
with gr.Row(
visible=True,
render=True,
variant="default",
elem_classes="submit-container",
):
clear = gr.Button(
value=config_data.OtherMessages_CLEAR,
interactive=False,
icon=config_data.Path_APP
/ config_data.StaticPaths_IMAGES
/ "clear.ico",
visible=True,
elem_classes="clear",
)
submit = gr.Button(
value=config_data.OtherMessages_SUBMIT,
interactive=False,
icon=config_data.Path_APP
/ config_data.StaticPaths_IMAGES
/ "submit.ico",
visible=True,
elem_classes="submit",
)
gr.Examples(config_data.StaticPaths_EXAMPLES, [video])
with gr.Column(
visible=True,
render=True,
variant="default",
elem_classes="results-container",
):
text = gr.Textbox(
value=config_data.InformationMessages_NOTI_RESULTS[0],
max_lines=10,
placeholder=None,
label=None,
info=None,
show_label=False,
container=False,
interactive=False,
visible=True,
autofocus=False,
autoscroll=True,
render=True,
type="text",
show_copy_button=False,
max_length=config_data.General_TEXT_MAX_LENGTH,
elem_classes="noti-results-false",
)
waveform = gr.Plot(
value=None,
label=config_data.Labels_WAVEFORM,
show_label=True,
visible=False,
elem_classes="audio",
)
faces = gr.Plot(
value=None,
label=config_data.Labels_FACE_IMAGES,
show_label=True,
visible=False,
elem_classes="imgs",
)
emotion_stats = gr.Plot(
value=None,
label=config_data.Labels_EMO_STATS,
show_label=True,
visible=False,
elem_classes="emo-stats",
)
sent_stats = gr.Plot(
value=None,
label=config_data.Labels_SENT_STATS,
show_label=True,
visible=False,
elem_classes="sent-stats",
)
with gr.Row(
visible=False,
render=True,
variant="default",
elem_classes="time-container",
) as time_row:
video_duration = gr.Textbox(
value=None,
max_lines=1,
placeholder=None,
label=None,
info=None,
show_label=False,
container=False,
interactive=False,
visible=False,
autofocus=False,
autoscroll=True,
render=True,
type="text",
show_copy_button=False,
max_length=50,
elem_classes="video_duration",
)
calculate_time = gr.Textbox(
value=None,
max_lines=1,
placeholder=None,
label=None,
info=None,
show_label=False,
container=False,
interactive=False,
visible=False,
autofocus=False,
autoscroll=True,
render=True,
type="text",
show_copy_button=False,
max_length=50,
elem_classes="calculate_time",
)
return (
video,
clear,
submit,
text,
waveform,
faces,
emotion_stats,
sent_stats,
time_row,
video_duration,
calculate_time,
)
# def settings_app_tab():
# pass
# def about_app_tab():
# pass
def about_authors_tab():
return gr.HTML(value=AUTHORS)
def requirements_app_tab():
reqs = read_requirements()
return gr.Dataframe(
headers=reqs.columns,
value=reqs,
datatype=["markdown"] * len(reqs.columns),
visible=True,
elem_classes="requirements-dataframe",
type="polars",
max_height=1000,
)