From 6d3a4c38cb14bc34e5abf90ab01d1f754695f950 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 1 Aug 2026 05:08:01 -0400 Subject: [PATCH] [IMP] qemu: RAM presets up to 256G, shown with their GB equivalent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The presets stopped at 32768 MB; current virtualization hosts go well beyond that. The series now doubles up to 262144 MB (256G). The prompt is in MB while people think in GB, so each preset carries its equivalent: « [g] 65536 (64G) ». With nine of them the line no longer fits, so suggestions are laid out five per row. Disk presets keep the plain format. Co-Authored-By: Claude Opus 4.8 (1M context) --- script/todo/todo.py | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/script/todo/todo.py b/script/todo/todo.py index ac73b51..9fbfc74 100755 --- a/script/todo/todo.py +++ b/script/todo/todo.py @@ -3422,21 +3422,38 @@ class TODO: # pour ne JAMAIS entrer en conflit avec une valeur tapée directement : toute # saisie commençant par un chiffre est lue comme la valeur elle-même. _QEMU_DISK_PRESETS = ("20G", "40G", "60G", "80G", "120G", "200G") - _QEMU_RAM_PRESETS = (1024, 2048, 4096, 8192, 16384, 32768) + # Jusqu'à 256 Go : les hôtes de virtualisation récents dépassent largement + # 32 Go, et l'invite est en Mo — l'équivalent en Go est donc affiché. + _QEMU_RAM_PRESETS = ( + 1024, + 2048, + 4096, + 8192, + 16384, + 32768, + 65536, + 131072, + 262144, + ) @staticmethod - def _qemu_ask_value(label, current, presets): + def _qemu_ram_label(mb): + """« 65536 (64G) » : l'invite est en Mo, on raisonne en Go.""" + return f"{mb} ({mb // 1024}G)" if mb >= 1024 else str(mb) + + @staticmethod + def _qemu_ask_value(label, current, presets, fmt=str): """Invite avec raccourcis lettrés. Renvoie '' pour « garder ». - [a]…[f] choisissent une suggestion, un chiffre reste une valeur - littérale, vide garde la valeur actuelle. + Une lettre choisit une suggestion, un chiffre reste une valeur + littérale, vide garde la valeur actuelle. Les suggestions sont + réparties sur plusieurs lignes pour rester lisibles. """ - print( - " " - + " ".join( - f"[{chr(ord('a') + i)}] {p}" for i, p in enumerate(presets) - ) - ) + lst_item = [ + f"[{chr(ord('a') + i)}] {fmt(p)}" for i, p in enumerate(presets) + ] + for start in range(0, len(lst_item), 5): + print(" " + " ".join(lst_item[start : start + 5])) answer = input(f" {label} ({current}): ").strip() if not answer: return "" @@ -3543,6 +3560,7 @@ class TODO: t("New RAM in MB, blank = keep"), sel[i][2], self._QEMU_RAM_PRESETS, + fmt=self._qemu_ram_label, ) if rm: try: