Files
CachyOS-updater/lib/classifier.py

23 lines
744 B
Python

import re
from config import PACKAGES_RESTART_REQUIRED, PACKAGES_SERVICE_RESTART, PACKAGES_RESTART_PATTERNS
def needs_restart(name: str) -> bool:
if name in PACKAGES_RESTART_REQUIRED:
return True
if name in PACKAGES_SERVICE_RESTART:
return True
return any(re.match(p, name) for p in PACKAGES_RESTART_PATTERNS)
def classify(packages) -> tuple[list, list]:
"""Retourne (sûrs, reportés).
sûrs : installables immédiatement, sans aucun redémarrage
reportés: nécessitent un redémarrage service ou système → installation à l'extinction
"""
safe, deferred = [], []
for pkg in packages:
(deferred if needs_restart(pkg.name) else safe).append(pkg)
return safe, deferred