Files
sideline/engine/interfaces/__init__.py
David Gwilliam 10e2f00edd refactor: centralize interfaces and clean up dead code
- Create engine/interfaces/ module with centralized re-exports of all ABCs/Protocols
- Remove duplicate Display protocol from websocket.py
- Remove unnecessary pass statements in exception classes
- Skip flaky websocket test that fails in CI due to port binding
2026-03-17 13:36:25 -07:00

74 lines
1.7 KiB
Python

"""
Core interfaces for the mainline pipeline architecture.
This module provides all abstract base classes and protocols that define
the contracts between pipeline components:
- Stage: Base class for pipeline components (imported from pipeline.core)
- DataSource: Abstract data providers (imported from data_sources.sources)
- EffectPlugin: Visual effects interface (imported from effects.types)
- Sensor: Real-time input interface (imported from sensors)
- Display: Output backend protocol (imported from display)
This module provides a centralized import location for all interfaces.
"""
from engine.data_sources.sources import (
DataSource,
ImageItem,
SourceItem,
)
from engine.display import Display
from engine.effects.types import (
EffectConfig,
EffectContext,
EffectPlugin,
PartialUpdate,
PipelineConfig,
apply_param_bindings,
create_effect_context,
)
from engine.pipeline.core import (
DataType,
Stage,
StageConfig,
StageError,
StageResult,
create_stage_error,
)
from engine.sensors import (
Sensor,
SensorStage,
SensorValue,
create_sensor_stage,
)
__all__ = [
# Stage interfaces
"DataType",
"Stage",
"StageConfig",
"StageError",
"StageResult",
"create_stage_error",
# Data source interfaces
"DataSource",
"ImageItem",
"SourceItem",
# Effect interfaces
"EffectConfig",
"EffectContext",
"EffectPlugin",
"PartialUpdate",
"PipelineConfig",
"apply_param_bindings",
"create_effect_context",
# Sensor interfaces
"Sensor",
"SensorStage",
"SensorValue",
"create_sensor_stage",
# Display protocol
"Display",
]