Skip to main content

Pipeline registry, notebook lifecycle, and flow management for research repositories

Project description

pipeio

Agent-facing authoring and discovery layer for computational pipelines in research repositories.

Part of the projio ecosystem.

What pipeio does

pipeio makes pipeline knowledge queryable and actionable for AI agents. It does not compete with execution engines (Snakemake), provenance systems (DataLad), app lifecycle managers (snakebids), or path resolvers (snakebids bids()).

Each flow is a self-contained snakebids app producing one derivative directory. The pipe field is a category tag grouping related flows. Mods are logical modules (rule groups) within a flow.

Core features

  • Registry & discovery — scan, load, validate, and query the flow/mod hierarchy
  • AI-safe authoringrule_insert, config_patch, mod_create with validation
  • Contract semantics — declarative I/O validation and cross-flow wiring
  • Flow config — declarative output registry (data contracts) in config.yml
  • Notebook lifecycle — pair, sync, execute, and publish Jupytext notebooks
  • Scaffolding — create new flows and mods from templates
  • Documentation — collect, nav generation, modkey bibliography

Install

pip install pipeio                # core
pip install pipeio[notebook]      # + jupytext/nbconvert
pip install pipeio[bids]          # + snakebids adapter

CLI

pipeio init                       # scaffold .pipeio/ in the current project
pipeio flow list [--pipe PIPE]    # list all flows
pipeio flow new <pipe> <flow>     # scaffold a new flow
pipeio registry scan              # discover flows from filesystem
pipeio registry validate          # validate registry consistency

Python API

from pipeio import FlowConfig, PipelineContext

cfg = FlowConfig.from_yaml(Path("code/pipelines/preprocess/ieeg/config.yml"))
ctx = PipelineContext.from_config(cfg, root=Path("."))

sess = ctx.session(subject="01", session="pre")
path = sess.get("badlabel", "npy")
paths = sess.bundle("badlabel")  # {'npy': Path(...), 'featuremap': Path(...)}

Implementation status

Module Status Description
Registry Done scan, load, validate, query, YAML round-trip
Flow config Done load, extra inputs, groups/products, validation
Path resolution Done SimpleResolver, PipelineContext, Session, Stage
CLI Done init, flow list/new, registry scan/validate
MCP tools Done 35 tools across 7 categories (authoring, discovery, contracts, notebooks, docs)
Contracts Done Models, I/O validation, cross-flow wiring
Notebook lifecycle Done pair, sync, execute, publish, pipeline composite
BIDS adapter Stub Requires pipeio[bids]

Delegation

pipeio delegates execution concerns to specialized tools:

  • Execution: snakebids run.py → Snakemake
  • Provenance: DataLad run records
  • Path resolution: snakebids bids() + generate_inputs()
  • App lifecycle: snakebids deployment modes

Development

pip install -e ".[dev]"
make test

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

pipeio-0.1.0.tar.gz (109.3 kB view details)

Uploaded Source

Built Distribution

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

pipeio-0.1.0-py3-none-any.whl (92.4 kB view details)

Uploaded Python 3

File details

Details for the file pipeio-0.1.0.tar.gz.

File metadata

  • Download URL: pipeio-0.1.0.tar.gz
  • Upload date:
  • Size: 109.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for pipeio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 56dffea05c51d8c6d9e491008d3bdb4ce1dce8110c21c9b6c4f8ae88614d33a0
MD5 13f1394d7dcd63ad445d106c5f748f22
BLAKE2b-256 a2967be1347b2e149fdd46749fa3d9e4709e2b26c2fbc6afb0fb306f41170a31

See more details on using hashes here.

File details

Details for the file pipeio-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pipeio-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for pipeio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1060f324d6edcdb533246ec95948d286ca75061587c1559767dd230ddf4b346
MD5 03422d07f1301694bbca1783a0df6195
BLAKE2b-256 96eb82a3b40a75215effc1e4193b0de9eb759fdc94844bab703b60fa3f9c9448

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