1616"""
1717PyCompiler ARK - Compiler Core Module
1818
19- Module principal du compilateur pour PyCompiler ARK.
20- Gère l'exécution des processus de compilation avec support threading
21- et communication en temps réel avec l'interface utilisateur.
22-
23- Classes principales:
24- - CompilerCore: Classe principale du compilateur
25- - CompilationThread: Thread pour exécution non-bloquante
26- - MainProcess: Processus principal de compilation
27- - ProcessKiller: Gestion des processus
28-
29- Fonctions:
30- - kill_process: Tue un processus
31- - kill_process_tree: Tue un processus et ses enfants
32- - build_command: Construit une commande de compilation
33- - validate_command: Valide une commande de compilation
34-
35- Note: Les fonctions de command_helpers.py ont été intégrées dans mainprocess.py
36- pour supporter l'intégration avec ArkConfigManager pour les exclusions.
19+ Main compiler orchestration module for PyCompiler ARK.
20+
21+ This module connects GUI actions to compilation runtime services:
22+ - command preparation and validation
23+ - process lifecycle management
24+ - BCASL pre-compile gating
25+ - cancellation and UI feedback
3726"""
3827
3928from __future__ import annotations
@@ -162,15 +151,15 @@ def _resolve_default_engine_id() -> str:
162151
163152
164153def _get_main_process () -> MainProcess :
165- """Retourne l'instance de MainProcess, en la créant si nécessaire ."""
154+ """Return the singleton ` MainProcess` instance, creating it on demand ."""
166155 global _main_process
167156 if _main_process is None :
168157 _main_process = MainProcess ()
169158 return _main_process
170159
171160
172161def _run_bcasl_before_compile (self , on_done ) -> None :
173- """Lance BCASL avant compilation, puis appelle on_done(report)."""
162+ """Run BCASL pre-compile stage, then invoke ` on_done(report)` ."""
174163 try :
175164 from bcasl import run_pre_compile_async
176165 except Exception :
@@ -251,9 +240,9 @@ def _bcasl_report_allows_compile(self, report) -> bool:
251240
252241def compile_all (self ) -> None :
253242 """
254- Slot connected to the compile button.
255- Starts compilation for all selected Python files.
256- """
243+ Slot connected to the compile button.
244+ Starts compilation for all selected Python files.
245+ """
257246
258247 def _t (_key : str , fr : str , en : str ) -> str :
259248 try :
@@ -479,7 +468,7 @@ def _after_bcasl(_report=None) -> None:
479468
480469
481470def _start_compilation_queue (self , engine , files_to_compile : list ) -> None :
482- """Démarre la compilation d'une file de fichiers ."""
471+ """Start compilation of a queue of files ."""
483472 main_process = _get_main_process ()
484473
485474 # Connecter les signaux de MainProcess si pas déjà fait
@@ -589,27 +578,27 @@ def _start_compilation_queue(self, engine, files_to_compile: list) -> None:
589578
590579def cancel_all_compilations (self ) -> bool :
591580 """
592- Slot connected to the cancel button.
593- Cancels all ongoing compilations.
594- """
581+ Slot connected to the cancel button.
582+ Cancels all ongoing compilations.
583+ """
595584 main_process = _get_main_process ()
596585
597- # Marquer l'annulation le plus tôt possible pour stopper le pipeline BCASL -> compile.
586+ # Étape 1: marquer l'annulation immédiatement ( BCASL -> compile) .
598587 try :
599588 self ._cancel_requested_during_precompile = True
600589 except Exception :
601590 pass
602591
603592 cancelled = False
604593
605- # 1) Stop compilation engine process/tree immediately .
594+ # Étape 2: arrêter le process de compilation au plus tôt .
606595 try :
607596 if main_process .is_compiling :
608597 cancelled = bool (main_process .cancel ()) or cancelled
609598 except Exception :
610599 pass
611600
612- # 2) Stop BCASL thread + workers aggressively (short timeout ).
601+ # Étape 3: stopper BCASL thread + workers (mode agressif ).
613602 bcasl_was_running = False
614603 try :
615604 bcasl_thread = getattr (self , "_bcasl_thread" , None )
@@ -636,7 +625,7 @@ def cancel_all_compilations(self) -> bool:
636625 except Exception :
637626 pass
638627
639- # 3) Re-enable GUI controls right away .
628+ # Étape 4: réactiver l'UI sans attendre .
640629 try :
641630 self .set_controls_enabled (True )
642631 except Exception :
@@ -690,9 +679,9 @@ def show_error_dialog(self, title: str, message: str) -> None:
690679
691680def try_install_missing_modules (self , modules : list ) -> bool :
692681 """
693- Try to install missing Python modules.
694- Returns True if installation succeeded or no install needed.
695- """
682+ Try to install missing Python modules.
683+ Returns True if installation succeeded or no install needed.
684+ """
696685 if not modules :
697686 return True
698687
@@ -714,16 +703,16 @@ def try_install_missing_modules(self, modules: list) -> bool:
714703
715704def start_compilation_process (self , engine_id : str , file_path : str ) -> bool :
716705 """
717- Start a single compilation process using MainProcess.
706+ Start a single compilation process using MainProcess.
718707
719- Args:
720- self: GUI instance
721- engine_id: ID of the compilation engine
722- file_path: Path to the Python file to compile
708+ Args:
709+ self: GUI instance
710+ engine_id: ID of the compilation engine
711+ file_path: Path to the Python file to compile
723712
724- Returns:
725- True if compilation started, False otherwise
726- """
713+ Returns:
714+ True if compilation started, False otherwise
715+ """
727716 # Sauvegarder la configuration UI de l'engine actif dans le workspace
728717 try :
729718 from Core .EngineConfigManager import save_engine_config_for_gui
@@ -879,9 +868,9 @@ def _after_bcasl(_report=None) -> None:
879868
880869def try_start_processes (self ) -> bool :
881870 """
882- Try to start compilation processes for all selected files.
883- Returns True if at least one process started.
884- """
871+ Try to start compilation processes for all selected files.
872+ Returns True if at least one process started.
873+ """
885874 if not self .python_files :
886875 log_i18n_level (
887876 self , "warning" , "Aucun fichier à compiler." , "No files to compile."
@@ -908,9 +897,9 @@ def try_start_processes(self) -> bool:
908897
909898def _continue_compile_all (self ) -> None :
910899 """
911- Continue compilation of remaining files after one completes.
912- Called from handle_finished when a compilation succeeds.
913- """
900+ Continue compilation of remaining files after one completes.
901+ Called from handle_finished when a compilation succeeds.
902+ """
914903 # Cette fonction est appelée après chaque compilation réussie
915904 # Elle peut être utilisée pour compiler les fichiers suivants en file d'attente
916905 pass
0 commit comments