MASAI / app /tabs.py
DmitryRyumin's picture
Summary
f16bb9f
raw
history blame
4.08 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.config import config_data
from app.components import html_message
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=True,
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(
[
"videos/1.mp4",
"videos/2.mp4",
],
[video],
)
with gr.Column(
visible=True,
render=True,
variant="default",
elem_classes="results-container",
):
noti_results = html_message(
message=config_data.InformationMessages_NOTI_RESULTS[0],
error=True,
visible=True,
)
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",
)
return (
video,
clear,
submit,
noti_results,
waveform,
faces,
emotion_stats,
sent_stats,
)
def settings_app_tab():
pass
def about_app_tab():
pass
def about_authors_tab():
pass
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",
)