(values: list[str] | None)
| 285 | |
| 286 | |
| 287 | def parse_bundle_roots(values: list[str] | None) -> dict[str, Path]: |
| 288 | roots: dict[str, Path] = {} |
| 289 | for raw in values or []: |
| 290 | if "=" not in raw: |
| 291 | raise SystemExit(f"--bundle-root must be formatted as bundle=/path, got: {raw}") |
| 292 | name, value = raw.split("=", 1) |
| 293 | name = name.strip() |
| 294 | if not name: |
| 295 | raise SystemExit(f"--bundle-root is missing bundle name: {raw}") |
| 296 | roots[name] = Path(value).expanduser().resolve() |
| 297 | return roots |
| 298 | |
| 299 | |
| 300 | def resource_requirements_for_pipeline( |