UI-Adapter-Spezifikation¶
Dieses Dokument beschreibt die UI-Adapter-Spezifikation der Messlaufzeit in mpylab.env.
Ziel ist, dass Terminal- (TUI) und GUI-Implementierungen dieselbe Messlogik nutzen können.
Primäre Methoden¶
ask(msg, buttons, level, data) -> intZeigt eine Nutzermeldung an und gibt den Index des gewählten Buttons zurück.emit_log(block, *args) -> NoneSendet Log-Ereignisse an konfigurierte Log-Senken.poll_key() -> int | NoneNicht-blockierendes Key-Polling. Liefert ASCII-Code oderNone.check_interrupt() -> int | NoneRückwärtskompatibler Alias, der aufpoll_key()delegiert.pre_user_event() / post_user_event()Hooks um blockierende Benutzerinteraktionen.run_interactive(obj, banner)Startet eine interaktive Sitzung, falls unterstützt.
Integration in Measure¶
Measure._setup_ui_adapter() bindet Legacy-Attribute an den Adapter:
self.messenger->ui.askself.UserInterruptTester->ui.check_interruptself.PollKey->ui.poll_keyself.PreUserEvent->ui.pre_user_eventself.PostUserEvent->ui.post_user_event
Zur Kompatibilität werden beide Schreibweisen für den Interrupt-Setter unterstützt:
set_user_interrupt_tester(...)(bevorzugt)set_user_interrupt_Tester(...)(Legacy-Alias)
Hinweis zur Migration¶
Interner Code sollte ausschließlich set_user_interrupt_tester(...) verwenden.
Der Legacy-Alias set_user_interrupt_Tester(...) bleibt für externe Skripte und
bestehende Notebooks zur Wahrung der Rückwärtskompatibilität verfügbar.
Nutzung im Kernel¶
Messkerne verwenden poll_key() als expliziten Pfad für Tastatureingaben.
Wenn ein direkter Handler nicht aufrufbar ist, kann resolve_poll_key(...) als
Fallback self.PollKey aus den lokalen Variablen des Aufrufers auflösen.