A pipeline results reporter
Project description
Pipestat is a Python package for managing pipeline results. It provides a standard API for reporting, storing, and retrieving outputs from any computational pipeline. Results are validated against a JSON Schema and stored in either a YAML file or a PostgreSQL database. A pipeline author defines outputs in a schema, then uses pipestat to report results as the pipeline runs. Downstream tools retrieve those results through the same API.
See Pipestat documentation for complete details.
Quick Start
import pipestat
psm = pipestat.PipestatManager(
schema_path="output_schema.yaml",
results_file_path="results.yaml",
record_identifier="sample1",
)
psm.report(values={"accuracy": 0.95, "processing_time": 12.3})
psm.report(values={"output_file": {"path": "results/output.csv", "title": "Output CSV"}})
Schema
Pipestat requires a schema that defines the results your pipeline reports. Here is a minimal example:
pipeline_name: my_pipeline
samples:
accuracy:
type: number
description: "Model accuracy score"
processing_time:
type: number
description: "Processing time in seconds"
output_file:
type: object
object_type: file
properties:
path: {type: string}
title: {type: string}
required: ["path", "title"]
Every result needs type and description. See sample_output_schema_generic.yaml in this repo for a fuller example with both sample and project result types.
Generating a schema from existing results
If you already have a pipestat results file, you can auto-generate a schema:
pipestat infer-schema -f results.yaml -o schema.yaml
This inspects your results and produces a schema with the correct types. See pipestat infer-schema --help for options.
Developer tests
Optional Dependencies
Note: to run the pytest suite locally, you will need to install the related requirements:
cd pipestat
pip install -r requirements/requirements-test.txt
Database Backend Configuration for Tests
Many of the tests require a postgres database to be set up otherwise many of the tests will skip.
We recommend using docker:
docker run --rm -it --name pipestat_test_db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=pipestat-password \
-e POSTGRES_DB=pipestat-test \
-p 5432:5432 \
postgres
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipestat-0.13.0.tar.gz.
File metadata
- Download URL: pipestat-0.13.0.tar.gz
- Upload date:
- Size: 138.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17c28e8e70b72316099ea410feabf5d215ba3aa4d1bb7eae1ca26af2d9c3f976
|
|
| MD5 |
07ba175009e9a6e1afe2c2a990ff59b0
|
|
| BLAKE2b-256 |
377eff5769058503636206fb24fe38b1d5204063871b1ad174b2bd831d68a1c2
|
Provenance
The following attestation bundles were made for pipestat-0.13.0.tar.gz:
Publisher:
python-publish.yml on pepkit/pipestat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipestat-0.13.0.tar.gz -
Subject digest:
17c28e8e70b72316099ea410feabf5d215ba3aa4d1bb7eae1ca26af2d9c3f976 - Sigstore transparency entry: 991677879
- Sigstore integration time:
-
Permalink:
pepkit/pipestat@a532f88d9879389200470e85766173a1e2346997 -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/pepkit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a532f88d9879389200470e85766173a1e2346997 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pipestat-0.13.0-py3-none-any.whl.
File metadata
- Download URL: pipestat-0.13.0-py3-none-any.whl
- Upload date:
- Size: 104.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcb19aa2637dcc987b59c6d731a2c45f021a72dcce6703c8d470ebb1bd9be1ac
|
|
| MD5 |
dd023004cbb15a9a26610472eeef02e1
|
|
| BLAKE2b-256 |
9a33ba95f00b352447615c1f3fc546a70e4112ebbc9c4a91409281721bc9336f
|
Provenance
The following attestation bundles were made for pipestat-0.13.0-py3-none-any.whl:
Publisher:
python-publish.yml on pepkit/pipestat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipestat-0.13.0-py3-none-any.whl -
Subject digest:
fcb19aa2637dcc987b59c6d731a2c45f021a72dcce6703c8d470ebb1bd9be1ac - Sigstore transparency entry: 991677880
- Sigstore integration time:
-
Permalink:
pepkit/pipestat@a532f88d9879389200470e85766173a1e2346997 -
Branch / Tag:
refs/tags/v0.13.0 - Owner: https://github.com/pepkit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@a532f88d9879389200470e85766173a1e2346997 -
Trigger Event:
release
-
Statement type: