Spaces:
Sleeping
Sleeping
| """File upload and preview page""" | |
| import streamlit as st | |
| from components import render_sidebar, display_data_preview | |
| from utils import client | |
| st.set_page_config(page_title="Upload Data", page_icon="π") | |
| render_sidebar() | |
| st.title("π Upload & Preview Data") | |
| st.subheader("Upload File") | |
| uploaded_file = st.file_uploader( | |
| "Choose a file (CSV or Excel)", | |
| type=["csv", "xlsx", "xls"], | |
| help="Upload your data file for analysis" | |
| ) | |
| if uploaded_file: | |
| with st.spinner("π€ Uploading file..."): | |
| file_bytes = uploaded_file.read() | |
| result = client.upload_file(file_bytes, uploaded_file.name) | |
| if "error" in result: | |
| st.error(f"Upload failed: {result['error']}") | |
| else: | |
| st.success(f"β File uploaded: {result['filename']}") | |
| # Store data in session state | |
| st.session_state.uploaded_data = result.get("preview", []) | |
| st.session_state.all_columns = result.get("column_names", []) | |
| # Display file info | |
| col1, col2, col3 = st.columns(3) | |
| with col1: | |
| st.metric("Rows", result.get("rows", 0)) | |
| with col2: | |
| st.metric("Columns", result.get("columns", 0)) | |
| with col3: | |
| st.metric("File Type", result.get("file_type", "unknown").upper()) | |
| st.divider() | |
| # Display preview | |
| display_data_preview(result.get("preview", []), result.get("column_names", [])) | |