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
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.441s · 201MB
glibcpy 3.10–3.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
Errors
Common errors & fixes
pydantic.v1.ValidationError: ...
Using an older version of Pydantic (v1.x) while pipestat requires Pydantic v2+.
fixUpgrade 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.
fixVerify 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.
fixEnsure 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.