1414# limitations under the License.
1515
1616"""
17- Module de chargement de la configuration ARK
17+ ARK configuration loading module
1818
1919Ce module est responsable de:
20- - Charger la configuration depuis le fichier ARK_Main_Config.yml à la racine du workspace
21- - Gérer les patterns d'inclusion/exclusion de fichiers
20+ - Loadr la configuration depuis le file ARK_Main_Config.yml à la racine du workspace
21+ - Gérer les patterns d'inclusion/exclusion de files
2222- Fournir des fonctions utilitaires pour accéder aux options de configuration
23- - Créer un fichier de configuration par défaut si nécessaire
23+ - Créer un file de configuration par défaut si nécessaire
2424
25- Le fichier de configuration utilise le format YAML et permet de personnaliser:
26- - Les patterns de fichiers à inclure/exclure de la compilation
25+ Le file de configuration utilise le format YAML et permet de personnaliser:
26+ - Les patterns de files à inclure/exclure de la compilation
2727- Les gestionnaires d'environnement virtuel (Poetry, Pipenv, Conda, etc.)
2828- Les options de dépendances
2929
131131
132132def _deep_merge_dict (base : dict , override : dict ) -> dict :
133133 """
134- Fusionne récursivement deux dictionnaires .
134+ Recursively merge two dictionaries .
135135
136- Cette fonction permet de combiner une configuration de base avec des
137- valeurs personnalisées. Les dictionnaires imbriqués sont fusionnés
138- plutôt que remplacés, permettant une configuration modulaire.
136+ Cette fonction permet de combiner une configuration de base avec des
137+ valeurs personnalisées. Les dictionnaires imbriqués sont fusionnés
138+ plutôt que remplacés, permettant une configuration modulaire.
139139
140- Args:
141- base: Dictionnaire de configuration de base
142- override: Dictionnaire contenant les valeurs à surcharger
140+ Args:
141+ base: Dictionnaire de configuration de base
142+ override: Dictionnaire contenant les valeurs à surcharger
143143
144- Returns:
145- Un nouveau dictionnaire avec les valeurs fusionnées
146- """
144+ Returns:
145+ Un nouveau dictionnaire avec les valeurs fusionnées
146+ """
147147 result = base .copy ()
148148 for key , value in override .items ():
149149 if key in result and isinstance (result [key ], dict ) and isinstance (value , dict ):
@@ -157,25 +157,25 @@ def _deep_merge_dict(base: dict, override: dict) -> dict:
157157
158158def load_ark_config (workspace_dir : str ) -> dict [str , Any ]:
159159 """
160- Charge la configuration ARK depuis un fichier YAML.
160+ Load ARK configuration from a YAML file .
161161
162- Cette fonction recherche un fichier de configuration dans le workspace
163- selon un ordre de priorité prédéfini et fusionne la configuration
164- utilisateur avec les valeurs par défaut.
162+ Cette fonction recherche un file de configuration dans le workspace
163+ selon un ordre de priorité prédéfini et fusionne la configuration
164+ utilisateur avec les valeurs par défaut.
165165
166- Fichiers recherchés (ordre de priorité):
167- 1. ARK_Main_Config.yaml
168- 2. ARK_Main_Config.yml
169- 3. .ARK_Main_Config.yaml
170- 4. .ARK_Main_Config.yml
166+ Fichiers recherchés (ordre de priorité):
167+ 1. ARK_Main_Config.yaml
168+ 2. ARK_Main_Config.yml
169+ 3. .ARK_Main_Config.yaml
170+ 4. .ARK_Main_Config.yml
171171
172- Args:
173- workspace_dir: Chemin absolu vers le répertoire du workspace
172+ Args:
173+ workspace_dir: Path absolu vers le directory du workspace
174174
175- Returns:
176- Dictionnaire complet de configuration, incluant les valeurs par défaut
177- et les personnalisations utilisateur
178- """
175+ Returns:
176+ Dictionnaire complet de configuration, incluant les valeurs par défaut
177+ et les personnalisations utilisateur
178+ """
179179 import copy
180180
181181 # Commencer avec une copie complète de la configuration par défaut
@@ -283,41 +283,41 @@ def load_ark_config(workspace_dir: str) -> dict[str, Any]:
283283
284284def get_dependency_options (config : dict [str , Any ]) -> dict [str , Any ]:
285285 """
286- Récupère les options de gestion des dépendances .
286+ Return dependency management options.
287287
288- Returns:
289- Dictionnaire des options de dépendances
290- """
288+ Returns:
289+ Dictionnaire des options de dépendances
290+ """
291291 return config .get ("dependencies" , {})
292292
293293
294294def get_environment_manager_options (config : dict [str , Any ]) -> dict [str , Any ]:
295295 """
296- Récupère les options du gestionnaire d'environnement virtuel .
296+ Return virtual environment manager options.
297297
298- Returns:
299- Dictionnaire des options du gestionnaire d'environnement
300- """
298+ Returns:
299+ Dictionary of environment manager options.
300+ """
301301 return config .get ("environment_manager" , {})
302302
303303
304304def get_build_options (config : dict [str , Any ]) -> dict [str , Any ]:
305305 """
306- Récupère les options de build .
306+ Return build options.
307307
308- Returns:
309- Dictionnaire des options de build
310- """
308+ Returns:
309+ Dictionary of build options.
310+ """
311311 return config .get ("build" , {})
312312
313313
314314def get_entrypoint (config : dict [str , Any ]) -> Optional [str ]:
315315 """
316- Récupère le point d'entrée configuré .
316+ Return configured entry point.
317317
318- Returns:
319- Chemin relatif du point d'entrée ou None
320- """
318+ Returns:
319+ Path relatif du point d'entrée ou None
320+ """
321321 build_opts = get_build_options (config )
322322 if not isinstance (build_opts , dict ):
323323 return None
@@ -327,15 +327,15 @@ def get_entrypoint(config: dict[str, Any]) -> Optional[str]:
327327
328328def save_ark_config (workspace_dir : str , config : dict [str , Any ]) -> bool :
329329 """
330- Sauvegarde la configuration ARK dans ARK_Main_Config.yml.
330+ Save ARK configuration to ARK_Main_Config.yml.
331331
332- Args:
333- workspace_dir: Chemin du workspace
334- config: Configuration complète à enregistrer
332+ Args:
333+ workspace_dir: Path du workspace
334+ config: Configuration complète à enregistrer
335335
336- Returns:
337- True si succès, False sinon
338- """
336+ Returns:
337+ True si succès, False sinon
338+ """
339339 if not workspace_dir or not isinstance (config , dict ):
340340 return False
341341 try :
@@ -356,15 +356,15 @@ def save_ark_config(workspace_dir: str, config: dict[str, Any]) -> bool:
356356
357357def set_entrypoint (workspace_dir : str , entrypoint : Optional [str ]) -> bool :
358358 """
359- Met à jour le point d'entrée dans ARK_Main_Config.yml.
359+ Update entry point in ARK_Main_Config.yml.
360360
361- Args:
362- workspace_dir: Chemin du workspace
363- entrypoint: Chemin relatif du point d'entrée (ou None pour effacer)
361+ Args:
362+ workspace_dir: Path du workspace
363+ entrypoint: Path relatif du point d'entrée (ou None pour effacer)
364364
365- Returns:
366- True si succès, False sinon
367- """
365+ Returns:
366+ True si succès, False sinon
367+ """
368368 if not workspace_dir :
369369 return False
370370 cfg = load_ark_config (workspace_dir )
@@ -382,12 +382,12 @@ def set_entrypoint(workspace_dir: str, entrypoint: Optional[str]) -> bool:
382382
383383def _normalize_exclusion_pattern (pattern : str ) -> str :
384384 """
385- Normalise un pattern d'exclusion pour un matching fiable cross-plateforme .
385+ Normalize exclusion pattern for reliable cross-platform matching .
386386
387- - Convertit les séparateurs Windows en "/"
388- - Retire le préfixe "./"
389- - Si le pattern se termine par "/", on l'étend à "/**"
390- """
387+ - Convertit les séparateurs Windows en "/"
388+ - Retire le préfixe "./"
389+ - Si le pattern se termine par "/", on l'étend à "/**"
390+ """
391391 p = str (pattern ).strip ()
392392 if not p :
393393 return ""
@@ -403,21 +403,20 @@ def should_exclude_file(
403403 file_path : str , workspace_dir : str , exclusion_patterns : Optional [list [str ]]
404404) -> bool :
405405 """
406- Détermine si un fichier doit être exclu de la compilation.
406+ Determine whether a file must be excluded from compilation.
407407
408- Cette fonction compare le chemin du fichier avec les patterns
409- d'exclusion définis dans la configuration. Elle normalise les
410- séparateurs puis combine Path.match() et fnmatch pour supporter
411- les patterns glob avec "**" de façon cross-plateforme.
408+ Compare file path with configured exclusion patterns. The function
409+ normalizes separators and combines `Path.match()` with `fnmatch` to
410+ support glob patterns like `**` in a cross-platform way.
412411
413- Args:
414- file_path: Chemin absolu du fichier à vérifier
415- workspace_dir: Chemin absolu du workspace
416- exclusion_patterns: Liste des patterns d' exclusion
412+ Args:
413+ file_path: Absolute file path to check.
414+ workspace_dir: Absolute workspace path.
415+ exclusion_patterns: List of exclusion patterns.
417416
418- Returns:
419- True si le fichier doit être exclu, False sinon
420- """
417+ Returns:
418+ ` True` when file must be excluded, otherwise `False`.
419+ """
421420 try :
422421 if not file_path or not workspace_dir :
423422 return False
@@ -483,19 +482,19 @@ def should_exclude_file(
483482
484483def create_default_ark_config (workspace_dir : str ) -> bool :
485484 """
486- Crée un fichier ARK_Main_Config.yml avec la configuration par défaut .
485+ Create ARK_Main_Config.yml with default configuration.
487486
488- Cette fonction génère un fichier de configuration complet avec
489- toutes les options disponibles et leurs valeurs par défaut.
490- Elle ne remplace pas un fichier existant.
487+ Cette fonction génère un file de configuration complet avec
488+ toutes les options disponibles et leurs valeurs par défaut.
489+ Elle ne remplace pas un file existant.
491490
492- Args:
493- workspace_dir: Chemin du répertoire du workspace
491+ Args:
492+ workspace_dir: Path du directory du workspace
494493
495- Returns:
496- True si le fichier a été créé avec succès, False s'il existe déjà
497- ou si une erreur s'est produite
498- """
494+ Returns:
495+ True si le file a été créé avec succès, False s'il existe déjà
496+ ou si une erreur s'est produite
497+ """
499498 if not workspace_dir :
500499 return False
501500
0 commit comments