OCEANAI / app /utils.py
DmitryRyumin's picture
Summary
868a44c
raw
history blame
2.69 kB
"""
File: utils.py
Author: Elena Ryumina and Dmitry Ryumin
Description: Utility functions.
License: MIT License
"""
import pandas as pd
import subprocess
from pathlib import Path
# Importing necessary components for the Gradio app
from app.config import config_data
def get_language_settings(language):
language_mappings = {
"english": (0, config_data.Settings_LANGUAGES_EN),
"английский": (0, config_data.Settings_LANGUAGES_EN),
"russian": (1, config_data.Settings_LANGUAGES_RU),
"русский": (1, config_data.Settings_LANGUAGES_RU),
}
normalized_language = language.lower()
lang_id, choices = language_mappings.get(
normalized_language, (0, config_data.Settings_LANGUAGES_EN)
)
return lang_id, choices
def preprocess_scores_df(df, name):
df.index.name = name
df.index += 1
df.index = df.index.map(str)
return df
def read_csv_file(file_path, drop_columns=[]):
df = pd.read_csv(file_path)
if len(drop_columns) != 0:
df = pd.DataFrame(df.drop(drop_columns, axis=1))
return preprocess_scores_df(df, "ID")
def round_numeric_values(x):
if isinstance(x, (int, float)):
return round(x, 4)
return x
def apply_rounding_and_rename_columns(df):
df_rounded = df.rename(
columns={
"Openness": "OPE",
"Conscientiousness": "CON",
"Extraversion": "EXT",
"Agreeableness": "AGR",
"Non-Neuroticism": "NNEU",
}
)
columns_to_round = df_rounded.columns[1:]
df_rounded[columns_to_round] = df_rounded[columns_to_round].applymap(
round_numeric_values
)
return df_rounded
def extract_profession_weights(df, dropdown_candidates):
try:
weights_professions = df.loc[df["Profession"] == dropdown_candidates, :].values[
0
][1:]
interactive_professions = False
except Exception:
weights_professions = [0] * 5
interactive_professions = True
else:
weights_professions = list(map(int, weights_professions))
return weights_professions, interactive_professions
def webm2mp4(input_file):
input_path = Path(input_file)
output_path = input_path.with_suffix(".mp4")
if not output_path.exists():
subprocess.run(
[
"ffmpeg",
"-i",
str(input_path),
"-c:v",
"copy",
"-c:a",
"aac",
"-strict",
"experimental",
str(output_path),
],
check=True,
)
return str(output_path)