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.0.tar.gz (138.7 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.0-py3-none-any.whl (104.8 kB view details)

Uploaded Python 3

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

Hashes for pipestat-0.13.0.tar.gz
Algorithm Hash digest
SHA256 17c28e8e70b72316099ea410feabf5d215ba3aa4d1bb7eae1ca26af2d9c3f976
MD5 07ba175009e9a6e1afe2c2a990ff59b0
BLAKE2b-256 377eff5769058503636206fb24fe38b1d5204063871b1ad174b2bd831d68a1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pipestat-0.13.0.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.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

Hashes for pipestat-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fcb19aa2637dcc987b59c6d731a2c45f021a72dcce6703c8d470ebb1bd9be1ac
MD5 dd023004cbb15a9a26610472eeef02e1
BLAKE2b-256 9a33ba95f00b352447615c1f3fc546a70e4112ebbc9c4a91409281721bc9336f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pipestat-0.13.0-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