Skip to main content

Blazingly fast test selection for pytest - only run tests affected by your changes (Rust-powered)

Project description

pytest-difftest

⚠️ This project is still a work in progress. APIs and behavior may change without notice.

Fast test selection for pytest - Only run tests affected by your changes, powered by Rust 🦀

CI PyPI Python Versions License: MIT

What is pytest-difftest?

pytest-difftest is a pytest plugin that intelligently selects and runs only the tests affected by your code changes.

Key Features

  • 🎯 Smart test selection - Only runs tests that touch changed code
  • 🔍 Block-level granularity - Tracks changes at function/class level, not just files
  • 🔧 pytest-xdist compatible - Works with parallel test execution
  • 💾 SQLite storage - Reliable, portable test dependency database
  • 🚀 Upload/Download baseline to S3 - Easily share baseline of tests across a team
  • 📦 Portable baselines - Stores relative paths so baselines work across machines (CI → local)

Installation

pip install pytest-difftest

Or with uv (recommended):

uv add --dev pytest-difftest

Quick Start

# 1. Save a baseline (runs all tests and records current state)
pytest --diff-baseline

# 2. After making changes, run only affected tests
pytest --diff

# 3. Update baseline incrementally (only re-runs affected tests)
pytest --diff-baseline

# 4. Force a full baseline rebuild when needed
pytest --diff-baseline --diff-force

# Example output:
# pytest-difftest: Detected 3 modified files
#   Running 12 affected tests
#   Skipping 438 unaffected tests
# ==================== 12 passed in 0.8s =====================

How It Works

pytest-difftest uses a three-phase approach:

1. Baseline (--diff-baseline)

  • First run: executes all tests with coverage, maps which tests touch which code blocks
  • Subsequent runs: incremental — only re-runs tests affected by changes since last baseline
  • Stores dependency graph in .pytest_cache/pytest-difftest/pytest_difftest.db SQLite database
  • Use --diff-force to force a full rebuild (re-runs all tests AND recomputes all fingerprints)

2. Change Detection (--diff)

  • Parses modified files with Rust (blazingly fast!)
  • Calculates checksums for each code block
  • Compares against stored fingerprints to find changed blocks

3. Test Selection

  • Skips collecting unchanged test files entirely (pytest_ignore_collect) — avoids importing/parsing files that would be deselected
  • Queries database for tests that depend on changed blocks
  • Runs only affected tests
Code Change → AST Parsing (Rust) → Block Checksums → Database Query → Run Tests
     ↓                                                                      ↓
  detector.py                                                    test_detector.py
  line 15 changed                                                (runs because it
                                                                 used detector.py)

Test Selection Scenarios

Scenario --diff behavior --diff-baseline behavior
No changes Skips all tests Skips all tests (incremental)
Modified source file Runs tests that depend on changed blocks Runs affected tests, updates baseline
New test file Detects as changed, runs all tests in the new file Runs all tests in the new file, adds to baseline
New source file Detects as changed, runs tests that depend on it Runs tests that depend on it, adds to baseline
Sub-scope (e.g. baseline=tests/, diff=tests/unit/) No warning, baseline already covers the scope No warning, proceeds normally
Broader scope (e.g. baseline=tests/unit/, diff=tests/) Warns, proceeds with test selection (may miss tests) Warns, runs all tests to rebuild baseline
Both --diff and --diff-baseline --diff-baseline takes precedence, --diff is ignored -
Failing tests Always re-selected (not recorded until they pass) Re-run on incremental baseline until they pass
Skipped tests (skip/skipIf) Deselected (recorded in baseline) Recorded, deselected on incremental
Expected failures (xfail) Deselected (recorded in baseline) Recorded, deselected on incremental
First baseline (empty DB) Runs all tests to build the database Runs all tests
--diff-force N/A Forces full rebuild, runs all tests

Configuration

Command Line Options

