"""
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 pandas as pd
import re
import gradio as gr
from pathlib import Path
from bs4 import BeautifulSoup
# Importing necessary components for the Gradio app
from app.config import config_data
from app.video_metadata import video_metadata
from app.mbti_description import MBTI_DESCRIPTION, MBTI_DATA
from app.data_init import df_traits_priority_for_professions
from app.utils import (
read_csv_file,
apply_rounding_and_rename_columns,
preprocess_scores_df,
get_language_settings,
extract_profession_weights,
)
from app.components import (
html_message,
dataframe,
files_create_ui,
video_create_ui,
textbox_create_ui,
)
def colleague_type(subtask):
return "minor" if "junior" in subtask.lower() else "major"
def consumer_preferences(subtask):
return (
config_data.Filenames_CAR_CHARACTERISTICS
if "mobile device" in subtask.lower()
else config_data.Filenames_MDA_CATEGORIES
)
def remove_parentheses(s):
return re.sub(r"\s*\([^)]*\)", "", s)
def extract_text_in_parentheses(s):
result = re.search(r"\(([^)]+)\)", s)
if result:
return result.group(1)
else:
return None
def compare_strings(original, comparison, prev=False):
result = []
prev_class = None
for orig_char, comp_char in zip(original, comparison):
curr_class = "true" if orig_char == comp_char else "err"
if not prev:
result.append(f"{comp_char}")
else:
if curr_class != prev_class:
result.append("" if prev_class else "")
result.append(f"")
prev_class = curr_class
result.append(comp_char)
return f"{''.join(result + [f'' if prev_class else ''])}"
def create_person_metadata(person_id, files, video_metadata):
if (
Path(files[person_id]).name in video_metadata
and config_data.Settings_SHOW_VIDEO_METADATA
):
person_metadata_list = video_metadata[Path(files[person_id]).name]
return (
gr.Column(visible=True),
gr.Row(visible=True),
gr.Row(visible=True),
gr.Image(visible=True),
textbox_create_ui(
person_metadata_list[0],
"text",
"First name",
None,
None,
1,
True,
False,
True,
False,
1,
False,
),
gr.Row(visible=True),
gr.Image(visible=True),
textbox_create_ui(
person_metadata_list[1],
"text",
"Last name",
None,
None,
1,
True,
False,
True,
False,
1,
False,
),
gr.Row(visible=True),
gr.Row(visible=True),
gr.Image(visible=True),
textbox_create_ui(
person_metadata_list[2],
"email",
"Email",
None,
None,
1,
True,
False,
True,
False,
1,
False,
),
gr.Row(visible=True),
gr.Image(visible=True),
textbox_create_ui(
person_metadata_list[3],
"text",
"Phone number",
None,
None,
1,
True,
False,
True,
False,
1,
False,
),
)
else:
return (
gr.Column(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
)
def event_handler_calculate_practical_task_blocks(
language,
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,
):
lang_id, _ = get_language_settings(language)
if type_modes == config_data.Settings_TYPE_MODES[1]:
files = [video]
if practical_subtasks.lower() == "16 personality types of mbti":
df_correlation_coefficients = read_csv_file(config_data.Links_MBTI)
pt_scores_copy = pt_scores.iloc[:, 1:].copy()
preprocess_scores_df(pt_scores_copy, config_data.Dataframes_PT_SCORES[0][0])
if type_modes == config_data.Settings_TYPE_MODES[0]:
b5._professional_match(
df_files=pt_scores_copy,
correlation_coefficients=df_correlation_coefficients,
personality_type=remove_parentheses(dropdown_mbti),
threshold=threshold_mbti,
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_MBTI_job_match_)
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS
+ config_data.Settings_DROPDOWN_MBTI_DEL_COLS
)
df_hidden.rename(
columns={
"Path": "Filename",
"MBTI": "Personality Type",
"MBTI_Score": "Personality Type Score",
},
inplace=True,
)
df_copy = df_hidden.copy()
df_copy["Personality Type"] = df_copy["Personality Type"].apply(
lambda x: "".join(BeautifulSoup(x, "html.parser").stripped_strings)
)
df_copy.to_csv(config_data.Filenames_MBTI_JOB, index=False)
df_hidden.reset_index(inplace=True)
person_id = (
int(df_hidden.iloc[0][config_data.Dataframes_PT_SCORES[0][0]]) - 1
)
short_mbti = extract_text_in_parentheses(dropdown_mbti)
mbti_values = df_hidden["Personality Type"].tolist()
df_hidden["Personality Type"] = [
compare_strings(short_mbti, mbti, False) for mbti in mbti_values
]
person_metadata = create_person_metadata(person_id, files, video_metadata)
elif type_modes == config_data.Settings_TYPE_MODES[1]:
all_hidden_dfs = []
for dropdown_mbti in config_data.Settings_DROPDOWN_MBTI:
b5._professional_match(
df_files=pt_scores_copy,
correlation_coefficients=df_correlation_coefficients,
personality_type=remove_parentheses(dropdown_mbti),
threshold=threshold_mbti,
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_MBTI_job_match_)
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS
+ config_data.Settings_DROPDOWN_MBTI_DEL_COLS
+ config_data.Settings_DROPDOWN_MBTI_DEL_COLS_WEBCAM
)
df_hidden.insert(0, "Popular Occupations", dropdown_mbti)
df_hidden.rename(
columns={
"MBTI": "Personality Type",
"MBTI_Score": "Personality Type Score",
},
inplace=True,
)
short_mbti = extract_text_in_parentheses(dropdown_mbti)
mbti_values = df_hidden["Personality Type"].tolist()
df_hidden["Personality Type"] = [
compare_strings(short_mbti, mbti, False) for mbti in mbti_values
]
all_hidden_dfs.append(df_hidden)
df_hidden = pd.concat(all_hidden_dfs, ignore_index=True)
df_hidden = df_hidden.sort_values(
by="Personality Type Score", ascending=False
)
df_hidden.reset_index(drop=True, inplace=True)
df_copy = df_hidden.copy()
df_copy["Personality Type"] = df_copy["Personality Type"].apply(
lambda x: "".join(BeautifulSoup(x, "html.parser").stripped_strings)
)
df_copy.to_csv(config_data.Filenames_MBTI_JOB, index=False)
person_id = 0
person_metadata = create_person_metadata(person_id, files, video_metadata)
existing_tuple = (
gr.Row(visible=True),
gr.Column(visible=True),
dataframe(
headers=df_hidden.columns.tolist(),
values=df_hidden.values.tolist(),
visible=True,
),
files_create_ui(
config_data.Filenames_MBTI_JOB,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_MBTI,
True,
False,
True,
"csv-container",
),
gr.Accordion(
label=config_data.Labels_NOTE_MBTI_LABEL,
open=False,
visible=True,
),
gr.HTML(value=MBTI_DESCRIPTION, visible=True),
dataframe(
headers=MBTI_DATA.columns.tolist(),
values=MBTI_DATA.values.tolist(),
visible=True,
elem_classes="mbti-dataframe",
),
gr.Column(visible=True),
video_create_ui(
value=files[person_id],
file_name=Path(files[person_id]).name,
label="Best Person ID - " + str(person_id + 1),
visible=True,
elem_classes="video-sorted-container",
),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False),
)
return existing_tuple[:-1] + person_metadata + existing_tuple[-1:]
elif practical_subtasks.lower() == "professional groups":
if type_modes == config_data.Settings_TYPE_MODES[0]:
sum_weights = sum(
[
number_openness,
number_conscientiousness,
number_extraversion,
number_agreeableness,
number_non_neuroticism,
]
)
if sum_weights != 100:
gr.Warning(
config_data.InformationMessages_SUM_WEIGHTS.format(sum_weights)
)
return (
gr.Row(visible=False),
gr.Column(visible=False),
dataframe(visible=False),
files_create_ui(
None,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_PS,
True,
False,
False,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=False),
video_create_ui(visible=False),
gr.Column(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
html_message(
config_data.InformationMessages_SUM_WEIGHTS.format(sum_weights),
False,
True,
),
)
else:
b5._candidate_ranking(
df_files=pt_scores.iloc[:, 1:],
weigths_openness=number_openness,
weigths_conscientiousness=number_conscientiousness,
weigths_extraversion=number_extraversion,
weigths_agreeableness=number_agreeableness,
weigths_non_neuroticism=number_non_neuroticism,
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_ranking_)
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS
)
df_hidden.to_csv(config_data.Filenames_POTENTIAL_CANDIDATES)
df_hidden.reset_index(inplace=True)
person_id = (
int(df_hidden.iloc[0][config_data.Dataframes_PT_SCORES[0][0]]) - 1
)
person_metadata = create_person_metadata(
person_id, files, video_metadata
)
elif type_modes == config_data.Settings_TYPE_MODES[1]:
all_hidden_dfs = []
for dropdown_candidate in config_data.Settings_DROPDOWN_CANDIDATES[:-1]:
weights, _ = extract_profession_weights(
df_traits_priority_for_professions,
dropdown_candidate,
)
sum_weights = sum(weights)
if sum_weights != 100:
gr.Warning(
config_data.InformationMessages_SUM_WEIGHTS.format(sum_weights)
)
return (
gr.Row(visible=False),
gr.Column(visible=False),
dataframe(visible=False),
files_create_ui(
None,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_PS,
True,
False,
False,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=False),
video_create_ui(visible=False),
gr.Column(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
html_message(
config_data.InformationMessages_SUM_WEIGHTS.format(
sum_weights
),
False,
True,
),
)
else:
b5._candidate_ranking(
df_files=pt_scores.iloc[:, 1:],
weigths_openness=weights[0],
weigths_conscientiousness=weights[1],
weigths_extraversion=weights[2],
weigths_agreeableness=weights[3],
weigths_non_neuroticism=weights[4],
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_ranking_)
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS
+ config_data.Settings_DROPDOWN_MBTI_DEL_COLS_WEBCAM
)
df_hidden.insert(0, "Professional Group", dropdown_candidate)
all_hidden_dfs.append(df_hidden)
df_hidden = pd.concat(all_hidden_dfs, ignore_index=True)
df_hidden.rename(
columns={
"Candidate score": "Summary Score",
},
inplace=True,
)
df_hidden = df_hidden.sort_values(by="Summary Score", ascending=False)
df_hidden.reset_index(drop=True, inplace=True)
df_hidden.to_csv(
config_data.Filenames_POTENTIAL_CANDIDATES, index=False
)
person_id = 0
person_metadata = create_person_metadata(
person_id, files, video_metadata
)
existing_tuple = (
gr.Row(visible=True),
gr.Column(visible=True),
dataframe(
headers=df_hidden.columns.tolist(),
values=df_hidden.values.tolist(),
visible=True,
),
files_create_ui(
config_data.Filenames_POTENTIAL_CANDIDATES,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_PG,
True,
False,
True,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=True),
video_create_ui(
value=files[person_id],
file_name=Path(files[person_id]).name,
label="Best Person ID - " + str(person_id + 1),
visible=True,
elem_classes="video-sorted-container",
),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False),
)
return existing_tuple[:-1] + person_metadata + existing_tuple[-1:]
elif practical_subtasks.lower() == "professional skills":
df_professional_skills = read_csv_file(config_data.Links_PROFESSIONAL_SKILLS)
pt_scores_copy = pt_scores.iloc[:, 1:].copy()
preprocess_scores_df(pt_scores_copy, config_data.Dataframes_PT_SCORES[0][0])
b5._priority_skill_calculation(
df_files=pt_scores_copy,
correlation_coefficients=df_professional_skills,
threshold=threshold_professional_skills,
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_priority_skill_)
if type_modes == config_data.Settings_TYPE_MODES[0]:
professional_skills_list = (
config_data.Settings_DROPDOWN_PROFESSIONAL_SKILLS.copy()
)
professional_skills_list.remove(dropdown_professional_skills)
del_cols = []
elif type_modes == config_data.Settings_TYPE_MODES[1]:
professional_skills_list = []
del_cols = config_data.Settings_DROPDOWN_MBTI_DEL_COLS_WEBCAM
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS
+ professional_skills_list
+ del_cols
)
if type_modes == config_data.Settings_TYPE_MODES[0]:
df_hidden = df_hidden.sort_values(
by=[dropdown_professional_skills], ascending=False
)
df_hidden.reset_index(inplace=True)
elif type_modes == config_data.Settings_TYPE_MODES[1]:
df_hidden = df_hidden.melt(
var_name="Professional Skill", value_name="Summary Score"
)
df_hidden = df_hidden.sort_values(by=["Summary Score"], ascending=False)
df_hidden.reset_index(drop=True, inplace=True)
df_hidden.to_csv(config_data.Filenames_PT_SKILLS_SCORES)
if type_modes == config_data.Settings_TYPE_MODES[0]:
person_id = (
int(df_hidden.iloc[0][config_data.Dataframes_PT_SCORES[0][0]]) - 1
)
elif type_modes == config_data.Settings_TYPE_MODES[1]:
person_id = 0
person_metadata = create_person_metadata(person_id, files, video_metadata)
existing_tuple = (
gr.Row(visible=True),
gr.Column(visible=True),
dataframe(
headers=df_hidden.columns.tolist(),
values=df_hidden.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",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=True),
video_create_ui(
value=files[person_id],
file_name=Path(files[person_id]).name,
label="Best Person ID - " + str(person_id + 1),
visible=True,
elem_classes="video-sorted-container",
),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False),
)
return existing_tuple[:-1] + person_metadata + existing_tuple[-1:]
elif (
practical_subtasks.lower() == "finding a suitable junior colleague"
or practical_subtasks.lower() == "finding a suitable senior colleague"
or practical_subtasks.lower()
== "finding a suitable colleague by personality types"
):
pt_scores_copy = pt_scores.iloc[:, 1:].copy()
preprocess_scores_df(pt_scores_copy, config_data.Dataframes_PT_SCORES[0][0])
if (
practical_subtasks.lower()
!= "finding a suitable colleague by personality types"
):
df_correlation_coefficients = read_csv_file(
config_data.Links_FINDING_COLLEAGUE, ["ID"]
)
b5._colleague_ranking(
df_files=pt_scores_copy,
correlation_coefficients=df_correlation_coefficients,
target_scores=[
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
],
colleague=colleague_type(practical_subtasks),
equal_coefficients=equal_coefficient,
out=False,
)
df = apply_rounding_and_rename_columns(b5.df_files_colleague_)
df_hidden = df.drop(columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS)
df_hidden.to_csv(
colleague_type(practical_subtasks)
+ config_data.Filenames_COLLEAGUE_RANKING
)
else:
b5._colleague_personality_type_match(
df_files=pt_scores_copy,
correlation_coefficients=None,
target_scores=[
target_score_ope,
target_score_con,
target_score_ext,
target_score_agr,
target_score_nneu,
],
threshold=equal_coefficient,
out=False,
)
df = b5.df_files_MBTI_colleague_match_.rename(
columns={
"MBTI": "Personality Type",
"MBTI_Score": "Personality Type Score",
}
)
df_hidden = df[["Path", "Personality Type", "Match"]]
df_hidden.to_csv(config_data.Filenames_COLLEAGUE_RANKING)
df_hidden.reset_index(inplace=True)
person_id = (
int(
df_hidden.iloc[
(
0
if practical_subtasks.lower()
!= "finding a suitable colleague by personality types"
else 1
)
][config_data.Dataframes_PT_SCORES[0][0]]
)
- 1
)
person_metadata = create_person_metadata(person_id, files, video_metadata)
existing_tuple = (
gr.Row(visible=True),
gr.Column(visible=True),
dataframe(
headers=df_hidden.columns.tolist(),
values=df_hidden.values.tolist(),
visible=True,
),
files_create_ui(
colleague_type(practical_subtasks)
+ config_data.Filenames_COLLEAGUE_RANKING,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_WT,
True,
False,
True,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=True),
video_create_ui(
value=files[person_id],
file_name=Path(files[person_id]).name,
label="Best Person ID - " + str(person_id + 1),
visible=True,
elem_classes="video-sorted-container",
),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False),
)
return existing_tuple[:-1] + person_metadata + existing_tuple[-1:]
elif (
practical_subtasks.lower() == "car characteristics"
or practical_subtasks.lower() == "mobile device application categories"
or practical_subtasks.lower() == "clothing styles"
):
if practical_subtasks.lower() == "car characteristics":
df_correlation_coefficients = read_csv_file(
config_data.Links_CAR_CHARACTERISTICS,
["Style and performance", "Safety and practicality"],
)
elif practical_subtasks.lower() == "mobile device application categories":
df_correlation_coefficients = read_csv_file(
config_data.Links_MDA_CATEGORIES
)
elif practical_subtasks.lower() == "clothing styles":
df_correlation_coefficients = read_csv_file(config_data.Links_CLOTHING_SC)
if type_modes == config_data.Settings_TYPE_MODES[1]:
number_priority = df_correlation_coefficients.columns.size - 1
number_importance_traits = 5
pt_scores_copy = pt_scores.iloc[:, 1:].copy()
preprocess_scores_df(pt_scores_copy, config_data.Dataframes_PT_SCORES[0][0])
b5._priority_calculation(
df_files=pt_scores_copy,
correlation_coefficients=df_correlation_coefficients,
col_name_ocean="Trait",
threshold=threshold_consumer_preferences,
number_priority=number_priority,
number_importance_traits=number_importance_traits,
out=False,
)
df_files_priority = b5.df_files_priority_.copy()
df_files_priority.reset_index(inplace=True)
df = apply_rounding_and_rename_columns(df_files_priority.iloc[:, 1:])
preprocess_scores_df(df, config_data.Dataframes_PT_SCORES[0][0])
if type_modes == config_data.Settings_TYPE_MODES[0]:
del_cols = []
elif type_modes == config_data.Settings_TYPE_MODES[1]:
del_cols = config_data.Settings_DROPDOWN_MBTI_DEL_COLS_WEBCAM
df_hidden = df.drop(
columns=config_data.Settings_SHORT_PROFESSIONAL_SKILLS + del_cols
)
if type_modes == config_data.Settings_TYPE_MODES[1]:
df_hidden = df_hidden.T
df_hidden = df_hidden.head(-number_importance_traits)
df_hidden = df_hidden.reset_index()
df_hidden.columns = ["Priority", "Category"]
df_hidden.to_csv(consumer_preferences(practical_subtasks))
df_hidden.reset_index(
drop=True if type_modes == config_data.Settings_TYPE_MODES[1] else False,
inplace=True,
)
if type_modes == config_data.Settings_TYPE_MODES[0]:
person_id = (
int(df_hidden.iloc[0][config_data.Dataframes_PT_SCORES[0][0]]) - 1
)
elif type_modes == config_data.Settings_TYPE_MODES[1]:
person_id = 0
person_metadata = create_person_metadata(person_id, files, video_metadata)
existing_tuple = (
gr.Row(visible=True),
gr.Column(visible=True),
dataframe(
headers=df_hidden.columns.tolist(),
values=df_hidden.values.tolist(),
visible=True,
),
files_create_ui(
consumer_preferences(practical_subtasks),
"single",
[".csv"],
config_data.OtherMessages_EXPORT_CP,
True,
False,
True,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=True),
video_create_ui(
value=files[person_id],
file_name=Path(files[person_id]).name,
label="Best Person ID - " + str(person_id + 1),
visible=True,
elem_classes="video-sorted-container",
),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, False),
)
return existing_tuple[:-1] + person_metadata + existing_tuple[-1:]
else:
gr.Info(config_data.InformationMessages_NOTI_IN_DEV)
return (
gr.Row(visible=False),
gr.Column(visible=False),
dataframe(visible=False),
files_create_ui(
None,
"single",
[".csv"],
config_data.OtherMessages_EXPORT_PS,
True,
False,
False,
"csv-container",
),
gr.Accordion(visible=False),
gr.HTML(visible=False),
dataframe(visible=False),
gr.Column(visible=False),
video_create_ui(visible=False),
gr.Column(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
gr.Row(visible=False),
gr.Image(visible=False),
textbox_create_ui(visible=False),
html_message(config_data.InformationMessages_NOTI_IN_DEV, False, True),
)