fix: Update imports to use engine.pipeline instead of engine.pipeline.core

The old engine/pipeline/core.py file was removed as part of the Sideline/Mainline split.
All imports that referenced engine.pipeline.core have been updated to use engine.pipeline
which re-exports from sideline.pipeline.core.

This ensures consistency and avoids duplicate DataType enum instances.
This commit is contained in:
2026-03-23 20:45:40 -07:00
parent 98a5862c74
commit fc7f58685a
19 changed files with 66 additions and 373 deletions

View File

@@ -15,7 +15,7 @@ from engine.pipeline import (
create_default_pipeline,
discover_stages,
)
from engine.pipeline.core import DataType, StageError
from engine.pipeline import DataType, StageError
class TestStageRegistry:
@@ -118,7 +118,7 @@ class TestPipeline:
def test_build_resolves_dependencies(self):
"""Pipeline.build resolves execution order."""
from engine.pipeline.core import DataType
from engine.pipeline import DataType
pipeline = Pipeline()
mock_source = MagicMock(spec=Stage)
@@ -153,7 +153,7 @@ class TestPipeline:
def test_execute_runs_stages(self):
"""Pipeline.execute runs all stages in order."""
from engine.pipeline.core import DataType
from engine.pipeline import DataType
pipeline = Pipeline()
@@ -283,7 +283,7 @@ class TestCapabilityBasedDependencies:
def test_capability_wildcard_resolution(self):
"""Pipeline resolves dependencies using wildcard capabilities."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class SourceStage(Stage):
name = "headlines"
@@ -329,7 +329,7 @@ class TestCapabilityBasedDependencies:
def test_missing_capability_raises_error(self):
"""Pipeline raises error when capability is missing."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage, StageError
from engine.pipeline import Stage, StageError
class RenderStage(Stage):
name = "render"
@@ -359,7 +359,7 @@ class TestCapabilityBasedDependencies:
def test_multiple_stages_same_capability(self):
"""Pipeline uses first registered stage for capability."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class SourceA(Stage):
name = "headlines"
@@ -458,8 +458,15 @@ class TestPipelineContext:
"""PipelineContext resolves lazy services."""
ctx = PipelineContext()
# Register a lazy service resolver
from unittest.mock import MagicMock
mock_config = MagicMock()
ctx.register_service("config", lambda: mock_config)
config = ctx.get("config")
assert config is not None
assert config == mock_config
def test_has_capability(self):
"""PipelineContext.has_capability checks for services."""
@@ -608,7 +615,7 @@ class TestStageAdapters:
"""DisplayStage.init initializes display."""
from engine.display.backends.null import NullDisplay
from engine.pipeline.adapters import DisplayStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
from engine.pipeline.params import PipelineParams
display = NullDisplay()
@@ -623,7 +630,7 @@ class TestStageAdapters:
"""DisplayStage.process forwards to display."""
from engine.display.backends.null import NullDisplay
from engine.pipeline.adapters import DisplayStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
from engine.pipeline.params import PipelineParams
display = NullDisplay()
@@ -640,7 +647,7 @@ class TestStageAdapters:
"""CameraStage applies camera transform."""
from engine.camera import Camera, CameraMode
from engine.pipeline.adapters import CameraStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
camera = Camera(mode=CameraMode.FEED)
stage = CameraStage(camera, name="vertical")
@@ -658,7 +665,7 @@ class TestStageAdapters:
"""
from engine.camera import Camera, CameraMode
from engine.pipeline.adapters import CameraStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
from engine.pipeline.params import PipelineParams
camera = Camera(mode=CameraMode.FEED)
@@ -696,7 +703,7 @@ class TestDataSourceStage:
from engine.data_sources.sources import HeadlinesDataSource
from engine.pipeline.adapters import DataSourceStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
mock_items = [
("Test Headline 1", "TestSource", "12:00"),
@@ -739,7 +746,7 @@ class TestEffectPluginStage:
"""EffectPluginStage applies sensor param bindings."""
from engine.effects.types import EffectConfig, EffectPlugin
from engine.pipeline.adapters import EffectPluginStage
from engine.pipeline.core import PipelineContext
from engine.pipeline import PipelineContext
from engine.pipeline.params import PipelineParams
class SensorDrivenEffect(EffectPlugin):
@@ -772,7 +779,7 @@ class TestFullPipeline:
def test_pipeline_circular_dependency_detection(self):
"""Pipeline detects circular dependencies."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class StageA(Stage):
name = "a"
@@ -819,7 +826,7 @@ class TestPipelineMetrics:
def test_metrics_collected(self):
"""Pipeline collects metrics when enabled."""
from engine.pipeline.controller import Pipeline, PipelineConfig
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class DummyStage(Stage):
name = "dummy"
@@ -842,7 +849,7 @@ class TestPipelineMetrics:
def test_metrics_disabled(self):
"""Pipeline skips metrics when disabled."""
from engine.pipeline.controller import Pipeline, PipelineConfig
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class DummyStage(Stage):
name = "dummy"
@@ -864,7 +871,7 @@ class TestPipelineMetrics:
def test_reset_metrics(self):
"""Pipeline.reset_metrics clears collected metrics."""
from engine.pipeline.controller import Pipeline, PipelineConfig
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class DummyStage(Stage):
name = "dummy"
@@ -894,7 +901,7 @@ class TestOverlayStages:
def test_stage_is_overlay_property(self):
"""Stage has is_overlay property defaulting to False."""
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class TestStage(Stage):
name = "test"
@@ -908,7 +915,7 @@ class TestOverlayStages:
def test_stage_render_order_property(self):
"""Stage has render_order property defaulting to 0."""
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class TestStage(Stage):
name = "test"
@@ -922,7 +929,7 @@ class TestOverlayStages:
def test_stage_stage_type_property(self):
"""Stage has stage_type property defaulting to category."""
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class TestStage(Stage):
name = "test"
@@ -937,7 +944,7 @@ class TestOverlayStages:
def test_pipeline_get_overlay_stages(self):
"""Pipeline.get_overlay_stages returns overlay stages sorted by render_order."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class OverlayStageA(Stage):
name = "overlay_a"
@@ -991,7 +998,7 @@ class TestOverlayStages:
def test_pipeline_executes_overlays_after_regular(self):
"""Pipeline executes overlays after regular stages."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
call_order = []
@@ -1071,7 +1078,7 @@ class TestOverlayStages:
def test_pipeline_get_stage_type(self):
"""Pipeline.get_stage_type returns stage_type for a stage."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class TestStage(Stage):
name = "test"
@@ -1093,7 +1100,7 @@ class TestOverlayStages:
def test_pipeline_get_render_order(self):
"""Pipeline.get_render_order returns render_order for a stage."""
from engine.pipeline.controller import Pipeline
from engine.pipeline.core import Stage
from engine.pipeline import Stage
class TestStage(Stage):
name = "test"
@@ -1341,7 +1348,7 @@ class TestPipelineMutation:
dependencies: set | None = None,
):
"""Helper to create a mock stage."""
from engine.pipeline.core import DataType
from engine.pipeline import DataType
mock = MagicMock(spec=Stage)
mock.name = name
@@ -1693,7 +1700,7 @@ class TestPipelineMutation:
def test_mutation_preserves_execution_for_remaining_stages(self):
"""Removing a stage doesn't break execution of remaining stages."""
from engine.pipeline.core import DataType
from engine.pipeline import DataType
call_log = []