#!/usr/bin/env python3 """Launch RPA Vision V3 GUI with full integration""" import sys from pathlib import Path # Add current directory to path for imports sys.path.insert(0, str(Path(__file__).parent)) from PyQt5.QtWidgets import QApplication from gui.main_window import MainWindow from core.system import initialize_system_cleanup, shutdown_system from core.security import validate_production_security, get_security_config import logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) def main(): # Valider la sécurité en production try: config = get_security_config() validate_production_security(config) except Exception as e: logging.error(f"Security validation failed: {e}") sys.exit(1) # Initialiser le système de cleanup initialize_system_cleanup() app = QApplication(sys.argv) app.setApplicationName("RPA Vision V3") # Enregistrer le cleanup de l'application Qt def cleanup_qt(): try: app.quit() except Exception as e: logging.error(f"Error during Qt cleanup: {e}") from core.system import register_cleanup_function register_cleanup_function(cleanup_qt, "Qt Application") window = MainWindow() window.show() try: result = app.exec_() shutdown_system() sys.exit(result) except KeyboardInterrupt: logging.info("Received keyboard interrupt, shutting down...") shutdown_system() sys.exit(0) except Exception as e: logging.error(f"Unexpected error: {e}") shutdown_system() sys.exit(1) if __name__ == '__main__': main()