@@ -145,7 +145,13 @@ def _deep_merge_dict(base: dict, override: dict) -> dict:
145145
146146def load_ark_config (workspace_dir : str ) -> dict [str , Any ]:
147147 """
148- Charge la configuration ARK depuis ARK_Main_Config.yml
148+ Charge la configuration ARK depuis ARK_Main_Config.yml (YAML ONLY)
149+
150+ Cherche les fichiers dans cet ordre (priorité):
151+ 1. ARK_Main_Config.yaml
152+ 2. ARK_Main_Config.yml
153+ 3. .ARK_Main_Config.yaml
154+ 4. .ARK_Main_Config.yml
149155
150156 Args:
151157 workspace_dir: Chemin du workspace
@@ -160,9 +166,23 @@ def load_ark_config(workspace_dir: str) -> dict[str, Any]:
160166 return config
161167
162168 workspace_path = Path (workspace_dir )
163- config_file = workspace_path / "ARK_Main_Config.yml"
164169
165- if not config_file .exists ():
170+ # Chercher les fichiers YAML dans l'ordre de priorité
171+ # Priorité: ARK_Main_Config.yaml > ARK_Main_Config.yml > .ARK_Main_Config.yaml > .ARK_Main_Config.yml
172+ config_candidates = [
173+ workspace_path / "ARK_Main_Config.yaml" ,
174+ workspace_path / "ARK_Main_Config.yml" ,
175+ workspace_path / ".ARK_Main_Config.yaml" ,
176+ workspace_path / ".ARK_Main_Config.yml" ,
177+ ]
178+
179+ config_file = None
180+ for candidate in config_candidates :
181+ if candidate .exists () and candidate .is_file ():
182+ config_file = candidate
183+ break
184+
185+ if not config_file :
166186 return config
167187
168188 try :
@@ -194,7 +214,7 @@ def load_ark_config(workspace_dir: str) -> dict[str, Any]:
194214 return config
195215
196216 except Exception as e :
197- print (f"Warning: Failed to load ARK_Main_Config.yml : { e } " )
217+ print (f"Warning: Failed to load ARK config from { config_file } : { e } " )
198218 return config
199219
200220
@@ -399,11 +419,35 @@ def _write_yaml_atomic(path: Path, data: dict) -> bool:
399419
400420
401421def load_engine_ui_state (workspace_dir : str , engine_id : str ) -> dict :
402- """Load saved UI state for an engine from ARK_Main_Config.yml.
422+ """Load saved UI state for an engine from ARK_Main_Config.yml (YAML ONLY).
423+ Cherche les fichiers dans cet ordre:
424+ 1. ARK_Main_Config.yaml
425+ 2. ARK_Main_Config.yml
426+ 3. .ARK_Main_Config.yaml
427+ 4. .ARK_Main_Config.yml
428+
403429 Returns a mapping {widgetName: {prop: value}} or {}.
404430 """
405431 try :
406- cfg = _read_yaml (Path (workspace_dir ) / "ARK_Main_Config.yml" ) if workspace_dir else {}
432+ if not workspace_dir :
433+ return {}
434+
435+ workspace_path = Path (workspace_dir )
436+
437+ # Chercher les fichiers YAML dans l'ordre de priorité
438+ config_candidates = [
439+ workspace_path / "ARK_Main_Config.yaml" ,
440+ workspace_path / "ARK_Main_Config.yml" ,
441+ workspace_path / ".ARK_Main_Config.yaml" ,
442+ workspace_path / ".ARK_Main_Config.yml" ,
443+ ]
444+
445+ cfg = {}
446+ for candidate in config_candidates :
447+ if candidate .exists () and candidate .is_file ():
448+ cfg = _read_yaml (candidate )
449+ break
450+
407451 engines = cfg .get ("engines" , {}) if isinstance (cfg , dict ) else {}
408452 e = engines .get (str (engine_id ), {}) if isinstance (engines , dict ) else {}
409453 ui = e .get ("ui" , {}) if isinstance (e , dict ) else {}
@@ -414,7 +458,15 @@ def load_engine_ui_state(workspace_dir: str, engine_id: str) -> dict:
414458
415459
416460def save_engine_ui_state (workspace_dir : str , engine_id : str , updates : dict ) -> bool :
417- """Save UI state for an engine into ARK_Main_Config.yml.
461+ """Save UI state for an engine into ARK_Main_Config.yml (YAML ONLY).
462+ Cherche les fichiers existants dans cet ordre:
463+ 1. ARK_Main_Config.yaml
464+ 2. ARK_Main_Config.yml
465+ 3. .ARK_Main_Config.yaml
466+ 4. .ARK_Main_Config.yml
467+
468+ Si aucun fichier n'existe, crée ARK_Main_Config.yml par défaut.
469+
418470 - workspace_dir: project workspace path
419471 - engine_id: id string (e.g. 'pyinstaller')
420472 - updates: {widgetName: {prop: value}}
@@ -423,7 +475,26 @@ def save_engine_ui_state(workspace_dir: str, engine_id: str, updates: dict) -> b
423475 if not workspace_dir :
424476 return False
425477 try :
426- cfg_path = Path (workspace_dir ) / "ARK_Main_Config.yml"
478+ workspace_path = Path (workspace_dir )
479+
480+ # Chercher les fichiers YAML existants dans l'ordre de priorité
481+ config_candidates = [
482+ workspace_path / "ARK_Main_Config.yaml" ,
483+ workspace_path / "ARK_Main_Config.yml" ,
484+ workspace_path / ".ARK_Main_Config.yaml" ,
485+ workspace_path / ".ARK_Main_Config.yml" ,
486+ ]
487+
488+ cfg_path = None
489+ for candidate in config_candidates :
490+ if candidate .exists () and candidate .is_file ():
491+ cfg_path = candidate
492+ break
493+
494+ # Si aucun fichier n'existe, utiliser ARK_Main_Config.yml par défaut
495+ if cfg_path is None :
496+ cfg_path = workspace_path / "ARK_Main_Config.yml"
497+
427498 cfg = _read_yaml (cfg_path )
428499 if not isinstance (cfg , dict ):
429500 cfg = {}
0 commit comments