Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
def detect_file_type(filename): | |
"""Detect the file type based on its extension.""" | |
if (filename.endswith('.csv')) | (filename.endswith('.csv.gz')) | (filename.endswith('.zip')): | |
return 'csv' | |
elif filename.endswith('.xlsx'): | |
return 'xlsx' | |
elif filename.endswith('.parquet'): | |
return 'parquet' | |
else: | |
raise ValueError("Unsupported file type.") | |
def read_file(filename): | |
"""Read the file based on its detected type.""" | |
file_type = detect_file_type(filename) | |
if file_type == 'csv': | |
return pd.read_csv(filename, low_memory=False) | |
elif file_type == 'xlsx': | |
return pd.read_excel(filename) | |
elif file_type == 'parquet': | |
return pd.read_parquet(filename) | |
def initial_data_load(in_file): | |
new_choices = [] | |
concat_choices = [] | |
output_message = "" | |
results_df = pd.DataFrame() | |
df = pd.DataFrame() | |
file_list = [string.name for string in in_file] | |
data_file_names = [string for string in file_list if "results_on_orig" not in string.lower()] | |
if data_file_names: | |
df = read_file(data_file_names[0]) | |
else: | |
error_message = "No data file found." | |
return error_message, gr.Dropdown(choices=concat_choices), gr.Dropdown(choices=concat_choices), df, results_df | |
results_file_names = [string for string in file_list if "results_on_orig" in string.lower()] | |
if results_file_names: | |
results_df = read_file(results_file_names[0]) | |
new_choices = list(df.columns) | |
concat_choices.extend(new_choices) | |
output_message = "Data successfully loaded" | |
return output_message, gr.Dropdown(choices=concat_choices), gr.Dropdown(choices=concat_choices), df, results_df | |
def dummy_function(in_colnames): | |
""" | |
A dummy function that exists just so that dropdown updates work correctly. | |
""" | |
return None | |
def clear_inputs(in_file, in_ref, in_text): | |
return gr.File.update(value=[]), gr.File.update(value=[]), gr.Textbox.update(value='') |