Option Description
--diff Enable pytest-difftest (select tests based on changes)
--diff-baseline Compute baseline. First run executes all tests; subsequent runs are incremental (only affected tests)
--diff-force Force full rebuild: runs all tests AND recomputes all fingerprints (use with --diff-baseline)
--diff-v Enable verbose logging (shows timing and debug info)
--diff-batch-size N Number of test executions to batch before DB write (default: 20)
--diff-cache-size N Maximum fingerprints to cache in memory (default: 100000)
--diff-remote URL Remote storage URL for a single baseline DB file (e.g. s3://bucket/baseline.db)
--diff-upload Upload baseline DB to remote storage after --diff-baseline completes
# Run only tests affected by your changes
pytest --diff

# Save baseline (first run: all tests; subsequent runs: only affected tests)
pytest --diff-baseline

# Force a full baseline rebuild
pytest --diff-baseline --diff-force

# Save baseline and upload to S3
pytest --diff-baseline --diff-upload --diff-remote "s3://my-bucket/baselines/baseline.db"

# Run affected tests, fetching baseline from remote
pytest --diff --diff-remote "s3://my-bucket/baselines/baseline.db"

pyproject.toml

All options can be configured in pyproject.toml so you don't need to pass them on every invocation:

[tool.pytest.ini_options]
diff_batch_size = "50"
diff_cache_size = "200000"
diff_remote_url = "s3://my-ci-bucket/baselines/baseline.db"
diff_remote_key = "baseline.db"

CLI options take precedence over pyproject.toml values when both are provided.

Remote Baseline Storage

pytest-difftest supports storing the baseline database in remote storage, enabling a CI/CD workflow where CI computes the baseline and developers automatically fetch it.

Supported backends:

Scheme Backend Requirements
s3://bucket/path/file.db Amazon S3 pip install pytest-difftest[s3]
file:///path/to/file.db Local filesystem None

Simple CI/CD workflow (single job):

  1. CI (on merge to main): pytest --diff-baseline --diff-upload --diff-remote "s3://bucket/baseline.db"
  2. Developer local: pytest --diff --diff-remote "s3://bucket/baseline.db" (auto-fetches latest baseline)

S3 uses ETag-based caching to avoid re-downloading unchanged baselines. Any S3 error (authentication, network, permissions, etc.) will immediately abort the test run to avoid silently running without a baseline.

Recommended CI workflow (parallel jobs):

When running tests in parallel across multiple CI jobs, each job uploads its baseline to a unique key. A final step merges them and uploads the result:

# Step 1: Each CI job uploads its baseline to a unique key
pytest --diff-baseline --diff-upload --diff-remote "s3://bucket/run-123/job-unit.db"
pytest --diff-baseline --diff-upload --diff-remote "s3://bucket/run-123/job-integration.db"

# Step 2: Final CI step merges all baselines and uploads the result
pytest-difftest merge s3://bucket/baseline.db s3://bucket/run-123/

# Step 3: Developers fetch the single merged baseline
pytest --diff --diff-remote "s3://bucket/baseline.db"

CLI Commands

pytest-difftest provides a CLI for offline database operations:

# Merge local database files
pytest-difftest merge output.db input1.db input2.db

# Merge all .db files from a local directory
pytest-difftest merge output.db ./results/

# Merge from a remote prefix (downloads all .db files from it)
pytest-difftest merge output.db s3://bucket/run-123/

# Merge and upload result to S3
pytest-difftest merge s3://bucket/baseline.db input1.db input2.db

# Full remote: download from prefix, merge, and upload
pytest-difftest merge s3://bucket/baseline.db s3://bucket/run-123/

# Mix local files, directories, and remote inputs
pytest-difftest merge output.db input1.db ./results/ s3://bucket/run-123/

The output argument can be a local path or a remote URL (s3://..., file://...). When it's a remote URL, a temporary file is used locally and uploaded at the end. Each input can be a local file, a local directory (collects all .db files), or a remote URL (prefix ending with / downloads all .db files).

Development Setup

pytest-difftest uses modern Python tooling:

Prerequisites

  • mise - Version manager for Python and Rust
  • uv - Fast Python package manager

Setup

# Clone the repository
git clone https://github.com/PaulM5406/pytest-difftest.git
cd pytest-difftest

# Install mise (if not already installed)
curl https://mise.run | sh

# Install Python and Rust via mise
mise install

# Create virtual environment and install dependencies
uv sync --all-extras --dev

# Build the Rust extension
maturin develop

# Run tests
pytest

# Run Rust tests
cargo test

# Run benchmarks
cargo bench

Architecture

pytest (Python)
    ↓
pytest-difftest plugin (Python)
    ├── plugin.py        — pytest hooks & orchestration
    ├── _config.py       — configuration helpers
    ├── _git.py          — git commit SHA & staleness checks
    ├── _storage_ops.py  — remote storage operations
    ├── _xdist.py        — pytest-xdist coordination
    └── storage/         — S3 & local backends
    ↓ (PyO3 bindings)
pytest-difftest-core (Rust)
    ├── AST Parser (RustPython parser)
    ├── Fingerprint Engine (CRC32)
    └── Database Layer (SQLite + LRU Cache)

Development Workflow

# Make changes to Rust code
# Rebuild with:
maturin develop

# Run tests
pytest
cargo test

# Format code
cargo fmt
ruff format python/

# Lint
cargo clippy
ruff check python/

# Typing
ty check python/

License

MIT License - see LICENSE file for details.

Credits


Made with ❤️

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pytest_difftest-0.1.0-cp38-cp38-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pytest_difftest-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d188b6ba7c3a39979f0eca6914957bc85ca1b410b24ff46414a0d8ecdaaa495
MD5 d83869b8545ca5908cf62cdeb89c5d0d
BLAKE2b-256 7f27073df5364bb6c394fa11c82d7a0692433380dd0f2f5acf7e13fd6dcabd49

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a97bf5d6a54219f7d44c5397462aead1a2c415776e93ef7bdc0f80e094cc1736
MD5 01e4a9e1627709895616fae03c37eb0c
BLAKE2b-256 66bdb1b5a638e66af61cd4558e2088626e2d317798f1f478ce9b133ca73b06d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a043972e09bcf6367c38ffc636ebed4c7f8c71ff6bd93022b56a747c9adb1df
MD5 deaffb0c0c57e9b003254bed39d00681
BLAKE2b-256 f8951f4155bd6e02fa52007516c3fe61727e69d2b2cc506eeb94e95a3e3e85a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4444f4d410237283b4c025cfc3d7873ddc9e71ce94bf814f0a1004f1c67606e2
MD5 5906e7b9c31cf6a6256bdddf8c9e0998
BLAKE2b-256 9a55d325e2bdf9ef8ec61e0b949d3174b0eff9a22d18d7c01b8b71145320b29c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 364910ad9ea296c18dc7e1f42e4fa010c36417d3ebec0097f402cfb0299048cb
MD5 90253e4eebe4854b6be6c5c051edb0c1
BLAKE2b-256 4699a78be37208156c11e3cc6b419a5093fa3d17fee7b7a949faf815cf532cac

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 18fb8bab9ef9d2935038cc02c21247a8dd266024d997802d2216c0d7522365c8
MD5 6b63823d577272726c0ee64fd199fa29
BLAKE2b-256 70ba3e5080a0d843d3241067e4479dbd1d170a9344ab3fd9bc732057d168a2a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e0d4bb8802bf8a4c2a75468c6c8b7a029f0935c1ffc63f607d00401367034f6
MD5 014364cf181ce86f7040e37655f7b8fc
BLAKE2b-256 e60442c9deda20851f0ed5132580eb20c898c155889530900285b4d08ed76471

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f67cff3bd82a49a459ec658c677b889967f070fdc70a3106142c6dbc687ad894
MD5 fe56e9b5936e60bcb9241e2637846c80
BLAKE2b-256 0257fa1eaa2281389e90fadc98ab34b22ded46ff880ea1a80982e1dd94666c09

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fc741bbd3b2d81525b0a007248f3f79766408fc494b48e699018333baa682fe
MD5 09a8a4e095ee164f8a5964d86f320801
BLAKE2b-256 a1d2cd33c1b2b1bb716d3079503b18831e7d5ba545370f285b95fdad6cce2f87

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 411d5b0b7e16d5e6da52b9424d8b67e11b81077d094e8f2e334d68380ce4856f
MD5 01d186260dc0a29cb68d5ffd380db6b4
BLAKE2b-256 786240b6e3cfc12964627631d575672f274062b99f8f6ebf1c6f7972818b98b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97d9b221736ee1d5ba11eb373312ac0fbc104eb319692ab7f933b514dd4a9561
MD5 4e6b56c5888ef8dc16fd631e598466a1
BLAKE2b-256 1d41c7487e53aa6d2195cb4b8ff84746c03c0f0ebf6cfbf4497baec371d5073e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b79bd787fe6cfa1f9f569224c660e6317648f2c8c83505c4861902f658d4249
MD5 4292d3a80b48ddaba34d1f27e1b461c0
BLAKE2b-256 14a63b6ad31c93037c4dca2f4d104941e684592273fd82ff4b67cc54331374ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a425dce071d05a4027b1a3a040e466c45325ed4b482a619741db3804ccc208d6
MD5 a6d7dac2ec9197d103244e2a1b0be32c
BLAKE2b-256 b8000b609baeaa603848237740e6d5a1cf757a3afe48ac5d8493423d1a181992

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f861650986bad9fcc994084264e49666b30e4f7c13cdc13dd84a6140dcd5d8fd
MD5 84ec0c3f72349a29d77b0203805a8b87
BLAKE2b-256 2f8ab75057ca95e8162f205480c88b65fbf61e63ac4ed7e2449c931d793a41df

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b51d865b0837096171e08450011fcea9985dc576d8855138e088998b04f2b67
MD5 c79c3a2b8e243d523a5e63cf0185bc74
BLAKE2b-256 ab789aae79d47754439b82d2fc84a17176996aa93326b4c8d2e5a33479eb5b5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 21127cb35b09d7902de8721c9ef0719c5299bbbd94373bde082c87eab6e84ec2
MD5 6da8249c13b67fb9866f1b39117ebc67
BLAKE2b-256 06499bc10730dc55a97b1d51e3e2ee51477af729f60bb3112f3df251642bdd12

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9341754ca087e060d63c671c23abe2c8de07c28dfd0303e4e9e035d041b17690
MD5 ea949863bddd241c859b0f702f196082
BLAKE2b-256 9866c3612b8976b7652547257c7e7f4a42383ee696fe56aae9115082d7830de5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af354d5b5bea82403865fff788b964405f2407d816fc8e16a14bcf3cef59208d
MD5 4ad79b59c6454eba5b791ea9b6a4a166
BLAKE2b-256 ba1990916faf853db5447ea7bb753d20d648cb3d044b4686df3f71dcce5f7357

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc3bdb27f9c1b8730bb3283302d494f31186e1bb1fba0465b6383087ca955454
MD5 94ae6232f317677a78adc3d99649c56e
BLAKE2b-256 53f4798ba34ebf965ccaff90a2b6b8ac2130ccdd2127e528bdd5fcd98e50f3d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 94d4ba16813807335043572f49f02868587fc3b35d4effa6811c4147d6985f98
MD5 faa8c4d5f8f46293c6c9d3c19bfd8f7c
BLAKE2b-256 6da53a2606fc3394ef8489690ccf63eed74900cde047d4e58240c439159af5ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp39-cp39-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c83ec96c2021ce920e1e15e8816e85d72b11d87d87daf215159d6e65f974022
MD5 be613d67d6947080c96f91074bc566b8
BLAKE2b-256 46c5f6e52878025475fa6ec5ed860330b56b57d8800c2058b3f2e8712e674c7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa65e43606727b5692e3563922bc0ace50809619147e580f9950277d4822823f
MD5 f23d00b50f7f3d432d240403b3419cfe
BLAKE2b-256 27ae00f2c5fe305dba132244a06d9f02991b1bb8eae76ac7ef386791f5c01ab3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c7b8e7a9a43548a79c800e719b034fcfd71cfebe6525f2757ef9b5c5c49a976
MD5 26f37b0074a92e19f29a14b9f3bcfbbb
BLAKE2b-256 a33b332d7fe38476cd1872073d92b2b3571d0e64d5d5e5a2475bfd9648393014

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_difftest-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pytest_difftest-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 10ea4b3239c443b81d7e80bab5ccf2ca9bf36c4cffcd2de960704876b374fe6d
MD5 48a8dcf1c89dc041e7a76b17b881db75
BLAKE2b-256 4b5f816afaf8f9b30940143c8754f99ec25dab73c421006ae4351d112f73d3ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_difftest-0.1.0-cp38-cp38-macosx_10_12_x86_64.whl:

Publisher: release.yml on PaulM5406/pytest-difftest

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