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:
2026-04-29 05:31:08 -03:00
parent 55e83e4203
commit 020f3540d3
35 changed files with 414 additions and 1747 deletions

7
modelgen/.spr Normal file
View File

@@ -0,0 +1,7 @@
name=soleprint-modelgen
version=0.2.0
type=pip
sha=0822761
mode=published
updated=2026-04-12T00:22:10Z
source=/home/mariano/wdir/spr/soleprint/station/tools/modelgen

View File

@@ -328,7 +328,12 @@ class PydanticGenerator(BaseGenerator):
if isinstance(default, Enum):
return f" = {default.__class__.__name__}.{default.name}"
if callable(default):
return " = Field(default_factory=list)" if "list" in str(default) else ""
default_str = str(default)
if "list" in default_str:
return " = Field(default_factory=list)"
if "dict" in default_str:
return " = Field(default_factory=dict)"
return ""
return f" = {default!r}"
def _generate_from_config(self, config) -> str:

16
modelgen/pyproject.toml Normal file
View File

@@ -0,0 +1,16 @@
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[project]
name = "soleprint-modelgen"
version = "0.2.0"
description = "Multi-source, multi-target model code generator"
requires-python = ">=3.10"
dependencies = []
[project.scripts]
modelgen = "modelgen.__main__:main"
[tool.setuptools.packages.find]
include = ["modelgen*"]