This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.2.0 instead.
Reason given by maintainers: Superseded by 0.1.2; use the latest release.
RunProof
RunProof is a Python library for recording, validating, replaying, and comparing real computational runs. It turns a Python execution into an inspectable artifact containing inputs, outputs, code references, environment metadata, checks, and an execution trace.
The distinctive feature is Explainable Diff: when two runs differ, RunProof compares input fingerprints, schemas, output summaries, step status, code fingerprints, and environment metadata, then reports evidence-backed causes instead of only saying that the runs are different.
What it is
RunProof is a local-first execution record and reproducibility layer for Python workflows. It is useful for data analysis, reports, ML experiments, research software, API workflows, and any process where the result must be explained later.
RunProof is not a reverse-engineering tool, a code generator, a replacement for Git, or a guarantee that a scientific conclusion is correct. It records and validates the execution that was declared to it.
Quick start
from runproof_engine import verified
def clean_rows(rows):
return [row for row in rows if row["amount"] >= 0]
def total(rows):
return sum(row["amount"] for row in rows)
with verified("sales_total", root="runs") as run:
rows = run.input("sales.json", name="sales")
cleaned = run.step("clean_rows", clean_rows, rows)
result = run.step("total", total, cleaned)
run.assert_true(result >= 0, "total must be non-negative")
run.output("total.json", {"total": result})
print(run.result.status)
print(run.result.artifact_dir)
This creates a run directory with a manifest, input metadata, output metadata, trace events, checks, and an environment snapshot. The input is not silently replaced by generated data. File contents are fingerprinted, while copying full inputs is explicit and configurable.
Replay and comparison
from runproof_engine import load_run
previous = load_run("runs/sales_total/20260823-101500-abc123")
replayed = previous.replay(mode="strict")
print(replayed.status)
comparison = previous.diff(replayed)
print(comparison.to_dict())
print(comparison.render())
strict replay uses the captured input when it is available and checks whether the new execution remains comparable. A fresh run can use current inputs and can be compared with a previous run to identify changes.
Statuses
verified: execution completed and all declared checks passed.verified_with_warnings: execution completed but comparability or external-source evidence is limited.failed: execution or a required check failed.blocked: a declared policy prevented a sensitive action.non_reproducible: replay was attempted but did not match the captured run.
Privacy and real data
RunProof records metadata and hashes by default. Full input copying is opt-in. Secrets are redacted from environment snapshots and trace values. External adapters must provide privacy-safe request metadata instead of storing credentials or raw authorization headers.
Project status
The current repository implements the local core: run lifecycle, file fingerprints, JSON-safe artifacts, step tracing, assertions, replay, and explainable diffs. Optional integrations are intentionally separated from the core so the library remains useful without a cloud account or a specific AI provider.
License
Apache-2.0. See LICENSE.
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 runproof_engine-0.1.0.tar.gz.
File metadata
- Download URL: runproof_engine-0.1.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a15c53603bb23864e5c79f3e2b2fe1804d60671c24ff66f2b01a1939325f0f6
|
|
| MD5 |
8818604d56d58d4d5893e23d4b33a80b
|
|
| BLAKE2b-256 |
8ed75aa69f01744020348fae8453579b07011c1430a9e6a86f026b1ead13779c
|
File details
Details for the file runproof_engine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: runproof_engine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f496146e145a6bb89346118c3a5818a68a0080a901754bb53ba205cba5c5b3ca
|
|
| MD5 |
b82f564d46d380e147580b3e4a9dcbf5
|
|
| BLAKE2b-256 |
38bafb67201480ca5d1f8238ca368f75c1ca3f7dd42b2a5622a6056abcdf494e
|