base types for abstracting output
This commit is contained in:
parent
2c18655fb7
commit
3af8780f51
|
|
@ -0,0 +1,8 @@
|
||||||
|
from typing import Protocol
|
||||||
|
from .models import MarkdownPanel, StageHeader, TaskHeader, StatusMessage
|
||||||
|
|
||||||
|
class OutputRenderer(Protocol):
|
||||||
|
def render_panel(self, panel: MarkdownPanel) -> None: ...
|
||||||
|
def render_stage(self, header: StageHeader) -> None: ...
|
||||||
|
def render_task(self, header: TaskHeader) -> None: ...
|
||||||
|
def render_status(self, message: StatusMessage) -> None: ...
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class MarkdownPanel:
|
||||||
|
content: str
|
||||||
|
title: Optional[str] = None
|
||||||
|
icon: Optional[str] = None
|
||||||
|
border_style: Optional[str] = None
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class StageHeader:
|
||||||
|
text: str
|
||||||
|
icon: Optional[str] = None
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TaskHeader:
|
||||||
|
text: str
|
||||||
|
icon: Optional[str] = None
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class StatusMessage:
|
||||||
|
text: str
|
||||||
|
style: Optional[str] = None
|
||||||
Loading…
Reference in New Issue