# Pipeline (/pipeline-sdk/reference/pipeline)



{/* Generated by docs-site/scripts/generate-dsl-docs.ts — do not edit. */}

## `dump_registry_json` [#dump_registry_json]

Emit the schema\_version=1 envelope JSON.

Defaults mirror `pipeline_to_json`:
`pipeline_org` \<- `env["HARMONT_PIPELINE_ORG"]` or `"default"`
`now`          \<- `int(time.time())`
`base_path`    \<- `Path.cwd()` (resolves `on_change` cache paths)
`env`          \<- `os.environ`
Per-pipeline slug is read from each registration.

The target memoization cache is cleared at the start of each render
so per-pipeline target invocations dedup within a single render but
don't leak across renders. The named-target registry is left intact
so pipeline fixture-style params can resolve their dependencies.

```python
dump_registry_json(*, pipeline_org=None, now=None, base_path=None, env=None) -> str
```

| Parameter      | Type                        | Default | Description |
| -------------- | --------------------------- | ------- | ----------- |
| `pipeline_org` | `str \| None`               | `None`  | —           |
| `now`          | `int \| None`               | `None`  | —           |
| `base_path`    | `Path \| None`              | `None`  | —           |
| `env`          | `Mapping[str, str] \| None` | `None`  | —           |

**Returns** `str`

## `pipeline` [#pipeline]

Build a v0 IR dict or register a pipeline function.

This function is polymorphic based on the type of its positional arguments.

Factory form — every positional is a `Step`:

pipeline(\*leaves, env=None, default\_image=None) -> dict

Decorator form — no positionals or a string slug:

@pipeline(slug=None, \*, name=None, triggers=(), allow\_manual=True,
env=None, default\_image=None)
def my\_pipeline() -> Step: ...

The decorator registers the wrapped function in the module-level
pipeline registry (HAR-9). The discriminant is the type of the
positional arguments: any non-`Step` positional (including a string
slug, or no positional at all) routes to the decorator path.

```python
pipeline(*args, **kwargs) -> Any
```

| Parameter | Type  | Default | Description |
| --------- | ----- | ------- | ----------- |
| `args`    | `Any` | `()`    | —           |
| `kwargs`  | `Any` | `{}`    | —           |

**Returns** `Any` — A v0 IR `dict` in factory form, or a decorator in decorator form.

## `pipeline_to_json` [#pipeline_to_json]

Convenience re-export so callers can do

`harmont.pipeline_to_json(pipeline(...))` without importing
`json_emit` directly. See `json_emit.pipeline_to_json` for kwargs.

```python
pipeline_to_json(p, **kw) -> str
```

| Parameter | Type             | Default    | Description |
| --------- | ---------------- | ---------- | ----------- |
| `p`       | `dict[str, Any]` | *required* | —           |
| `kw`      | `Any`            | `{}`       | —           |

**Returns** `str`
