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