phase 5: edge transforms, soleprint-ui rename, infra fixes
- pipeline edge transforms: stages can declare accepted_transforms, edges carry a transform dict, runner injects per-stage and nodes apply (e.g. invert_mask before edge detection); editable from UI via PUT /config/edge-transform - rename mpr-ui-framework -> soleprint-ui (now an external package synced via .spr from /home/mariano/wdir/spr); add @vue-flow/core and uplot to detection-app so linked package resolves them - Tiltfile guards kubectl context, k8s commands pin --context kind-mpr - kind-config: gateway on hostPort 30080 (Caddy fronts mpr.local.ar) - modelgen: pyproject.toml, .spr marker, dict default_factory support
This commit is contained in:
@@ -35,6 +35,16 @@ class StageIO:
|
||||
optional_reads: List[str] = field(default_factory=list)
|
||||
|
||||
|
||||
@dataclass
|
||||
class TransformOption:
|
||||
"""A transform the stage accepts on its incoming edges."""
|
||||
key: str
|
||||
type: str # "bool", "float", "int", "str"
|
||||
default: Any = False
|
||||
label: str = ""
|
||||
description: str = ""
|
||||
|
||||
|
||||
@dataclass
|
||||
class StageOutputHint:
|
||||
"""How to render a stage output in the compare/editor views."""
|
||||
@@ -55,6 +65,7 @@ class StageDefinition:
|
||||
io: StageIO = field(default_factory=StageIO)
|
||||
config_fields: List[StageConfigField] = field(default_factory=list)
|
||||
output_hints: List[StageOutputHint] = field(default_factory=list)
|
||||
accepted_transforms: List[TransformOption] = field(default_factory=list)
|
||||
tracks_element: Optional[str] = None
|
||||
|
||||
|
||||
@@ -129,10 +140,16 @@ class StageRef:
|
||||
|
||||
@dataclass
|
||||
class Edge:
|
||||
"""Connection between stages in the graph."""
|
||||
"""Connection between stages in the graph.
|
||||
|
||||
transform: per-edge data transformation spec. Flexible JSONB blob
|
||||
type-checked by the consuming stage. E.g. {"invert_mask": true}
|
||||
tells edge detection to invert the field segmentation mask.
|
||||
"""
|
||||
source: str
|
||||
target: str
|
||||
condition: str = ""
|
||||
transform: Dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -151,6 +168,7 @@ STAGE_VIEWS = [
|
||||
StageConfigField,
|
||||
StageIO,
|
||||
StageOutputHint,
|
||||
TransformOption,
|
||||
StageDefinition,
|
||||
FrameExtractionConfig,
|
||||
SceneFilterConfig,
|
||||
|
||||
Reference in New Issue
Block a user