#!/usr/bin/env python3 """ Vérification automatique du système de capture d'écran Exécuté automatiquement par run.sh pour garantir que tout fonctionne """ import sys import logging # Configuration du logging logging.basicConfig(level=logging.INFO, format='%(message)s') logger = logging.getLogger(__name__) def verify_imports(): """Vérifier que tous les imports nécessaires fonctionnent""" logger.info("Vérification des imports...") try: import numpy as np logger.info(" ✓ numpy") except ImportError as e: logger.error(f" ✗ numpy: {e}") return False try: import mss logger.info(" ✓ mss") except ImportError: logger.warning(" ⚠ mss non disponible (fallback vers pyautogui)") try: import pyautogui logger.info(" ✓ pyautogui (fallback)") except ImportError as e: logger.error(f" ✗ Aucune bibliothèque de capture disponible: {e}") return False try: import pygetwindow logger.info(" ✓ pygetwindow") except (ImportError, NotImplementedError) as e: logger.warning(" ⚠ pygetwindow non disponible (détection de fenêtre désactivée)") logger.debug(f" Raison: {e}") return True def verify_screen_capturer(): """Vérifier que ScreenCapturer fonctionne""" logger.info("\nVérification de ScreenCapturer...") try: from core.capture.screen_capturer import ScreenCapturer logger.info(" ✓ Import réussi") except ImportError as e: logger.error(f" ✗ Impossible d'importer ScreenCapturer: {e}") return False try: capturer = ScreenCapturer() logger.info(f" ✓ Initialisation réussie (méthode: {capturer.method})") except Exception as e: logger.error(f" ✗ Échec d'initialisation: {e}") return False try: img = capturer.capture() if img is not None: logger.info(f" ✓ Capture réussie: {img.shape}") return True else: logger.error(" ✗ Capture a retourné None") return False except Exception as e: logger.error(f" ✗ Échec de capture: {e}") return False def main(): """Fonction principale de vérification""" logger.info("="*60) logger.info("VÉRIFICATION DU SYSTÈME DE CAPTURE D'ÉCRAN") logger.info("="*60) # Vérifier les imports if not verify_imports(): logger.error("\n✗ Échec de vérification des imports") logger.error("Installez les dépendances: pip install mss pygetwindow") return 1 # Vérifier ScreenCapturer if not verify_screen_capturer(): logger.error("\n✗ Échec de vérification de ScreenCapturer") return 1 logger.info("\n" + "="*60) logger.info("✓ SYSTÈME DE CAPTURE OPÉRATIONNEL") logger.info("="*60) return 0 if __name__ == "__main__": sys.exit(main())