import csv import pandas as pd import sqlite3 import gradio as gr import os def carica_sqlite(file_path): conn = sqlite3.connect(file_path) cursor = conn.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tabelle = cursor.fetchall() tabelle = [tabella for tabella in tabelle if tabella[0] != 'sqlite_sequence'] dfs = {} for tabella in tabelle: nome_tabella = tabella[0] df = pd.read_sql_query(f"SELECT * FROM {nome_tabella}", conn) dfs[nome_tabella] = df conn.close() data_output = {'data_frames': dfs,'db': conn} return data_output # Funzione per leggere un file CSV def carica_csv(file): df = pd.read_csv(file) return df # Funzione per leggere un file Excel def carica_excel(file): xls = pd.ExcelFile(file) dfs = {} for sheet_name in xls.sheet_names: dfs[sheet_name] = xls.parse(sheet_name) return dfs def load_data(data_path : str, db_name : str): data_output = {'data_frames': {} ,'db': None} table_name = os.path.splitext(os.path.basename(data_path))[0] if data_path.endswith(".sqlite") : data_output = carica_sqlite(data_path) elif data_path.endswith(".csv"): data_output['data_frames'] = {f"{table_name}_table" : carica_csv(data_path)} elif data_path.endswith(".xlsx"): data_output['data_frames'] = carica_excel(data_path) else: raise gr.Error("Formato file non supportato. Carica un file SQLite, CSV o Excel.") return data_output def read_api(api_key_path): with open(api_key_path, "r", encoding="utf-8") as file: api_key = file.read() return api_key def read_models_csv(file_path): # Reads a CSV file and returns a list of dictionaries models = [] # Change {} to [] with open(file_path, mode="r", newline="") as file: reader = csv.DictReader(file) for row in reader: row["price"] = float(row["price"]) # Convert price to float models.append(row) # Append to the list return models def csv_to_dict(file_path): with open(file_path, mode='r', encoding='utf-8') as file: reader = csv.DictReader(file) data = [] for row in reader: if "price" in row: row["price"] = float(row["price"]) data.append(row) return data