""" File: calculate_practical_tasks.py Author: Elena Ryumina and Dmitry Ryumin Description: Event handler for Gradio app to calculate practical tasks. License: MIT License """ from app.oceanai_init import b5 import gradio as gr import pandas as pd # Importing necessary components for the Gradio app from app.config import config_data from app.components import html_message, dataframe, files_create_ui def event_handler_calculate_practical_task_blocks( practical_tasks, practical_subtasks, pt_scores ): if practical_subtasks.lower() == "professional skills": df_professional_skills = pd.read_csv(config_data.Links_PROFESSIONAL_SKILLS) df_professional_skills.index.name = "ID" df_professional_skills.index += 1 df_professional_skills.index = df_professional_skills.index.map(str) b5._priority_skill_calculation( df_files=pt_scores.iloc[:, 1:], correlation_coefficients=df_professional_skills, threshold=0.5, out=True, ) # Optional df = b5.df_files_priority_skill_.rename( columns={ "Openness": "OPE", "Conscientiousness": "CON", "Extraversion": "EXT", "Agreeableness": "AGR", "Non-Neuroticism": "NNEU", } ) columns_to_round = df.columns[1:] df[columns_to_round] = df[columns_to_round].apply( lambda x: [round(i, 3) for i in x] ) df.to_csv(config_data.Filenames_PT_SKILLS_SCORES) df.reset_index(inplace=True) return ( dataframe( headers=df.columns.tolist(), values=df.values.tolist(), visible=True, ), files_create_ui( config_data.Filenames_PT_SKILLS_SCORES, "single", [".csv"], config_data.OtherMessages_EXPORT_PS, True, False, True, "csv-container", ), html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False), ) else: gr.Info(config_data.InformationMessages_NOTI_IN_DEV) return ( dataframe(visible=False), files_create_ui( None, "single", [".csv"], config_data.OtherMessages_EXPORT_PS, True, False, False, "csv-container", ), html_message(config_data.InformationMessages_NOTI_IN_DEV, False, True), )