Registry / workflow / pipestat

pipestat

JSON →
library0.13.1pypypi✓ verified 84d ago

pipestat is a Python library that acts as a pipeline results reporter. It provides a flexible way to manage and track the status and outputs of computational pipelines, supporting various backends like YAML files, SQLite databases, and Pephub. The current version is 0.13.1, and it maintains a regular release cadence, with several minor versions and patches released annually.

pip install pipestat
INSTALL
IMPORT
SIG · PIPESTAT
P
pipestat
workflowpythonv0.13.1
Install
13.3s avg
Import
538ms
Disk
207MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.13.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.441s · 201MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 13.3s · import 0.420s · 193MB
207MB installed
● package 207MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

PipestatManager
from pipestat import PipestatManager

This quickstart demonstrates how to initialize `PipestatManager` with a configuration and schema, report a result for a record, and then retrieve it. It uses temporary files for the configuration and schema to keep it self-contained and runnable.

import os import tempfile from pipestat import PipestatManager # Create dummy config and schema files in a temporary directory tmpdir = tempfile.TemporaryDirectory() config_file_path = os.path.join(tmpdir.name, "pipestat_config.yaml") schema_file_path = os.path.join(tmpdir.name, "results_schema.yaml") db_file_path = os.path.join(tmpdir.name, "pipestat_test.sqlite") config_content = f""" database: db_file: {db_file_path} pipeline_name: my_pipeline schema_path: {schema_file_path} """ with open(config_file_path, "w") as f: f.write(config_content) schema_content = """ properties: sample_name: type: string my_result: type: string my_numeric_result: type: number required: - sample_name - my_result """ with open(schema_file_path, "w") as f: f.write(schema_content) # Initialize PipestatManager psm = PipestatManager( config_file=config_file_path, schema_path=schema_file_path ) # Report a result record_identifier = "sample1" result_name = "my_result" result_value = "SUCCESS" psm.report(record_identifier=record_identifier, result_name=result_name, value=result_value) # Report another result psm.report(record_identifier=record_identifier, result_name="my_numeric_result", value=123.45) print(f"Reported '{result_name}' for '{record_identifier}' as '{result_value}'") # Retrieve results retrieved_result = psm.retrieve(record_identifier=record_identifier, result_name=result_name) print(f"Retrieved '{result_name}' for '{record_identifier}': {retrieved_result}") # Clean up tmpdir.cleanup()
pipestat --version
Debug
Known issues
breakingThe schema structure for 'samples' results changed in v0.11.0. If your output schema previously defined 'samples' directly, it now needs to be an array type and nested under 'items'.
fix
Review and update your `results_schema.yaml` to conform to the new structure if you define 'samples' in your schema. Refer to the official documentation for updated schema examples.
affects: >=0.11.0
gotchapipestat requires Pydantic v2+. If you have Pydantic v1 installed in your environment, you may encounter `ValidationError` or import errors due to API changes between Pydantic major versions.
fix
Ensure your environment has `pydantic>=2` installed. You may need to upgrade Pydantic (`pip install --upgrade pydantic`) or work in a fresh virtual environment.
affects: >=0.10.0
gotchaPipestat relies heavily on configuration files (e.g., `pipestat_config.yaml`) and result schemas (`results_schema.yaml`). Misconfiguration or incorrect paths can lead to runtime errors or unexpected behavior.
fix
Always double-check the paths provided to `PipestatManager` for `config_file` and `schema_path`. Ensure the `pipeline_name` in the config matches your pipeline, and the schema accurately reflects your expected results.
affects: All
Errors
Common errors & fixes
pydantic.v1.ValidationError: ...
Using an older version of Pydantic (v1.x) while pipestat requires Pydantic v2+.
fix
Upgrade Pydantic: `pip install --upgrade pydantic` or ensure `pydantic>=2` is installed.
FileNotFoundError: [Errno 2] No such file or directory: '/path/to/config.yaml'
The `config_file` or `schema_path` provided to `PipestatManager` does not point to an existing file.
fix
Verify that the paths to your `pipestat_config.yaml` and `results_schema.yaml` are correct and accessible by the script.
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: record
The SQLite database backend was specified, but the database file either does not exist or has not been properly initialized with the required tables for pipestat.
fix
Ensure the `db_file` specified in your config is valid. `PipestatManager` should create the necessary tables upon initialization if the schema is provided and the database file is new. If it's an existing file, ensure it's not corrupted or missing tables.
Upgrade
Version history
0.13.1latest on PyPI · released Mar 6, 2026
Audit
Dependencies
pydanticrequiredUsed for schema validation and data modeling; pipestat requires Pydantic v2+.
peppyoptionalCommonly used for project configuration (e.g., sample sheets) when integrating pipestat into larger PEP-based workflows.
sqlmodeloptionalRequired for using the SQLite or other SQL database backends.
Agent activity
25 hits · last 30 days
node
20
Amazon
1
OpenAI (training)
1
Resources
pipestat — pip install pipestat · libregistry