Skip to content

Commit 4ccfac3

Browse files
committed
refactor: renommage Core/sys_deps.py vers
Core/SysDependencyManager.py
1 parent d2420a2 commit 4ccfac3

9 files changed

Lines changed: 35 additions & 52 deletions

File tree

Core/engine/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def ensure_tools_installed(self, gui, stop_signal: Optional[Callable[[], bool]]
197197
if system_tools:
198198
try:
199199
# Import and use SysDependencyManager directly for full GUI support
200-
from Core.sys_deps import (
200+
from Core.SysDependencyManager import (
201201
SysDependencyManager,
202202
check_system_packages,
203203
)

Ui/Gui/Gui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ def apply_file_filter(self, text: Optional[str] = None) -> None:
335335
# PRÉFÉRENCES (délégation à Core/PreferencesManager)
336336
# =========================================================================
337337

338-
from Core.PreferencesManager import load_preferences, save_preferences
338+
from Ui.PreferencesManager import load_preferences, save_preferences
339339

340340
# =========================================================================
341341
# DÉPENDANCES (délégation à Core/deps_analyser)
Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -84,35 +84,13 @@ def load_preferences(self):
8484
# Dernier recours: fichier à la racine du cwd
8585
with open(PREFS_BASENAME, encoding="utf-8") as f:
8686
prefs = json.load(f)
87-
self.icon_path = prefs.get("icon_path", None)
88-
self.opt_onefile_state = prefs.get("opt_onefile", False)
89-
self.opt_windowed_state = prefs.get("opt_windowed", False)
90-
self.opt_noconfirm_state = prefs.get("opt_noconfirm", False)
91-
self.opt_clean_state = prefs.get("opt_clean", False)
92-
self.opt_noupx_state = prefs.get("opt_noupx", False)
93-
self.opt_main_only_state = prefs.get("opt_main_only", False)
94-
self.opt_debug_state = prefs.get("opt_debug", False)
95-
self.opt_auto_install_state = prefs.get("auto_install", True)
96-
# self.custom_args_text supprimé (widget supprimé)
97-
self.output_dir = prefs.get("output_dir", "")
98-
# Préférence de langue (conserve "System" si choisi)
87+
9988
self.language_pref = prefs.get("language_pref", prefs.get("language", "System"))
10089
# Compat: conserver self.language utilisé ailleurs
10190
self.language = self.language_pref
10291
# Thème UI
10392
self.theme = prefs.get("theme", "System")
10493
except Exception:
105-
self.icon_path = None
106-
self.opt_onefile_state = False
107-
self.opt_windowed_state = False
108-
self.opt_noconfirm_state = False
109-
self.opt_clean_state = False
110-
self.opt_noupx_state = False
111-
self.opt_main_only_state = False
112-
self.opt_debug_state = False
113-
self.opt_auto_install_state = True
114-
# self.custom_args_text supprimé (widget supprimé)
115-
self.output_dir = ""
11694
# Préférence de langue par défaut
11795
self.language_pref = "System"
11896
self.language = "System"

Ui/i18n.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ def get_current_language_sync() -> str:
459459
"""Return current language from user preferences (sync)."""
460460
try:
461461
# Absolute import to avoid relative-import issues outside Core package
462-
from Core.PreferencesManager import PREFS_FILE
462+
from Ui.PreferencesManager import PREFS_FILE
463463

464464
if os.path.isfile(PREFS_FILE):
465465
with open(PREFS_FILE, encoding="utf-8") as f:

engine_sdk/Sys_Deps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
from __future__ import annotations
1717

1818
# Pass-through to host system dependency manager
19-
from Core.sys_deps import SysDependencyManager # type: ignore[F401]
19+
from Core.SysDependencyManager import SysDependencyManager # type: ignore[F401]
2020

2121
__all__ = ["SysDependencyManager"]

tests/test_engine_tool_install_order.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ def test_ensure_tools_installed_runs_system_before_python(monkeypatch) -> None:
7575
events: list[str] = []
7676
process = DummyProcess(wait_result=True, exit_code=0)
7777

78-
import Core.sys_deps as sys_deps
78+
import Core.SysDependencyManager as SysDependencyManager
7979

80-
monkeypatch.setattr(sys_deps, "check_system_packages", lambda _packages: False)
80+
monkeypatch.setattr(SysDependencyManager, "check_system_packages", lambda _packages: False)
8181
monkeypatch.setattr(
82-
sys_deps,
82+
SysDependencyManager,
8383
"SysDependencyManager",
8484
lambda gui: DummySysDepsManager(events, process),
8585
)
@@ -101,11 +101,11 @@ def test_ensure_tools_installed_continues_python_after_system_timeout(
101101
events: list[str] = []
102102
process = DummyProcess(wait_result=False, exit_code=1)
103103

104-
import Core.sys_deps as sys_deps
104+
import Core.SysDependencyManager as SysDependencyManager
105105

106-
monkeypatch.setattr(sys_deps, "check_system_packages", lambda _packages: False)
106+
monkeypatch.setattr(SysDependencyManager, "check_system_packages", lambda _packages: False)
107107
monkeypatch.setattr(
108-
sys_deps,
108+
SysDependencyManager,
109109
"SysDependencyManager",
110110
lambda gui: DummySysDepsManager(events, process),
111111
)

tests/test_sys_deps_headless.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_install_system_packages_headless_linux_uses_noninteractive_sudo(
2222
monkeypatch,
2323
) -> None:
2424
"""Headless mode should run package install commands without Qt widgets."""
25-
import Core.sys_deps as sys_deps
25+
import Core.SysDependencyManager as SysDependencyManager
2626

2727
executed: list[list[str]] = []
2828

@@ -34,17 +34,17 @@ def __init__(self, returncode: int = 0) -> None:
3434

3535
monkeypatch.setattr("platform.system", lambda: "Linux")
3636
monkeypatch.setattr(
37-
sys_deps.shutil, "which", lambda name: "/usr/bin/apt" if name == "apt" else None
37+
SysDependencyManager.shutil, "which", lambda name: "/usr/bin/apt" if name == "apt" else None
3838
)
39-
monkeypatch.setattr(sys_deps.os, "geteuid", lambda: 1000, raising=False)
39+
monkeypatch.setattr(SysDependencyManager.os, "geteuid", lambda: 1000, raising=False)
4040

4141
def _fake_run(cmd, **_kwargs):
4242
executed.append(list(cmd))
4343
return _Result(0)
4444

45-
monkeypatch.setattr(sys_deps.subprocess, "run", _fake_run)
45+
monkeypatch.setattr(SysDependencyManager.subprocess, "run", _fake_run)
4646

47-
assert sys_deps.install_system_packages(["cloc"], gui=None) is True
47+
assert SysDependencyManager.install_system_packages(["cloc"], gui=None) is True
4848
assert executed == [
4949
["sudo", "-n", "apt-get", "-o", "Acquire::Retries=3", "update"],
5050
[
@@ -67,15 +67,15 @@ def _fake_run(cmd, **_kwargs):
6767

6868
def test_install_system_packages_headless_does_not_use_qt_manager(monkeypatch) -> None:
6969
"""Headless mode must bypass the Qt-based SysDependencyManager path."""
70-
import Core.sys_deps as sys_deps
70+
import Core.SysDependencyManager as SysDependencyManager
7171

7272
monkeypatch.setattr("platform.system", lambda: "Linux")
7373
monkeypatch.setattr(
74-
sys_deps.shutil, "which", lambda name: "/usr/bin/dnf" if name == "dnf" else None
74+
SysDependencyManager.shutil, "which", lambda name: "/usr/bin/dnf" if name == "dnf" else None
7575
)
76-
monkeypatch.setattr(sys_deps.os, "geteuid", lambda: 0, raising=False)
76+
monkeypatch.setattr(SysDependencyManager.os, "geteuid", lambda: 0, raising=False)
7777
monkeypatch.setattr(
78-
sys_deps,
78+
SysDependencyManager,
7979
"SysDependencyManager",
8080
lambda _gui: (_ for _ in ()).throw(
8181
AssertionError("Qt manager should not be used in headless mode")
@@ -88,16 +88,16 @@ def __init__(self, returncode: int = 0) -> None:
8888
self.stdout = ""
8989
self.stderr = ""
9090

91-
monkeypatch.setattr(sys_deps.subprocess, "run", lambda *_a, **_k: _Result(0))
91+
monkeypatch.setattr(SysDependencyManager.subprocess, "run", lambda *_a, **_k: _Result(0))
9292

93-
assert sys_deps.install_system_packages(["cloc"], gui=None) is True
93+
assert SysDependencyManager.install_system_packages(["cloc"], gui=None) is True
9494

9595

9696
def test_install_system_packages_headless_retries_transient_failures(
9797
monkeypatch,
9898
) -> None:
9999
"""Headless install should retry command steps before failing."""
100-
import Core.sys_deps as sys_deps
100+
import Core.SysDependencyManager as SysDependencyManager
101101

102102
attempts = {"count": 0}
103103

@@ -109,20 +109,20 @@ def __init__(self, returncode: int) -> None:
109109

110110
monkeypatch.setattr("platform.system", lambda: "Linux")
111111
monkeypatch.setattr(
112-
sys_deps.shutil,
112+
SysDependencyManager.shutil,
113113
"which",
114114
lambda name: "/usr/bin/dnf" if name == "dnf" else None,
115115
)
116-
monkeypatch.setattr(sys_deps.os, "geteuid", lambda: 0, raising=False)
117-
monkeypatch.setattr(sys_deps.time, "sleep", lambda *_a, **_k: None)
116+
monkeypatch.setattr(SysDependencyManager.os, "geteuid", lambda: 0, raising=False)
117+
monkeypatch.setattr(SysDependencyManager.time, "sleep", lambda *_a, **_k: None)
118118

119119
def _fake_run(_cmd, **_kwargs):
120120
attempts["count"] += 1
121121
if attempts["count"] == 1:
122122
return _Result(1)
123123
return _Result(0)
124124

125-
monkeypatch.setattr(sys_deps.subprocess, "run", _fake_run)
125+
monkeypatch.setattr(SysDependencyManager.subprocess, "run", _fake_run)
126126

127-
assert sys_deps.install_system_packages(["cloc"], gui=None) is True
127+
assert SysDependencyManager.install_system_packages(["cloc"], gui=None) is True
128128
assert attempts["count"] == 2

todo.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,13 @@ inclusion_patterns:
4848

4949
et aussi les pattern dinclusion ne sont plus necesaire car l'exclusion est suffisante.
5050

51-
dans Core/Configs il faut eviter la retro compatibilité et revoir
51+
dans Core/Configs il faut eviter la retro compatibilité et revoir.
5252

5353
## VenvManager [x]
5454

55-
dans venvmanager les logique comme celle de la generation de la reuirments etc ne doit normalement pas être dedans mais plutot gerer par le depsanalyser qui dispose de tout la technologie de pointe pour une fiablité . pour reduire le niveau de complexité inutile n'est rtil pas mieux que venvmanager ne gere que pip comme gestionnaiaire ?? si oui fait un plan
55+
dans venvmanager les logique comme celle de la generation de la reuirments etc ne doit normalement pas être dedans mais plutot gerer par le depsanalyser qui dispose de tout la technologie de pointe pour une fiablité . pour reduire le niveau de complexité inutile n'est rtil pas mieux que venvmanager ne gere que pip comme gestionnaiaire ?? si oui fait un plan.
56+
57+
## refactor: Séparation Core(logique métier) et Ui(interface utilisateur ou de pilotage) []
58+
59+
Core/SysDependencyManager.py doit purement contenir de la logique metier et son usage gui sera dans Ui/Gui/Dialogs/.
60+
Services/AdvancedAuth.py doit purement contenir la logique service et son usage gui sera dans Ui/Gui/Dialogs/.

0 commit comments

Comments
 (0)