WIP #35

Open
david wants to merge 135 commits from klubhaus/sideline:feature/capability-based-deps into main
3 changed files with 10 additions and 4 deletions
Showing only changes of commit d54147cfb4 - Show all commits

View File

@@ -111,7 +111,7 @@ class DisplayStage(Stage):
@property
def dependencies(self) -> set[str]:
return set()
return {"render.output"} # Display needs rendered content
def init(self, ctx: PipelineContext) -> bool:
w = ctx.params.viewport_width if ctx.params else 80

View File

@@ -520,7 +520,10 @@ def create_pipeline_from_params(params: PipelineParams) -> Pipeline:
def create_default_pipeline() -> Pipeline:
"""Create a default pipeline with all standard components."""
from engine.data_sources.sources import HeadlinesDataSource
from engine.pipeline.adapters import DataSourceStage
from engine.pipeline.adapters import (
DataSourceStage,
SourceItemsToBufferStage,
)
pipeline = Pipeline()
@@ -528,6 +531,9 @@ def create_default_pipeline() -> Pipeline:
source = HeadlinesDataSource()
pipeline.add_stage("source", DataSourceStage(source, name="headlines"))
# Add render stage to convert items to text buffer
pipeline.add_stage("render", SourceItemsToBufferStage(name="items-to-buffer"))
# Add display stage
display = StageRegistry.create("display", "terminal")
if display:

View File

@@ -97,10 +97,10 @@ class TestDisplayStage:
assert "display.output" in stage.capabilities
def test_display_stage_dependencies(self):
"""DisplayStage has no dependencies."""
"""DisplayStage depends on render.output."""
mock_display = MagicMock()
stage = DisplayStage(mock_display, name="terminal")
assert stage.dependencies == set()
assert "render.output" in stage.dependencies
def test_display_stage_init(self):
"""DisplayStage.init() calls display.init() with dimensions."""