OCEANAI / app /event_handlers /event_handlers.py
DmitryRyumin's picture
Summary
f612514
raw
history blame
15.3 kB
"""
File: event_handlers.py
Author: Elena Ryumina and Dmitry Ryumin
Description: File containing functions for configuring event handlers for Gradio components.
License: MIT License
"""
import gradio as gr
# Importing necessary components for the Gradio app
from app.event_handlers.languages import event_handler_languages
from app.event_handlers.switching_modes import event_handler_switching_modes
from app.event_handlers.files import (
event_handler_files,
event_handler_files_select,
event_handler_files_delete,
)
from app.event_handlers.webcam import event_handler_webcam
from app.event_handlers.examples_blocks import event_handler_examples_blocks
from app.event_handlers.clear_blocks import event_handler_clear_blocks
from app.event_handlers.calculate_pt_scores_blocks import (
event_handler_calculate_pt_scores_blocks,
)
from app.event_handlers.practical_tasks import event_handler_practical_tasks
from app.event_handlers.practical_subtasks import event_handler_practical_subtasks
from app.event_handlers.dropdown_candidates import event_handler_dropdown_candidates
from app.event_handlers.calculate_practical_tasks import (
event_handler_calculate_practical_task_blocks,
)
from app.event_handlers.practical_task_sorted import event_handler_practical_task_sorted
def setup_app_event_handlers(
description,
step_1,
notifications,
files,
webcam,
switching_modes,
type_modes,
video,
examples,
calculate_pt_scores,
clear_app,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks,
practical_subtasks,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
calculate_practical_task,
practical_subtasks_selected,
practical_tasks_column,
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
tab1,
tab2,
tab3,
tab4,
languages_row,
country_flags,
languages,
):
# Events
languages.select(
fn=event_handler_languages,
inputs=[
languages,
files,
video,
type_modes,
pt_scores,
csv_pt_scores,
practical_tasks,
practical_subtasks,
],
outputs=[
description,
step_1,
country_flags,
languages,
tab1,
tab2,
tab3,
tab4,
files,
webcam,
switching_modes,
video,
examples,
calculate_pt_scores,
clear_app,
notifications,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks_column,
practical_tasks,
practical_subtasks,
],
queue=True,
)
switching_modes.click(
fn=event_handler_switching_modes,
inputs=[languages, type_modes],
outputs=[
notifications,
files,
webcam,
switching_modes,
type_modes,
video,
calculate_pt_scores,
clear_app,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks_column,
practical_tasks,
practical_subtasks,
practical_subtasks_selected,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
],
queue=True,
)
files.change(
event_handler_files,
[languages, files, video, pt_scores],
[notifications, video, calculate_pt_scores, clear_app],
queue=True,
)
files.select(
event_handler_files_select,
[languages, files],
[video],
queue=True,
)
files.delete(
event_handler_files_delete,
[languages, files, video],
[video],
queue=True,
)
gr.on(
triggers=[webcam.upload, webcam.stop_recording],
fn=event_handler_webcam,
inputs=[languages, webcam, pt_scores],
outputs=[notifications, video, webcam, calculate_pt_scores, clear_app],
queue=True,
)
gr.on(
triggers=[calculate_pt_scores.click],
fn=event_handler_calculate_pt_scores_blocks,
inputs=[languages, type_modes, files, video],
outputs=[
notifications,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks_column,
practical_tasks,
practical_subtasks,
practical_subtasks_selected,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
calculate_practical_task,
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
],
queue=True,
)
examples.click(
fn=event_handler_examples_blocks,
inputs=[languages],
outputs=[
notifications,
files,
webcam,
switching_modes,
type_modes,
video,
calculate_pt_scores,
clear_app,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks_column,
practical_tasks,
practical_subtasks,
practical_subtasks_selected,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
],
queue=True,
)
clear_app.click(
fn=event_handler_clear_blocks,
inputs=[languages, type_modes],
outputs=[
notifications,
files,
webcam,
video,
calculate_pt_scores,
clear_app,
pt_scores,
csv_pt_scores,
step_2,
practical_tasks_column,
practical_tasks,
practical_subtasks,
practical_subtasks_selected,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
],
queue=True,
)
practical_tasks.change(
event_handler_practical_tasks,
[languages, practical_tasks, practical_subtasks_selected],
[practical_subtasks],
queue=True,
)
practical_subtasks.change(
event_handler_practical_subtasks,
[practical_tasks, practical_subtasks, practical_subtasks_selected],
[
practical_subtasks_selected,
settings_practical_tasks,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
dropdown_candidates,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
],
queue=True,
)
dropdown_candidates.change(
fn=event_handler_dropdown_candidates,
inputs=[practical_subtasks, dropdown_candidates],
outputs=[
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
],
queue=True,
)
calculate_practical_task.click(
fn=event_handler_calculate_practical_task_blocks,
inputs=[
type_modes,
files,
video,
practical_subtasks,
pt_scores,
dropdown_mbti,
threshold_mbti,
threshold_professional_skills,
dropdown_professional_skills,
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
equal_coefficient,
number_priority,
number_importance_traits,
threshold_consumer_preferences,
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
],
outputs=[
sorted_videos,
sorted_videos_column,
practical_task_sorted,
csv_practical_task_sorted,
mbti_accordion,
mbti_description,
mbti_description_data,
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
in_development,
],
queue=True,
)
practical_task_sorted.select(
event_handler_practical_task_sorted,
[files, practical_task_sorted],
[
video_sorted_column,
video_sorted,
metadata,
metadata_1,
name_row,
name_logo,
name,
surname_row,
surname_logo,
surname,
metadata_2,
email_row,
email_logo,
email,
phone_row,
phone_logo,
phone,
],
queue=True,
)