Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PipeWhy

PipeWhy: data integrity and lineage diagnostics

Capture data. Detect drift. Follow the evidence.

Python Build Tests Coverage Black Typing

Documentation Package

Package 0.1.0.dev0 prerelease · Python 3.14 · Poetry · uv_build
Documentation Getting started · User guide · API reference · Developer guide
Project Source · Issues · Releases

What is it?

PipeWhy is a Python package for finding changes in versioned data and explaining them using captured observations and declared lineage. It normalizes typed values, builds composable fingerprints, stores immutable local snapshots and compares historical captures with explicit uncertainty.

The first release targets accidental drift and corruption detection. Missing reads, unknown upstream lineage and incomparable observations stay visible in reports. Capture time alone does not establish an operation's timing or cause. Fingerprints do not provide an adversarial integrity guarantee.

Table of contents

Main features

  • Explicit equality rules: strict representation by default, with a separate opt-in logical normalization profile.
  • Versioned fingerprints: reference Python execution, optional native CPU execution and an experimental CUDA backend with recorded hardware qualification.
  • Durable local snapshots: saved schema, identity, coverage and retention context support comparisons and queries after the source goes offline.
  • Qualified diagnostics: historical comparison, declared lineage, incident analysis and integrity reports preserve the limits of their evidence.
  • Useful CLI output: scan, diff, lineage, why, report integrity and export, with text, JSON, checksummed CSV and graph formats where supported.
  • Pinned Enron integration: the public corbt/enron-emails dataset is read at an exact revision, with verified cache contents and explicit unknown upstream lineage.
  • Resumable local workers: the Python execution API coordinates partitions, finite retries, durable attempts and replay-safe snapshot publication.

Where to get it

Source and tagged releases are maintained in oakplume/pipewhy. The source repository is private; repository and release downloads require access.

The first release series is a development prerelease. To install from PyPI:

python -m pip install --pre pipewhy

See PyPI for published versions and GitHub Releases for wheel downloads and checksums. The installation guide also describes building and installing a local wheel.

Dependencies

The core wheel has no runtime dependencies. Optional extras enable specific features; Poetry locks the development and documentation environments separately.

Extra Purpose Main dependencies
cpu Native CPU fingerprints NumPy, Numba
cuda Experimental CUDA execution NumPy, Numba, numba-cuda, CUDA bindings and compiler/runtime payloads
enron Parquet-backed Enron source PyArrow

Python 3.14 and Poetry 2.5.x are required for development. Current qualification uses CPython 3.14.7. Exact dependency constraints live in pyproject.toml and poetry.lock. Read the CUDA guide before enabling that backend.

Installation from sources

From the repository root:

poetry config virtualenvs.in-project true --local
poetry sync
poetry run pipewhy --help

This creates the project .venv. Use the Poetry executable from your tool environment if poetry is not on your PATH.

For native CPU execution and the Enron source:

poetry sync --extras cpu --extras enron

Include every extra you intend to keep when running poetry sync. Fixtures and the Enron corpus are external source data; they are not bundled in the wheel.

A first snapshot

Capture the fixture supplied with this checkout using the reference backend:

poetry run pipewhy scan fixture --config examples/local-fixture.toml --source-version baseline-v1 --retain value --format json

The example writes to .artifacts/local-snapshots and uses repository test data. Value retention here is explicit. The quickstart continues with changed and missing observations, comparisons and saved reports. For a repeatable demonstration, use the PowerShell 7 local slice script.

Documentation

Read the PipeWhy documentation for getting started, the user guide, API reference and developer guide. It includes search, section navigation and light/dark modes.

To build the static HTML and offline ZIP from the source checkout:

poetry sync --with docs
poetry run python tools/build_docs.py

Open docs/_build/html/index.html, or extract dist/pipewhy-docs.zip and open index.html. The documentation build guide describes local previews and the generated files.

Background

PipeWhy separates source identity, normalized representation, fingerprints, observations and lineage evidence. Comparisons carry that context forward so a report can distinguish detected drift from missing or incompatible information. Saved queries work with the core package without reopening source data.

The architecture guide links the versioned contracts and acceptance records. Local benchmark results retain their measured hardware, source and dependency provenance; they are not universal performance claims.

Getting help

Use the issue tracker for bugs, questions and proposals. Include the package version, command or API call, backend, expected result and a minimal reproducible example. Keep private data and credentials out of reports. poetry run pipewhy --help lists CLI commands.

Development and contributing

Follow the contributor requirements and developer guide. Work in small, meaningful commits tied to issues. Tests must check behavior, including failure paths.

poetry run python tools/quality.py
poetry run python -m pytest tests/gates tests/integration
poetry run python tools/build_docs.py
poetry build

The quality gate enforces Black, ty, dependency checks and pytest under Coverage.py, with at least 95% statement and combined coverage and no coverage exclusions. CI also builds the documentation with warnings treated as errors, rebuilds the source distribution and checks clean installed packages for silent runtime breaks. See the packaging guide.

License

Current package metadata is LicenseRef-Proprietary. No public open-source license has been selected. Distribution preparation does not grant redistribution rights or authorize publication.

Metadata

Release files for pipewhy 0.1.0.dev0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pipewhy 0.1.0.dev0
File Size Uploaded Provenance Actions
pipewhy-0.1.0.dev0.tar.gz 129.7 kB With provenance Details for pipewhy-0.1.0.dev0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pipewhy 0.1.0.dev0
File Interpreter ABI Platform Actions
pipewhy-0.1.0.dev0-py3-none-any.whl Python 3 none any Details for pipewhy-0.1.0.dev0-py3-none-any.whl

Total release size: 306.3 kB

Release files / pipewhy-0.1.0.dev0.tar.gz

Download URL pipewhy-0.1.0.dev0.tar.gz
Size 129.7 kB
Tags Source
SHA-256 checksum
How to use checksums
744a8fc2a85b9e38bd81d437a8bcbc8192bce7522f28d24b0690633dc7294b24
BLAKE2b-256 checksum
How to use checksums
8336a6d1cf4f0a41f06c9f830f3c1ad4f3e032d9a8d395b14cb368bf2d352faf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / pipewhy-0.1.0.dev0-py3-none-any.whl

Download URL pipewhy-0.1.0.dev0-py3-none-any.whl
Size 176.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cce22b1b43cc34697d46ec0541e0cc9ad59fe155c191ad1b043b95cfc81b6db7
BLAKE2b-256 checksum
How to use checksums
d811bcc804e5d04128e5e83dc05ba920cb58686b51a66f2d5739cc97adc3dee0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for pipewhy 0.1.0.dev0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pipewhy-0.1.0.dev0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page