Spaces:
Runtime error
Runtime error
| """ | |
| Database explorer UI component for the pharmaceutical data management agent. | |
| """ | |
| import streamlit as st | |
| import pandas as pd | |
| def render_db_explorer_tab(session_state): | |
| """ | |
| Render the database explorer tab in the UI. | |
| Args: | |
| session_state: Streamlit session state | |
| """ | |
| st.subheader("Database Explorer") | |
| # Get tables by category | |
| tables = session_state.db.get_tables() | |
| # Display tables by category | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| st.markdown("### Raw Data Tables") | |
| for table in tables["raw_tables"]: | |
| with st.expander(table): | |
| sample = session_state.db.get_table_sample(table, 3) | |
| st.dataframe(pd.DataFrame(sample)) | |
| st.markdown("### Staging Tables") | |
| for table in tables["staging_tables"]: | |
| with st.expander(table): | |
| sample = session_state.db.get_table_sample(table, 3) | |
| st.dataframe(pd.DataFrame(sample)) | |
| with col2: | |
| st.markdown("### Analytics Ready Data") | |
| for table in tables["ard_tables"]: | |
| with st.expander(table): | |
| sample = session_state.db.get_table_sample(table, 3) | |
| st.dataframe(pd.DataFrame(sample)) | |
| st.markdown("### Data Products") | |
| for table in tables["data_products"]: | |
| with st.expander(table): | |
| sample = session_state.db.get_table_sample(table, 3) | |
| st.dataframe(pd.DataFrame(sample)) | |
| # SQL Query Executor | |
| st.markdown("### Query Explorer") | |
| with st.form(key="sql_form"): | |
| sql_query = st.text_area("Enter SQL Query", height=100, | |
| placeholder="SELECT * FROM ARD_SALES_PERFORMANCE WHERE region = 'North' LIMIT 5") | |
| run_sql = st.form_submit_button("Run Query") | |
| if run_sql and sql_query: | |
| with st.spinner("Executing query..."): | |
| result = session_state.db.execute_query(sql_query) | |
| if "error" in result: | |
| st.error(f"Error executing query: {result['error']}") | |
| elif "data" in result: | |
| st.dataframe(pd.DataFrame(result["data"])) | |
| st.success(f"Query returned {len(result['data'])} rows") | |
| elif "tables" in result: | |
| st.write(result["tables"]) | |
| elif "schema" in result: | |
| st.write(f"Schema for {result['table']}:") | |
| st.dataframe(pd.DataFrame(result["schema"])) |