Spaces:
Sleeping
Sleeping
| 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='') |