Skip to content

Commit a759485

Browse files
committed
Utiliser les niveaux de log dans le gestionnaire de venv
1 parent 8a9c5bb commit a759485

1 file changed

Lines changed: 48 additions & 2 deletions

File tree

Core/Venv_Manager/Manager.py

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from PySide6.QtWidgets import QApplication, QFileDialog, QMessageBox
1212

1313
from ..WidgetsCreator import ProgressDialog
14+
from ..i18n import log_i18n_level, log_with_level
1415

1516

1617
class VenvManager:
@@ -407,9 +408,54 @@ def _safe_decode(self, data: bytes, error_handling: str = "replace") -> str:
407408
except Exception:
408409
return "[Decode Error]"
409410

410-
def _safe_log(self, text: str, text_en: str | None = None):
411+
def _infer_log_level(self, text: str | None) -> str:
411412
try:
412-
# If both FR/EN provided and parent has translator, resolve first.
413+
s = str(text or "").strip()
414+
except Exception:
415+
s = ""
416+
if not s:
417+
return "info"
418+
emoji_levels = {
419+
"❌": "error",
420+
"⚠️": "warning",
421+
"✅": "success",
422+
"ℹ️": "info",
423+
"📝": "state",
424+
"📋": "state",
425+
"🔍": "state",
426+
"🔧": "state",
427+
"🔨": "state",
428+
"➡️": "state",
429+
"📦": "state",
430+
"🗑️": "state",
431+
}
432+
for emoji, lvl in emoji_levels.items():
433+
if s.startswith(emoji):
434+
return lvl
435+
low = s.lower()
436+
if any(tok in low for tok in ("error", "erreur", "échec", "echec", "failed", "invalid", "refus")):
437+
return "error"
438+
if any(tok in low for tok in ("warning", "avert", "warn", "attention")):
439+
return "warning"
440+
if any(tok in low for tok in ("success", "succès", "reussi", "réussi")):
441+
return "success"
442+
if any(tok in low for tok in ("state", "status", "état", "etat")):
443+
return "state"
444+
return "info"
445+
446+
def _safe_log(self, text: str, text_en: str | None = None, level: str | None = None):
447+
gui = getattr(self, "parent", None) or self
448+
lvl = level or self._infer_log_level(text_en if text_en is not None else text)
449+
try:
450+
if text_en is not None:
451+
log_i18n_level(gui, lvl, text, text_en)
452+
else:
453+
log_with_level(gui, lvl, text)
454+
return
455+
except Exception:
456+
pass
457+
try:
458+
# Fallback: If both FR/EN provided and parent has translator, resolve first.
413459
if text_en is not None and hasattr(self.parent, "tr"):
414460
try:
415461
text = self.parent.tr(text, text_en)

0 commit comments

Comments
 (0)