pipestat
A pipeline results reporter
What it is and what it does
Pipestat is a results management layer for computational pipelines. A pipeline author defines expected outputs in a YAML schema (specifying types, descriptions, and validation rules), then uses pipestat's API to report results as the pipeline runs. Results are validated against the schema and persisted to either a YAML file or PostgreSQL database. Downstream tools and users retrieve those results through the same API, ensuring consistent structure and validation across the pipeline ecosystem.
The package is built on seven runtime dependencies—eido, jinja2, jsonschema, logmuse, pyyaml, ubiquerg, and yacman—that handle schema management, templating, validation, logging, and configuration. It targets modern Python (3.10+) and is actively maintained. The design separates schema definition from result reporting, making it suitable for multi-stage pipelines where different tools need to write and read results in a standardized format.
Use it for:
- Define a schema for bioinformatics pipeline outputs, then report accuracy, processing time, and file paths as the pipeline executes.
- Store computational results in PostgreSQL for downstream querying and aggregation across multiple pipeline runs.
- Auto-generate a schema from existing pipeline results files to enforce structure on future runs.
- Share pipeline outputs between heterogeneous tools by using pipestat as a common results API.
- Validate pipeline outputs against a schema before storing them, catching malformed results early.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pipestat provides a standard API for reporting, storing, and retrieving pipeline results validated against a JSON Schema, with support for YAML file or PostgreSQL database backends.
Yes. Pipestat is actively maintained, has no known vulnerabilities, and solves a real problem—standardizing how pipelines report and store results. Low install friction and permissive licensing make it a safe choice. Best suited for projects that need schema-validated result storage across multiple pipeline stages or tools; less critical for simple single-stage pipelines with ad-hoc output handling.
Install
pipestat on PyPI
pip
pip install pipestatuv
uv add pipestatpoetry
poetry add pipestatInstalling pipestat
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with recent commits and support for modern Python versions (3.10–3.14). Seven runtime dependencies are all well-established packages.
License in practice
BSD-2-Clause is a permissive license with minimal restrictions; you can use, modify, and distribute pipestat with few obligations beyond retaining the license notice.
Quickstart
pip install pipestat
import pipestat
psm = pipestat.PipestatManager(
schema_path="output_schema.yaml",
results_file_path="results.yaml",
record_identifier="sample1",
)
psm.report(values={"accuracy": 0.95})
Requires Python 3.10 or later. PostgreSQL backend tests require a running PostgreSQL instance, but YAML file backend works without external dependencies.
Verify before relying
- Whether the package's bioinformatics focus (evident from classifiers) limits its applicability to non-genomics pipelines.
- Performance characteristics when storing large numbers of results or querying complex schemas.
- Whether schema inference from existing results files handles all data types reliably.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — eido, jinja2, jsonschema, logmuse, pyyaml, ubiquerg, yacman |
| Maintenance | actively maintained — 161 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 105,824/month — #12,677 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pipestat-0.13.1-py3-none-any.whl
Keywords: metadata, pipeline, pipeline results, reporting, results, workflow
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
eidoValidates project metadata against PEP schemas…
permissive · top 15,000 on PyPI
dagster-postgresConnects Dagster data pipelines to PostgreSQL…
permissive · top 5,000 on PyPI
peppypeppy reads and manages Portable Encapsulated…
permissive · top 15,000 on PyPI
llama-index-storage-kvstore-postgresProvides a PostgreSQL-backed key-value store…
permissive · top 15,000 on PyPI
piperPypiper manages shell command execution within…
permissive · top 15,000 on PyPI
pgsanityPgSanity validates PostgreSQL SQL syntax by…
permissive · top 15,000 on PyPI
ase-db-backendsProvides database backend implementations for…
unclear · top 15,000 on PyPI
emmet-coreEmmet-core provides the core data models,…
permissive · top 15,000 on PyPI
pg8000pg8000 is a pure-Python PostgreSQL driver that…
permissive · top 1,000 on PyPI
queriesQueries is a simplified wrapper around psycopg2…
permissive · top 15,000 on PyPI