Skip to content

Commit 9f54e6b

Browse files
committed
Refactor workspace setup logic in MainWindow and Venv_Manager
1 parent 8e4974b commit 9f54e6b

2 files changed

Lines changed: 42 additions & 43 deletions

File tree

Core/MainWindow.py

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -492,38 +492,13 @@ def apply_workspace_selection(self, folder: str, source: str = "ui") -> bool:
492492
self.save_preferences()
493493
except Exception:
494494
pass
495-
# -- Ajout automatique --
495+
# -- Configuration centralisée du workspace --
496496
try:
497-
self.venv_manager.create_venv_if_needed(folder)
498-
venv_path = None
499-
for name in (".venv", "venv"):
500-
cand = os.path.join(folder, name)
501-
if os.path.isdir(cand):
502-
venv_path = cand
503-
break
504-
if not venv_path:
505-
self.log_i18n(
506-
"Aucun dossier venv détecté dans ce workspace.",
507-
"No venv folder detected in this workspace.",
508-
)
509-
else:
510-
self.log_i18n("Dossier venv détecté.", "Venv folder detected.")
511-
except Exception:
512-
pass
513-
514-
# Créer le fichier ARK_Main_Config.yml s'il n'existe pas
515-
try:
516-
from Core.ark_config_loader import create_default_ark_config
517-
518-
if create_default_ark_config(folder):
519-
self.log_i18n(
520-
"📋 Fichier ARK_Main_Config.yml créé dans le workspace.",
521-
"📋 ARK_Main_Config.yml file created in workspace.",
522-
)
497+
self.venv_manager.setup_workspace(folder)
523498
except Exception as e:
524499
self.log_i18n(
525-
f"⚠️ Impossible de créer ARK_Main_Config.yml: {e}",
526-
f"⚠️ Failed to create ARK_Main_Config.yml: {e}",
500+
f"⚠️ Erreur lors de la configuration du workspace: {e}",
501+
f"⚠️ Error during workspace setup: {e}",
527502
)
528503

529504
# Fermer le dialog de chargement
@@ -549,21 +524,7 @@ def apply_workspace_selection(self, folder: str, source: str = "ui") -> bool:
549524
pass
550525
return False
551526

552-
def _check_next_venv_pkg(self):
553-
# Delegated to venv_manager - these methods are now handled by VenvManager
554-
pass
555-
556-
def _on_venv_pkg_checked(self, process, code, status, pkg):
557-
# Delegated to venv_manager
558-
pass
559-
560-
def _on_venv_check_output(self, process, error=False):
561-
# Delegated to venv_manager
562-
pass
563527

564-
def _on_venv_pkg_installed(self, process, code, status, pkg):
565-
# Delegated to venv_manager
566-
pass
567528

568529
def select_venv_manually(self):
569530
self.venv_manager.select_venv_manually()

Core/Venv_Manager/Manager.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2047,6 +2047,44 @@ def _on_manager_install_finished(self, process, code, status, manager):
20472047

20482048
QApplication.processEvents()
20492049

2050+
def setup_workspace(self, workspace_dir: str) -> bool:
2051+
"""Setup a workspace with venv and dependencies.
2052+
2053+
This centralizes the workspace setup logic that was previously
2054+
scattered in MainWindow.apply_workspace_selection().
2055+
2056+
Args:
2057+
workspace_dir: Path to the workspace directory
2058+
2059+
Returns:
2060+
bool: True if setup successful, False otherwise
2061+
"""
2062+
try:
2063+
workspace_dir = os.path.abspath(workspace_dir)
2064+
2065+
# Create venv if needed
2066+
self.create_venv_if_needed(workspace_dir)
2067+
2068+
# Create ARK config if it doesn't exist
2069+
try:
2070+
from Core.ark_config_loader import create_default_ark_config
2071+
2072+
if create_default_ark_config(workspace_dir):
2073+
self._safe_log(
2074+
"📋 Fichier ARK_Main_Config.yml créé dans le workspace.",
2075+
"📋 ARK_Main_Config.yml file created in workspace.",
2076+
)
2077+
except Exception as e:
2078+
self._safe_log(
2079+
f"⚠️ Impossible de créer ARK_Main_Config.yml: {e}",
2080+
f"⚠️ Failed to create ARK_Main_Config.yml: {e}",
2081+
)
2082+
2083+
return True
2084+
except Exception as e:
2085+
self._safe_log(f"❌ Erreur lors de la configuration du workspace: {e}")
2086+
return False
2087+
20502088
def get_manager_info(self, workspace_dir: str) -> dict:
20512089
"""Get detailed information about the detected environment manager."""
20522090
try:

0 commit comments

Comments
 (0)