lilpipe
A tiny, typed, sequential pipeline engine for Python.
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 caching —
fingerprint_keysto skip unchanged work. - Flow control —
ctx.abort_pass()andctx.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.tomlfor supported Python versions.
Example Notebook
Run the full demo notebook live on 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
Metadata
Release files for lilpipe 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lilpipe-0.1.6.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lilpipe-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.2 kB
Release files / lilpipe-0.1.6.tar.gz
| Download URL | lilpipe-0.1.6.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb7dac7af800a09baa557c0bc00c29c575d11823a1b7e1876188ccb5be8e92d5
|
|
BLAKE2b-256 checksum How to use checksums |
76c08e5043236fdfd993ba40f6df42a90ae8ac5428762f2f85a530056aa3f289
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / lilpipe-0.1.6-py3-none-any.whl
| Download URL | lilpipe-0.1.6-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
853645b2238181b81c9f689b8f26cdc74ae729d940b4a8feb252cebebfc5a87b
|
|
BLAKE2b-256 checksum How to use checksums |
153e4e8d33611ed4aef5e12602edd664ccf19489301ff0e4d8b7d1cf2d38eae7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|