Skip to main content

A pipeline results reporter

Project description

Run pytests pypi-badge

pipestat

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


Download files

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

Source Distribution

pipestat-0.13.1.tar.gz (139.9 kB view details)

Uploaded Source

Built Distribution

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

pipestat-0.13.1-py3-none-any.whl (104.7 kB view details)

Uploaded Python 3

File details

Details for the file pipestat-0.13.1.tar.gz.

File metadata

  • Download URL: pipestat-0.13.1.tar.gz
  • Upload date:
  • Size: 139.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pipestat-0.13.1.tar.gz
Algorithm Hash digest
SHA256 87cf69404511e434e8e9a20abdfd9c8123ad6d2f7818a182a29db772a8d78d47
MD5 7812e009242d0a1870bf0d2dd7d97fa1
BLAKE2b-256 b80bf3fadd34b2b341a695052de36f4fc15255d9580579f46f198d8fa06e9855

See more details on using hashes here.

Provenance

The following attestation bundles were made for pipestat-0.13.1.tar.gz:

Publisher: python-publish.yml on pepkit/pipestat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pipestat-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: pipestat-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 104.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pipestat-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b51b97d1a68b1f0f553a785fc66574ddbe162e24b57e13c36190f7fe4b5c6153
MD5 c5130347dcd82990e6d0197c1a7d8ecb
BLAKE2b-256 6ecb500e0283bbe51c4fa63433238496c6f77bc3eec75ffc998a3aae7ac67503

See more details on using hashes here.

Provenance

The following attestation bundles were made for pipestat-0.13.1-py3-none-any.whl:

Publisher: python-publish.yml on pepkit/pipestat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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