style(tui): rebase on master, add UnknownElementType handling, fix lint
CI / push-validation (pull_request) Successful in 39s
CI / helm (pull_request) Successful in 46s
CI / lint (pull_request) Failing after 1m8s
CI / build (pull_request) Successful in 1m15s
CI / typecheck (pull_request) Successful in 1m56s
CI / quality (pull_request) Successful in 1m55s
CI / security (pull_request) Successful in 2m0s
CI / integration_tests (pull_request) Successful in 4m19s
CI / unit_tests (pull_request) Failing after 5m5s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 3s

This commit is contained in:
2026-05-16 05:03:05 +00:00
committed by Forgejo
parent ec2c4f37fe
commit 7931e95de7
3 changed files with 28 additions and 2 deletions
+23
View File
@@ -86,7 +86,30 @@ class TuiWidgetEvent:
)
# ---------------------------------------------------------------------------
# UnknownElementType exception
# ---------------------------------------------------------------------------
class UnknownElementType(ValueError):
"""Raised when an element type is not recognised by the TUI renderer.
This exception is raised instead of falling back to ``str(element)``
in :func:`render_element_for_tui` so that callers get a meaningful
diagnostic rather than silently rendering garbage into the TUI output.
"""
__slots__ = ("element",)
def __init__(self, element: object) -> None:
super().__init__(
f"Unknown element type {type(element).__name__!r} value={element!r}"
)
self.element = element
__all__ = [
"TuiWidgetEvent",
"TuiWidgetEventType",
"UnknownElementType",
]
+3 -2
View File
@@ -18,9 +18,10 @@ from cleveragents.cli.output.handles._models import (
StatusMessage,
Table,
TextBlock,
TreeNode,
Tree,
TreeNode,
)
from cleveragents.tui._tui_events import UnknownElementType
# ---------------------------------------------------------------------------
# Rendering helpers
@@ -196,7 +197,7 @@ def render_element_for_tui(element: ElementSnapshot) -> str:
return _render_action_hint(element)
if isinstance(element, TextBlock):
return _render_text(element)
return str(element) # pragma: no cover
raise UnknownElementType(element) # pragma: no cover
__all__ = [
+2
View File
@@ -41,6 +41,7 @@ from typing import TYPE_CHECKING
from cleveragents.tui._tui_events import (
TuiWidgetEvent,
TuiWidgetEventType,
UnknownElementType,
)
from cleveragents.tui._tui_renderers import render_element_for_tui
@@ -61,6 +62,7 @@ __all__ = [
"TuiMaterializer",
"TuiWidgetEvent",
"TuiWidgetEventType",
"UnknownElementType",
"render_element_for_tui",
]