digiwild / app /utils_df.py
vancauwe's picture
feat: save df as json of all records
ee406aa
raw
history blame
1.41 kB
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