Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """ | |
| Enhanced Configuration System Demo. | |
| Demonstrates the configuration system for UI classification improvements | |
| including feature toggles, styling options, and configuration management. | |
| Requirements: 7.1, 7.2, 7.3 | |
| """ | |
| import sys | |
| import os | |
| # Add src to path for imports | |
| current_dir = os.path.dirname(os.path.abspath(__file__)) | |
| parent_dir = os.path.dirname(current_dir) | |
| src_dir = os.path.join(parent_dir, 'src') | |
| if src_dir not in sys.path: | |
| sys.path.insert(0, src_dir) | |
| from config.enhanced_display_config import ( | |
| EnhancedDisplayConfig, | |
| EnhancedDisplayConfigManager, | |
| get_enhanced_display_config, | |
| create_high_contrast_config, | |
| create_minimal_config, | |
| create_mobile_optimized_config | |
| ) | |
| from interface.enhanced_results_display_manager import EnhancedResultsDisplayManager | |
| from core.provider_summary_generator import ProviderSummary | |
| def demo_basic_configuration(): | |
| """Demonstrate basic configuration usage.""" | |
| print("π§ Enhanced Display Configuration Demo") | |
| print("=" * 50) | |
| # Create default configuration | |
| config = EnhancedDisplayConfig() | |
| print(f"β Default configuration created") | |
| print(f" - Enhanced mode enabled: {config.enabled}") | |
| print(f" - Color coding enabled: {config.use_color_coding}") | |
| print(f" - Icons enabled: {config.use_icons}") | |
| print(f" - Visual separators enabled: {config.use_visual_separators}") | |
| print() | |
| # Show classification colors | |
| print("π¨ Classification Colors:") | |
| print(f" - Red: {config.classification_colors.red}") | |
| print(f" - Yellow: {config.classification_colors.yellow}") | |
| print(f" - Green: {config.classification_colors.green}") | |
| print() | |
| # Show section icons | |
| print("π Section Icons:") | |
| print(f" - AI Analysis: {config.ai_analysis.icon}") | |
| print(f" - Patient Message: {config.patient_message.icon}") | |
| print(f" - Provider Summary: {config.provider_summary.icon}") | |
| print() | |
| def demo_configuration_manager(): | |
| """Demonstrate configuration manager functionality.""" | |
| print("π Configuration Manager Demo") | |
| print("=" * 50) | |
| # Create configuration manager | |
| config_manager = EnhancedDisplayConfigManager() | |
| print(f"β Configuration manager created") | |
| # Load configuration | |
| config = config_manager.load_config() | |
| print(f"β Configuration loaded") | |
| print(f" - Config file: {config_manager.config_file}") | |
| print() | |
| # Update configuration | |
| print("π Updating configuration...") | |
| success = config_manager.update_config( | |
| use_icons=False, | |
| use_color_coding=True | |
| ) | |
| print(f" - Update successful: {success}") | |
| # Reload and verify | |
| updated_config = config_manager.load_config() | |
| print(f" - Icons enabled: {updated_config.use_icons}") | |
| print(f" - Color coding enabled: {updated_config.use_color_coding}") | |
| print() | |
| # Enable/disable features | |
| print("ποΈ Feature toggles...") | |
| config_manager.enable_feature('icons') | |
| config_manager.disable_feature('animations') | |
| final_config = config_manager.load_config() | |
| print(f" - Icons enabled: {final_config.use_icons}") | |
| print(f" - Animations enabled: {final_config.enable_animations}") | |
| print() | |
| def demo_preset_configurations(): | |
| """Demonstrate preset configuration options.""" | |
| print("π¨ Preset Configurations Demo") | |
| print("=" * 50) | |
| # High contrast configuration | |
| high_contrast = create_high_contrast_config() | |
| print("βΏ High Contrast Configuration:") | |
| print(f" - High contrast mode: {high_contrast.high_contrast_mode}") | |
| print(f" - Red color: {high_contrast.classification_colors.red}") | |
| print(f" - AI border color: {high_contrast.ai_analysis.border_color}") | |
| print() | |
| # Minimal configuration | |
| minimal = create_minimal_config() | |
| print("π² Minimal Configuration:") | |
| print(f" - Icons enabled: {minimal.use_icons}") | |
| print(f" - Visual separators: {minimal.use_visual_separators}") | |
| print(f" - Animations enabled: {minimal.enable_animations}") | |
| print() | |
| # Mobile optimized configuration | |
| mobile = create_mobile_optimized_config() | |
| print("π± Mobile Optimized Configuration:") | |
| print(f" - Responsive breakpoint: {mobile.responsive_breakpoint}") | |
| print(f" - AI padding: {mobile.ai_analysis.padding}") | |
| print(f" - Animations enabled: {mobile.enable_animations}") | |
| print() | |
| def demo_css_generation(): | |
| """Demonstrate CSS generation capabilities.""" | |
| print("π¨ CSS Generation Demo") | |
| print("=" * 50) | |
| config = EnhancedDisplayConfig() | |
| # Generate CSS variables | |
| css_vars = config.generate_css_variables() | |
| print("π CSS Variables (first 10 lines):") | |
| lines = css_vars.split('\n')[:10] | |
| for line in lines: | |
| print(f" {line}") | |
| print(" ...") | |
| print() | |
| # Generate base CSS | |
| base_css = config.generate_base_css() | |
| print(f"π Base CSS generated: {len(base_css)} characters") | |
| print() | |
| def demo_display_manager_integration(): | |
| """Demonstrate integration with display manager.""" | |
| print("π Display Manager Integration Demo") | |
| print("=" * 50) | |
| # Create configuration manager | |
| config_manager = EnhancedDisplayConfigManager() | |
| # Create display manager with configuration | |
| display_manager = EnhancedResultsDisplayManager(config_manager=config_manager) | |
| print(f"β Display manager created with config manager") | |
| print(f" - Enhanced mode enabled: {display_manager.is_enhanced_mode_enabled()}") | |
| print() | |
| # Test with different configurations | |
| print("ποΈ Testing with different configurations...") | |
| # Test with enhanced mode disabled | |
| config_manager.update_config(enabled=False) | |
| display_manager.reload_config() | |
| print(f" - Enhanced mode after disable: {display_manager.is_enhanced_mode_enabled()}") | |
| # Test with enhanced mode re-enabled | |
| config_manager.update_config(enabled=True) | |
| display_manager.reload_config() | |
| print(f" - Enhanced mode after enable: {display_manager.is_enhanced_mode_enabled()}") | |
| print() | |
| # Test formatting with different configurations | |
| print("π¨ Testing formatting with different styles...") | |
| # Format AI analysis with default config | |
| ai_html = display_manager.format_ai_analysis_section( | |
| classification="RED", | |
| indicators=["Loss of meaning", "Spiritual distress"], | |
| reasoning="Patient expressing existential concerns and loss of purpose." | |
| ) | |
| print(f" - AI analysis HTML length: {len(ai_html)} characters") | |
| # Disable icons and test again | |
| config_manager.update_config(use_icons=False) | |
| display_manager.reload_config() | |
| ai_html_no_icons = display_manager.format_ai_analysis_section( | |
| classification="RED", | |
| indicators=["Loss of meaning", "Spiritual distress"], | |
| reasoning="Patient expressing existential concerns and loss of purpose." | |
| ) | |
| print(f" - AI analysis HTML (no icons): {len(ai_html_no_icons)} characters") | |
| print() | |
| def demo_configuration_validation(): | |
| """Demonstrate configuration validation.""" | |
| print("β Configuration Validation Demo") | |
| print("=" * 50) | |
| config_manager = EnhancedDisplayConfigManager() | |
| # Validate current configuration | |
| issues = config_manager.validate_config() | |
| print(f"π Validation results: {len(issues)} issues found") | |
| if issues: | |
| for issue in issues: | |
| print(f" β οΈ {issue}") | |
| else: | |
| print(" β Configuration is valid") | |
| print() | |
| # Test with invalid configuration | |
| print("π§ Testing with invalid color...") | |
| # Create a new config manager for this test to avoid corrupting the main one | |
| test_config_manager = EnhancedDisplayConfigManager() | |
| # Manually create invalid config for testing | |
| test_config = test_config_manager.load_config() | |
| # Directly modify the color to an invalid format | |
| test_config.classification_colors.red = 'invalid-color' | |
| test_config_manager._config = test_config | |
| issues = test_config_manager.validate_config() | |
| print(f"π Validation after invalid color: {len(issues)} issues found") | |
| for issue in issues: | |
| print(f" β οΈ {issue}") | |
| print() | |
| # Reset to defaults | |
| config_manager.reset_to_defaults() | |
| print("π Configuration reset to defaults") | |
| def main(): | |
| """Run all configuration demos.""" | |
| print("π Enhanced Display Configuration System Demo") | |
| print("=" * 60) | |
| print() | |
| try: | |
| demo_basic_configuration() | |
| demo_configuration_manager() | |
| demo_preset_configurations() | |
| demo_css_generation() | |
| demo_display_manager_integration() | |
| demo_configuration_validation() | |
| print("β All configuration demos completed successfully!") | |
| except Exception as e: | |
| print(f"β Demo failed with error: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| if __name__ == "__main__": | |
| main() |