Skip to main content

A tiny, typed, sequential pipeline engine for Python

Project description

lilpipe

A tiny, typed, sequential pipeline engine for Python.

PyPI Python Version CI Coverage License Binder

lilpipe is a lightweight, Pydantic-powered library for building and running sequential workflows in Python. It’s ideal for data processing, scientific workflows, and any task that benefits from a clear, linear sequence of steps. With built-in caching and simple control signals, lilpipe is small, typed, and practical.

Features

  • Sequential workflows — run steps in a fixed order.
  • Type-safe context — Pydantic-based PipelineContext.
  • Smart cachingfingerprint_keys to skip unchanged work.
  • Flow controlctx.abort_pass() and ctx.abort_pipeline().
  • Composable steps — nest via Step(name, children=[...]).
  • Tiny surface area — minimal API and dependencies.

Why not a DAG?

lilpipe is intentionally not a DAG/orchestrator. It’s a tiny, in-process, sequential runner for code you’d otherwise write as a script.

Use lilpipe when…

  • The whole workflow runs top-to-bottom in one process and finishes in seconds/minutes.
  • You don’t want extra infra: no server, no scheduler UI, no metadata DB.
  • You want a typed, validated shared state (Pydantic PipelineContext) flowing step-to-step with helpful errors.
  • You want incremental reruns: fingerprint caching to skip unchanged steps across runs.
  • You need simple retry/abort semantics without standing up an orchestrator.
  • You like small, testable units: steps you can unit-test and compose (Step("name", children=[...])).

Examples:

  • Data science: CSV → clean → feature engineer → fit/evaluate → export plots.
  • Lab/assay: load plate → calibrate → QC/validate → generate PDF report.
  • Data eng script: pull S3 JSON → normalize → write Parquet → send Slack notification.
  • Dev tooling: codegen → format → validate → publish artifact.

Installation

pip install lilpipe

See pyproject.toml for supported Python versions.

Example Notebook

Run the full demo notebook live on Binder: Binder

(If you’d rather just view it, the raw notebook is at examples/example.ipynb in the repo.)

License

Licensed under the Apache 2.0 License.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lilpipe-0.1.6.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lilpipe-0.1.6-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file lilpipe-0.1.6.tar.gz.

File metadata

  • Download URL: lilpipe-0.1.6.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lilpipe-0.1.6.tar.gz
Algorithm Hash digest
SHA256 eb7dac7af800a09baa557c0bc00c29c575d11823a1b7e1876188ccb5be8e92d5
MD5 75e9986e61285fb4afbcd19681f41e66
BLAKE2b-256 76c08e5043236fdfd993ba40f6df42a90ae8ac5428762f2f85a530056aa3f289

See more details on using hashes here.

File details

Details for the file lilpipe-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: lilpipe-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lilpipe-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 853645b2238181b81c9f689b8f26cdc74ae729d940b4a8feb252cebebfc5a87b
MD5 165ede84267edf96a7646340e3584d2a
BLAKE2b-256 153e4e8d33611ed4aef5e12602edd664ccf19489301ff0e4d8b7d1cf2d38eae7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page