Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import json | |
| import functions # Assuming functions.py has necessary imports and functions | |
| import tempfile | |
| def process_tables(table1_path, table2_path, params_file_path): | |
| # Load tables | |
| table1 = pd.read_excel(table1_path.name) | |
| table2 = pd.read_excel(table2_path.name) | |
| # Load parameters from the JSON file | |
| with open(params_file_path.name, 'r') as f: | |
| params = json.load(f) | |
| # Extract parameters | |
| harmonization = params.get("harmonization", True) | |
| columns_embeddings_col1 = params.get("columns_embeddings_col1", "Indicator Name") | |
| columns_embeddings_col2 = params.get("columns_embeddings_col2", "Indicator name (leonardo)") | |
| # Process column names into lists | |
| columns_embeddings_col1 = [col.strip() for col in columns_embeddings_col1.split(',')] | |
| columns_embeddings_col2 = [col.strip() for col in columns_embeddings_col2.split(',')] | |
| # Process the tables using a function from functions.py | |
| result_final = functions.process_similarity_results( | |
| table1=table1, | |
| table2=table2, | |
| columns_embeddings_col1=columns_embeddings_col1, | |
| columns_embeddings_col2=columns_embeddings_col2, | |
| harmonization=harmonization | |
| ) | |
| # Save the result to a temporary CSV file | |
| result_path = tempfile.NamedTemporaryFile(suffix=".csv", delete=False).name | |
| result_final.to_csv(result_path, index=False) | |
| return result_path | |
| # Define the Gradio interface | |
| iface = gr.Interface( | |
| fn=process_tables, | |
| inputs=[ | |
| gr.File(label="Upload Table 1 (Client Indicators or Framework Table)"), | |
| gr.File(label="Upload Table 2 (Internal Indicator or Indicator Table)"), | |
| gr.File(label="Upload Parameters File (JSON format)") | |
| ], | |
| outputs="file", | |
| description=( | |
| "Upload two tables and a JSON parameters file to process them. The parameters file should include: " | |
| "'harmonization' (True or False), 'columns_embeddings_col1' (comma-separated column names), " | |
| "and 'columns_embeddings_col2' (comma-separated column names)." | |
| ) | |
| ) | |
| iface.launch() | |