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
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:
@@ -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",
|
||||
]
|
||||
|
||||
@@ -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__ = [
|
||||
|
||||
@@ -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",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user