Skip to content

Consolidate DatapipeApp: drop Pipeline, move build_compute/run_steps into the class - #432

Closed
elephantum wants to merge 1 commit into
masterfrom
push-ouxoppqslwyr
Closed

elephantum wants to merge 1 commit into
masterfrom
push-ouxoppqslwyr

Conversation

@elephantum

Copy link
Copy Markdown
Contributor

Pipeline was a one-field wrapper around Sequence[PipelineStep] with no behavior; build_compute/run_steps/run_steps_changelist/run_pipeline/ run_changelist were free functions in datapipe.compute that every real caller (CLI, datapipe-app, examples) reached by manually unpacking an already-in-scope DatapipeApp instance.

  • DatapipeApp.init now takes pipeline: Sequence[PipelineStep] directly and builds self.steps inline (old build_compute body).
  • DatapipeApp.run()/run_changelist() contain the real execution loops (old run_steps/run_steps_changelist bodies), defaulting to self.ds/self.steps.
  • Pipeline, and the five free functions, are removed from datapipe.compute.
  • datapipe-app's make_app() now takes the DatapipeApp instance instead of unpacked ds/catalog/pipeline/steps, avoiding a rebuild per request.
  • Updated every call site across datapipe-core, datapipe-cvat, datapipe-label-studio, datapipe-ml, datapipe-app, and examples/*.

See design-docs/2026-08-consolidated-app.md for the full design writeup.

…into the class

`Pipeline` was a one-field wrapper around `Sequence[PipelineStep]` with no
behavior; `build_compute`/`run_steps`/`run_steps_changelist`/`run_pipeline`/
`run_changelist` were free functions in datapipe.compute that every real
caller (CLI, datapipe-app, examples) reached by manually unpacking an
already-in-scope DatapipeApp instance.

- DatapipeApp.__init__ now takes `pipeline: Sequence[PipelineStep]` directly
  and builds `self.steps` inline (old build_compute body).
- DatapipeApp.run()/run_changelist() contain the real execution loops (old
  run_steps/run_steps_changelist bodies), defaulting to self.ds/self.steps.
- Pipeline, and the five free functions, are removed from datapipe.compute.
- datapipe-app's make_app() now takes the DatapipeApp instance instead of
  unpacked ds/catalog/pipeline/steps, avoiding a rebuild per request.
- Updated every call site across datapipe-core, datapipe-cvat,
  datapipe-label-studio, datapipe-ml, datapipe-app, and examples/*.

See design-docs/2026-08-consolidated-app.md for the full design writeup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@elephantum elephantum closed this Sep 19, 2026
@elephantum
elephantum deleted the push-ouxoppqslwyr branch September 19, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant