Skip to content

Commit 85db5fb

Browse files
committed
Clarify unwrap README section structure
Assisted-By: devx/b49d7847-4e8a-45eb-8304-dacd6e78458e
1 parent 167d395 commit 85db5fb

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ uv run tangle sdk pipeline-runs export RUN_ID --output pipeline.yaml
293293

294294
`pipelines validate` checks local graph shape, the packaged Tangle pipeline JSON schema, and component input wiring when component specs are present. It does not hydrate refs; validate a hydrated file when you need fully resolved component-input checks for remote refs.
295295

296-
#### Python-authored `@task(unwrap=...)` dict inputs
296+
#### Python pipeline authoring: unwrapped dict task inputs
297297

298298
Python-authored pipelines can mark one or more `dict[str, T]` task parameters for unwrapping:
299299

@@ -332,6 +332,8 @@ def greeting_pipeline() -> Out[str]:
332332

333333
Use `unwrap=["items", "metadata"]` to unwrap multiple dict parameters. The caller owns the key names; keys may contain letters, numbers, `_`, and `-`, and become `param__<key>` component inputs. Empty dicts are rejected because they do not define a component interface. If a generated name would collide with a fixed parameter or another generated name, compile fails before writing artifacts. Equivalent key sets are canonicalized for schema hashing, so two call sites with the same keys in different insertion orders dedupe to the same component fragment.
334334

335+
#### Pipeline run submission and validation
336+
335337
`submit` hydrates refs by default and builds an API submit payload with `root_task.componentRef.spec`. Use `--no-hydrate` to submit the local YAML structure as-is. Use `--dry-run` to print the payload without creating a run.
336338

337339
Before creating a run—or printing a `--dry-run` payload—`submit` runs the same authoring validation as `tangle sdk pipelines validate` on the hydrated/resolved pipeline spec (or on the as-is spec when `--no-hydrate` is used). Invalid specs fail locally with `Pipeline validation failed` errors before the run-submission API call. For example, the pipeline root must be a graph (`implementation.graph`), so a bare `implementation.container` root is rejected before the run is submitted; missing required component inputs and invalid task output references are rejected when component specs are available.

0 commit comments

Comments
 (0)