import gradio as gr import pandas as pd from dotenv import load_dotenv from utils_config import load_config from utils_json import get_json_one_individual, save_all_animals import os load_dotenv() PATH = os.getcwd() + "/" PATH_ASSETS = os.getenv('PATH_ASSETS') PATH_CONFIG = PATH + PATH_ASSETS + "config/" def get_headers(): headers_config = load_config(PATH_CONFIG + "config_df.json") headers = headers_config["headers"] return headers def match_data_to_headers(headers, one_individual): new_row = {} for key in headers: if key in one_individual: if type(one_individual[key])==list: new_row[key] = ' , '.join(one_individual[key]) else: new_row[key] = one_individual[key] else: new_row[key] = "NA" return list(new_row.values()) def save_individual_to_df(df): headers = get_headers() one_individual = get_json_one_individual() new_row = match_data_to_headers(headers, one_individual) new_row_df = pd.DataFrame([new_row], columns=headers) df_new = pd.concat([df, new_row_df], ignore_index=True) df_gr = gr.DataFrame(visible=True, value=df_new, headers=headers) return df_gr def save_and_rest_df(df): save_all_animals(df) df = gr.Dataframe(headers=get_headers(), visible=False) return df