Skip to content

Commit 5a3880e

Browse files
committed
Refactor ArkConfigManager and BCASL configuration
1 parent 1aec077 commit 5a3880e

3 files changed

Lines changed: 20 additions & 109 deletions

File tree

Core/ArkConfigManager.py

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
2525
Le fichier de configuration utilise le format YAML et permet de personnaliser:
2626
- Les patterns de fichiers à inclure/exclure de la compilation
27-
- Le comportement de compilation (fichier principal, points d'entrée)
2827
- Les gestionnaires d'environnement virtuel (Poetry, Pipenv, Conda, etc.)
2928
- Les options de dépendances
30-
- La configuration des plugins
29+
30+
Note: La configuration des plugins BCASL est gérée exclusivement par bcasl.yml
3131
"""
3232

3333
import os
@@ -88,12 +88,6 @@
8888
"exclusion_patterns": DEFAULT_EXCLUSION_PATTERNS,
8989
"inclusion_patterns": ["**/*.py"],
9090
# -----------------------------------------------------------------------------
91-
# COMPORTEMENT DE COMPILATION
92-
# -----------------------------------------------------------------------------
93-
"compile_only_main": False,
94-
"main_file_names": ["main.py", "app.py"],
95-
"auto_detect_entry_points": True,
96-
# -----------------------------------------------------------------------------
9791
# GESTION DES DÉPENDANCES
9892
# -----------------------------------------------------------------------------
9993
"dependencies": {
@@ -125,13 +119,6 @@
125119
# Revenir à pip si aucun gestionnaire n'est détecté
126120
"fallback_to_pip": True,
127121
},
128-
# -----------------------------------------------------------------------------
129-
# CONFIGURATION DES PLUGINS
130-
# -----------------------------------------------------------------------------
131-
"plugins": {
132-
"bcasl_enabled": True,
133-
"plugin_timeout": 0.0,
134-
},
135122
}
136123

137124

@@ -246,15 +233,6 @@ def load_ark_config(workspace_dir: str) -> dict[str, Any]:
246233
str(p) for p in config["inclusion_patterns"] if p
247234
]
248235

249-
# -----------------------------------------------------------------------------
250-
# VALIDATION DES NOMS DE FICHIERS PRINCIPAUX
251-
# -----------------------------------------------------------------------------
252-
if "main_file_names" in config:
253-
if isinstance(config["main_file_names"], list):
254-
config["main_file_names"] = [
255-
str(n) for n in config["main_file_names"] if n
256-
]
257-
258236
return config
259237

260238
except Exception as e:
@@ -264,32 +242,7 @@ def load_ark_config(workspace_dir: str) -> dict[str, Any]:
264242
return config
265243

266244

267-
def get_compiler_options(config: dict[str, Any], compiler: str) -> dict[str, Any]:
268-
"""
269-
Récupère les options spécifiques à un compilateur.
270-
271-
Cette fonction permet d'extraire les options de configuration
272-
dédiées à un compilateur particulier (pyinstaller, nuitka, cx_freeze).
273-
274-
Args:
275-
config: Dictionnaire de configuration complet
276-
compiler: Nom du compilateur (ex: "pyinstaller", "nuitka")
277245

278-
Returns:
279-
Dictionnaire des options du compilateur, ou un dictionnaire vide
280-
"""
281-
compiler_lower = compiler.lower()
282-
return config.get(compiler_lower, {})
283-
284-
285-
def get_output_options(config: dict[str, Any]) -> dict[str, Any]:
286-
"""
287-
Récupère les options de sortie pour les exécutables compilés.
288-
289-
Returns:
290-
Dictionnaire des options de sortie (répertoire, nettoyage, etc.)
291-
"""
292-
return config.get("output", {})
293246

294247

295248
def get_dependency_options(config: dict[str, Any]) -> dict[str, Any]:
@@ -417,24 +370,7 @@ def create_default_ark_config(workspace_dir: str) -> bool:
417370
inclusion_patterns:
418371
- "**/*.py"
419372
420-
# -----------------------------------------------------------------------------
421-
# COMPORTEMENT DE COMPILATION
422-
# -----------------------------------------------------------------------------
423-
# Compiler uniquement le fichier principal (désactivé par défaut)
424-
compile_only_main: false
425-
# Noms de fichiers recherchés comme points d'entrée
426-
main_file_names:
427-
- "main.py"
428-
- "app.py"
429-
# Détection automatique des points d'entrée dans le code
430-
auto_detect_entry_points: true
431373
432-
# -----------------------------------------------------------------------------
433-
# CONFIGURATION DE LA SORTIE
434-
# -----------------------------------------------------------------------------
435-
output:
436-
directory: "dist"
437-
clean_before_build: false
438374
439375
# -----------------------------------------------------------------------------
440376
# GESTION DES DÉPENDANCES

TODO.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
# TODO: Changer l'interface graphique pour utiliser QMainWindow
1+
# Plan de correction pour ArkConfigManager et BCASL
22

3-
## Étapes à suivre
4-
- [ ] Mettre à jour les imports et l'héritage dans Core/Gui.py
5-
- [ ] Ajuster la configuration de l'UI dans Core/UiConnection.py pour utiliser setCentralWidget
6-
- [ ] Tester les changements pour s'assurer que l'interface fonctionne correctement
3+
## Tâches à effectuer
4+
5+
1. **Supprimer les fonctions de comportement de compilation dans Core/ArkConfigManager.py**
6+
- Supprimer la fonction `get_compiler_options`
7+
- Supprimer la fonction `get_output_options`
8+
9+
2. **Supprimer la section de configuration de sortie dans Core/ArkConfigManager.py**
10+
- Retirer la section "CONFIGURATION DE LA SORTIE" du contenu par défaut dans `create_default_ark_config`
11+
12+
3. **Corriger BCASL pour qu'il ne dépende que de bcasl.yml**
13+
- Dans bcasl/Loader.py, supprimer la fusion avec la configuration ARK dans `_load_workspace_config`
14+
- Supprimer le chargement des patterns et options de plugins depuis ARK_Main_Config.yml
15+
16+
## Suivi des tâches
17+
- [ ] Tâche 1: Supprimer get_compiler_options et get_output_options
18+
- [ ] Tâche 2: Supprimer la section output dans create_default_ark_config
19+
- [ ] Tâche 3: Corriger _load_workspace_config dans bcasl/Loader.py

bcasl/Loader.py

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -200,44 +200,6 @@ def _read_yml(p: Path) -> dict[str, Any]:
200200
data = _read_yml(p)
201201

202202
if isinstance(data, dict) and data:
203-
# Fusionner avec ARK_Main_Config.yml si disponible
204-
# IMPORTANT: bcasl config takes priority over ARK config
205-
# ARK config only fills in missing values
206-
try:
207-
from Core.ArkConfigManager import load_ark_config
208-
209-
ark_config = load_ark_config(str(workspace_root))
210-
211-
# Fusionner les patterns d'exclusion (additive merge)
212-
if "exclusion_patterns" in ark_config:
213-
existing_excludes = data.get("exclude_patterns", [])
214-
data["exclude_patterns"] = list(
215-
set(existing_excludes + ark_config["exclusion_patterns"])
216-
)
217-
218-
# ARK inclusion patterns always override bcasl file_patterns
219-
if "inclusion_patterns" in ark_config:
220-
data["file_patterns"] = ark_config["inclusion_patterns"]
221-
222-
# Merge plugin options from ARK only if not explicitly set in bcasl config
223-
plugin_opts = ark_config.get("plugins", {})
224-
if plugin_opts:
225-
opts = data.get("options", {})
226-
# Only use ARK's bcasl_enabled if not explicitly set in bcasl config
227-
if "enabled" not in opts and "bcasl_enabled" in plugin_opts:
228-
opts["enabled"] = plugin_opts["bcasl_enabled"]
229-
# Only use ARK's plugin_timeout if not explicitly set in bcasl config
230-
if (
231-
"plugin_timeout_s" not in opts
232-
and "plugin_timeout" in plugin_opts
233-
):
234-
opts["plugin_timeout_s"] = float(
235-
plugin_opts["plugin_timeout"]
236-
)
237-
data["options"] = opts
238-
except Exception:
239-
pass
240-
241203
return data
242204

243205
# 2) Génération défaut avec fusion ARK

0 commit comments

Comments
 (0)