From 83c0d705c189d8610a2cd414029845e517cb24a1 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Thu, 3 Sep 2026 02:12:40 -0400 Subject: [PATCH] =?UTF-8?q?[FIX]=20qemu=20stats=20:=20un=20=C2=AB=20dateti?= =?UTF-8?q?me=20=C2=BB=20de=20trop=20faisait=20tomber=20le=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le module importe la CLASSE datetime, pas le module : « datetime.datetime » n'existe donc pas, et l'écran des statistiques sortait sur une AttributeError qui emportait TODO entier. La garde couvre aussi TypeError : un horodatage absent vaut None dans un résumé sans aucune installation, et une statistique ne doit pas décider de la survie du menu. Vérifié : un horodatage valide rend sa date, None et une valeur hors bornes rendent « ? » sans lever. --- EN --- The module imports the datetime CLASS, not the module: « datetime.datetime » therefore does not exist, and the statistics screen exited on an AttributeError that took the whole of TODO with it. The guard also covers TypeError: an absent timestamp is None in a summary with no install at all, and a statistic must not decide whether the menu survives. Checked: a valid timestamp renders its date, None and an out-of-range value render « ? » without raising. Assisted-by: Claude Opus 5 --- script/todo/qemu_menu.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/script/todo/qemu_menu.py b/script/todo/qemu_menu.py index 80d4534..9df78eb 100644 --- a/script/todo/qemu_menu.py +++ b/script/todo/qemu_menu.py @@ -513,8 +513,11 @@ class QemuMenuMixin: def _qemu_stamp(ts): """Horodatage court « 2026-08-01 ».""" try: - return datetime.datetime.fromtimestamp(ts).strftime("%Y-%m-%d") - except (OSError, OverflowError, ValueError): + return datetime.fromtimestamp(ts).strftime("%Y-%m-%d") + except (OSError, OverflowError, TypeError, ValueError): + # TypeError : un horodatage absent vaut None dans un résumé sans + # aucune installation, et une statistique ne doit pas faire + # tomber le menu. return "?" def _qemu_stats_vms(self, mon):