diff --git a/Pseudonymisation_Gui_V6.py b/Pseudonymisation_Gui_V6.py index 27e299c..f52bffd 100644 --- a/Pseudonymisation_Gui_V6.py +++ b/Pseudonymisation_Gui_V6.py @@ -57,9 +57,12 @@ def main(argv=None) -> int: if "--self-test" in argv: return _self_test() - from gui_v6.logging_setup import setup_file_logging + try: + from gui_v6.logging_setup import setup_file_logging - setup_file_logging() + setup_file_logging() + except Exception: + pass from gui_v6.app import AnonymisationApp from gui_v6.single_instance import AlreadyRunningError, SingleInstance diff --git a/gui_v6/processing_runner.py b/gui_v6/processing_runner.py index a5369fe..7a5c6b8 100644 --- a/gui_v6/processing_runner.py +++ b/gui_v6/processing_runner.py @@ -130,10 +130,11 @@ class RunSummary: def _default_process_fn(doc_path: Path, out_dir: Path) -> dict: - # Import paresseux : aucun manager NER chargé à l'import du runner. - from anonymizer_core_refactored_onnx import process_document + # Passe par make_process_fn pour bénéficier du fail-close P0-1 (refus si le + # NER obligatoire est indisponible), même sur ce chemin de repli. + from gui_v6.engine_bridge import EngineSettings, make_process_fn - return process_document(doc_path, out_dir) + return make_process_fn(EngineSettings())(doc_path, out_dir) class ProcessingRunner: diff --git a/gui_v6/single_instance.py b/gui_v6/single_instance.py index b3b4c53..68a7341 100644 --- a/gui_v6/single_instance.py +++ b/gui_v6/single_instance.py @@ -1,7 +1,8 @@ """Protection multi-instance de la GUI V6 (P0-7). -- Windows (frozen) : mutex nommé kernel via ctypes — c'est CE nom que l'installeur - Inno détecte (``AppMutex``) pour fermer l'app avant une mise à jour (D8). +- Windows (frozen) : mutex nommé kernel via ctypes — ce nom DEVRA être déclaré comme + ``AppMutex`` dans installer/Anonymisation.iss (Plan 3 / D8) pour que l'installeur + ferme l'app avant une mise à jour. - POSIX (dev/test) : verrou ``fcntl`` exclusif sur un fichier dans le dossier app. """ @@ -11,7 +12,7 @@ import os import sys from pathlib import Path -# Nom partagé avec installer/Anonymisation.iss (AppMutex). NE PAS modifier seul. +# Nom destiné à l'AppMutex de installer/Anonymisation.iss (Plan 3 / D8). NE PAS modifier sans synchroniser le .iss. APP_MUTEX_NAME = "AivanonymAnonymisationV6" diff --git a/tests/unit/test_gui_v6_single_instance.py b/tests/unit/test_gui_v6_single_instance.py index 6497750..b733aed 100644 --- a/tests/unit/test_gui_v6_single_instance.py +++ b/tests/unit/test_gui_v6_single_instance.py @@ -8,7 +8,7 @@ from gui_v6.single_instance import ( def test_mutex_name_is_stable(): - # Nom partagé avec l'installeur (Inno AppMutex). Ne pas changer sans MAJ .iss. + # Nom destiné à l'installeur (Inno AppMutex, Plan 3). Sentinelle anti-renommage accidentel. assert APP_MUTEX_NAME == "AivanonymAnonymisationV6"