Spaces:
Building
Building
| #!/usr/bin/env python3 | |
| import streamlit as st | |
| import pandas as pd | |
| import tempfile | |
| import os | |
| from pathlib import Path | |
| def debug_session_state(): | |
| """Debug function to check session state contents.""" | |
| st.write("## Debug Session State") | |
| # Check if reference_lists exists | |
| if 'reference_lists' in st.session_state: | |
| st.write("**reference_lists found in session state**") | |
| for key, value in st.session_state.reference_lists.items(): | |
| st.write(f"### {key}") | |
| st.write(f"Type: {type(value)}") | |
| if isinstance(value, dict): | |
| for sub_key, sub_value in value.items(): | |
| st.write(f" - {sub_key}: {type(sub_value)}") | |
| if isinstance(sub_value, dict): | |
| if sub_value.get('is_custom_config'): | |
| st.write(f" * Custom config:") | |
| st.write(f" - file_path: {sub_value.get('file_path')}") | |
| st.write(f" - word_column: {sub_value.get('word_column')}") | |
| st.write(f" - freq_column: {sub_value.get('freq_column')}") | |
| st.write(f" - delimiter: {sub_value.get('delimiter')}") | |
| else: | |
| st.write(f" * Regular dict with {len(sub_value)} entries") | |
| else: | |
| st.write(f" * Value: {sub_value}") | |
| else: | |
| st.write(f" Value: {value}") | |
| else: | |
| st.write("**No reference_lists in session state**") | |
| # Check uploaded_file_configs | |
| if 'uploaded_file_configs' in st.session_state: | |
| st.write("**uploaded_file_configs found**") | |
| for key, value in st.session_state.uploaded_file_configs.items(): | |
| st.write(f"### {key}") | |
| st.write(f" - columns: {value.get('columns', [])}") | |
| st.write(f" - base_name: {value.get('base_name', 'N/A')}") | |
| st.write(f" - file_path: {value.get('file_path', 'N/A')}") | |
| else: | |
| st.write("**No uploaded_file_configs in session state**") | |
| def clear_session_state(): | |
| """Clear session state for debugging.""" | |
| if st.button("Clear Session State"): | |
| for key in list(st.session_state.keys()): | |
| if key in ['reference_lists', 'uploaded_file_configs']: | |
| del st.session_state[key] | |
| st.success("Session state cleared") | |
| st.experimental_rerun() | |
| def test_multi_config(): | |
| """Test multi-configuration setup.""" | |
| st.write("## Test Multi-Configuration") | |
| # Create test data | |
| test_data = """Type,POS,Headword,Rank,Freq,Range,NormFreq | |
| the,,,1,60056,500,59001.119 | |
| of,,,2,30331,500,29798.237 | |
| and,,,3,28973,500,28464.091""" | |
| # Save to temp file | |
| temp_dir = tempfile.mkdtemp() | |
| test_file = os.path.join(temp_dir, "test_multi.csv") | |
| with open(test_file, 'w') as f: | |
| f.write(test_data) | |
| # Create configurations | |
| configs = [ | |
| { | |
| 'index_name': 'test_freq', | |
| 'word_column': 'Type', | |
| 'score_column': 'Freq' | |
| }, | |
| { | |
| 'index_name': 'test_range', | |
| 'word_column': 'Type', | |
| 'score_column': 'Range' | |
| } | |
| ] | |
| if st.button("Create Test Configurations"): | |
| # Initialize reference_lists | |
| if 'reference_lists' not in st.session_state: | |
| st.session_state.reference_lists = {} | |
| # Add configurations | |
| for config in configs: | |
| custom_data = { | |
| 'file_path': test_file, | |
| 'word_column': config['word_column'], | |
| 'freq_column': config['score_column'], | |
| 'delimiter': ',', | |
| 'is_custom_config': True | |
| } | |
| st.session_state.reference_lists[config['index_name']] = { | |
| 'token': custom_data | |
| } | |
| st.success("Test configurations created") | |
| st.experimental_rerun() | |
| # Main app | |
| def main(): | |
| st.title("Debug Multi-Index Configuration") | |
| debug_session_state() | |
| clear_session_state() | |
| test_multi_config() | |
| if __name__ == "__main__": | |
| main() |