""" 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, )