Skip to main content

Fast contamination detection for ML training data - Python bindings for decon

Reason this release was yanked:

Please use 0.3.0.post4

Project description

Contamination Detection

Decon identifies documents contaminated with eval instances.

It uses simple token based sampling and counting methods, making it suitable for large datasets. It is deterministic with interpretable results.

Decon can produce contamination reports and cleaned datasets.

๐Ÿ This fork adds Python bindings โ€” the core Rust functionality is unchanged. Skip to Python Quick Start to get started, or see the Architecture section to understand how bindings are structured. For the full Python API signature, see crates/decon-py/src/lib.rs.

How Decon Works

Consider a 30GB web dataset in ~/sample-data that includes documents containing evaluation question text.

TRAINING DOC:

"... for ฮธ 30 c i ฮธ i0 4 for ฮธ 90 d i ฮธ is constant for all values of ฮธ the plane face of plano convex lens of focal length 20 cm is silvered this combination is equivalent to the type of mirror and its focal length is a convex f 20 c m b concave f 20 cm in a displacement method using convex lens two images are obtained for a separation of d between ..."

EVAL PROMPT: the plane face of plano convex lens of focal length 20 cm is silvered this combination is equivalent to the type of mirror and its focal length is

EVAL ANSWER: concave f 10 cm

We can identify the contamination locations running decon.

$ decon detect --training-dir ~/sample-data --evals-dir ~/references

Training files 4,487/4,487 [00:02:55/00:00:00] [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ]

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚     Contamination Detection Results       โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Training lines                  5,162,084 โ”‚
โ”‚ Processing rate                 34 ฮผs/doc โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Index building time                38.59s โ”‚
โ”‚ Detection time                    175.69s โ”‚
โ”‚ Total time                        214.28s โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Contaminated matches                7,699 โ”‚
โ”‚ Contaminated documents              1,851 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

$ decon review --stats /tmp/decon-295c0cbd

=== TRAINING DOCUMENTS CONTAMINATED BY EVAL SUITE ===
(Each count represents unique training documents that need removal)

  sciq                                  652 โ”‚โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ”‚
  mmlu                                  278 โ”‚โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ                  โ”‚
  mmlu_pro                              211 โ”‚โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ                       โ”‚
  ai2_arc_easy                           83 โ”‚โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ                                 โ”‚
  super_gpqa                             65 โ”‚โ–ˆโ–ˆโ–ˆโ–ˆ                                   โ”‚

  ...

Quick Start

Python

Install via pip:

pip install decontaminate

Run contamination detection in Python:

import decon

# Configure detection
config = decon.Config(
    training_dir="/path/to/training/data",
    evals_dir="/path/to/eval/references",
    report_output_dir="/path/to/output",
)

# Run detection (automatically parallelized using all CPU cores)
report_dir = decon.detect(config)
print(f"Results written to: {report_dir}")
Additional Python API
import decon

# Tokenizer utilities
tokenizer = decon.Tokenizer("cl100k")  # Options: r50k, p50k, cl100k, o200k, uniseg
tokens = tokenizer.encode("hello world")  # [15339, 1917]
text = tokenizer.decode(tokens)           # "hello world"

# Text cleaning (normalizes punctuation/whitespace, lowercases)
cleaned = decon.clean_text("Hello,  World!")  # "hello world"

# All Config options
config = decon.Config(
    training_dir="/path/to/training",
    evals_dir="/path/to/evals",
    report_output_dir="/path/to/reports",
    ngram_size=5,                          # N-gram size for matching
    tokenizer="cl100k",                    # Tokenizer to use
    contamination_score_threshold=0.8,     # Detection threshold
    content_key="text",                    # JSON field containing text
    verbose=False,                         # Enable verbose output
    purify=False,                          # Create cleaned dataset
)

๐Ÿ“– Full API: See crates/decon-py/src/lib.rs for complete function signatures.

๐Ÿ“š Python Guide: See doc/python.md for detailed examples with CLI equivalents.


CLI (Rust)

# Clone and build. Requires rust 1.88
git clone https://github.com/allenai/decon
cd decon

# For full set of commands and options, help is available.
cargo run --release -- --help

# List current eval datasets in reference (small default set initially).
cargo run --release -- evals

# Run contamination detection.
cargo run --release -- detect --training-dir tests/fixtures/training/

# Create a clean copy (contaminated documents removed) of your dataset.
cargo run --release -- detect --training-dir tests/fixtures/training/ --purify

# Review report output. A decon detect run will report an output directory.
cargo run --release -- review /tmp/decon-output-directory

Sensible defaults are provided for decon parameters, with a single contamination_score_threshold that can be adjusted to desired sensitivity. Experimenting with these parameters on your own dataset and eval reference set is recommended.

Advanced Usage

Preparing Datasets

Training Documents

Decon operates on a directory containing jsonl files.

Each JSON object in the files must contain a field with a string value representing a training document [example].

Eval Suites

Decon runs against a reference set of eval suites that is also expected be a directory containing jsonl files [example].

Decon eval reference files have a normalized format including passage, question, answer keys as well as metadata for reporting. Decon includes tooling to generate reference files from hf datasets.

Eval Reference Set Curation

Three eval suites are included in the eval reference dataset by default, gsm8k, mmlu, and agi_eval.

It's likely you will want to build your own reference set with your evals of interest.

The decon evals command can process an extensible declarative yaml file to normalize huggingface datasets.

To download all the pre-configured evals included in the configuration file, run the following command. This requires python3 with the datasets library installed.

# Review current set of evals in reference
cargo run --release -- evals

# Download and normalize all evals configured in a config file
cargo run --release -- evals --download --config config/evals.yaml

See the Evaluation Dataset Guide for more information on preparing evaluation datasets.

Server

Decon can also be run as a server to facilitate distributing workloads.

# Launch a server
decon server --port 8080

An example orchestration script is provided which demonstrates one approach to batch retrieve a partition of documents, submit documents to the server, poll for job status, and upload reports and clean documents to a new location.

See deployment guide for details.

Reviewing Results

Decon includes tools for qualitative review and basic stats which can be filtered to analyze contamination.

# To qualitatively review individual matches
cargo run --release -- review /my-results-directory

# To see statistics
cargo run --release -- review --stats /my-results-directory

# To review with filters, e.g. specific eval with minimum score
cargo run --release -- review /my-results-directory --eval mmlu --min-score 0.9

# Compare results between different decontamination runs
cargo run --release -- compare /tmp/results-a /tmp/results-b

Decon reports are jsonl files which are ready for analysis beyond the provided tooling.

Architecture

This fork restructures decon as a Rust workspace with three crates:

Crate Source Description
decon-core crates/decon-core/ Core detection engine โ€” pure Rust library (unchanged from upstream)
decon-cli crates/decon-cli/ Command-line interface built on decon-core
decon-py crates/decon-py/ Python bindings via PyO3

How Python Bindings Work

The Python bindings are a thin wrapper around decon-core โ€” no detection logic is reimplemented in Python. Key files:

File Purpose
crates/decon-py/src/lib.rs PyO3 wrapper classes (PyConfig, PyTokenizer) and functions (detect, clean_text)
crates/decon-py/python/decon/__init__.py Python module re-exports
crates/decon-py/tests/test_parity.py Parity tests ensuring Python โ†” Rust equivalence

The detect() function releases the GIL via py.allow_threads(), enabling full utilization of Rayon's parallel processing on all CPU cores.

Building from Source

Rust CLI:

cargo build --release
# Binary at: target/release/decon

Python bindings (requires maturin):

cd crates/decon-py
maturin develop --release
# Or build wheels: maturin build --release

๐Ÿ“ฆ Detailed guide: See doc/building.md for cross-platform builds, troubleshooting, and CI/CD.

Requirements

  • Rust: 1.88+ (edition 2024)
  • Python: 3.12+ (for bindings)

Project details


Download files

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

Source Distribution

decontaminate-0.3.0.post2.tar.gz (137.7 kB view details)

Uploaded Source

Built Distributions

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

decontaminate-0.3.0.post2-cp314-cp314-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.14Windows x86-64

decontaminate-0.3.0.post2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

decontaminate-0.3.0.post2-cp314-cp314-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

decontaminate-0.3.0.post2-cp314-cp314-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

decontaminate-0.3.0.post2-cp313-cp313-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.13Windows x86-64

decontaminate-0.3.0.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

decontaminate-0.3.0.post2-cp313-cp313-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

decontaminate-0.3.0.post2-cp313-cp313-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

decontaminate-0.3.0.post2-cp312-cp312-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.12Windows x86-64

decontaminate-0.3.0.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

decontaminate-0.3.0.post2-cp312-cp312-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

decontaminate-0.3.0.post2-cp312-cp312-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file decontaminate-0.3.0.post2.tar.gz.

File metadata

  • Download URL: decontaminate-0.3.0.post2.tar.gz
  • Upload date:
  • Size: 137.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for decontaminate-0.3.0.post2.tar.gz
Algorithm Hash digest
SHA256 ff0501b3d22353408305b7e66dc2bc14c9a4df7661aefb0773bf69aa8a2f14be
MD5 2a4346189e8aeba6093ea5d1d5e1bf74
BLAKE2b-256 7b3d4b43866b5d807fbfa4768f29b23f147e0c22f6cdb2e3fa99b7583d26e6eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2.tar.gz:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f957957f32ec62e4f7b3dbd13ec7b41f5479aedd9f8d1230371155a900ad040e
MD5 d2e80200b46d0959d8f1b4af64a3a591
BLAKE2b-256 193990e2f620f02e7136aa5f5e46b286aa41814097500ccbacf515dc3d23d5fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp314-cp314-win_amd64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 365202ca131fd99e4d3dbb2703ad2d6931463e10ab799e21e5d798736cc6c1ea
MD5 19143ae1f8f0518a46e1390d7f92c77a
BLAKE2b-256 a862c8d82ae7aa0f3390c0df67253d168cbdfc557daae87b9e26d556dce588a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 670d43f2d4a4a8d78d5711e907aa443a8b4689878aee8e8cf10427ef3d56a61a
MD5 f485a0244ab6de5f9cc199c879376949
BLAKE2b-256 db381b92dd36d5e1840681105cb7a3aab4c4026a49da01d7bde001202a34a9a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bc8047d810353dd3d37aa001144984c2a91ab1021ad1cff2d96961a843818f53
MD5 93ac1aaa84df8493c24533f3d3de1e00
BLAKE2b-256 5f2aa6a62a897518b3f5180a1a302f36c688058b98c8e89a422a8b6a8212d4b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c6e1c017843feb0b8f9e224cae6d4b8dfa8c968f08a940bc00e2951fe1f5f3ff
MD5 f5c9b5148cea0478c909ae28332a254a
BLAKE2b-256 22aeb8a2834afe38bb1eb929a7a10343e7002baa55b5f5179d76243c28bad2f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp313-cp313-win_amd64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bf21e6642434bde239ae3aef47a7706d46518ca3cc1df0a73bd85a0ec67900f
MD5 30eb4e7334325ca63326f052fcb66c3f
BLAKE2b-256 77f1edbe25c35087e0b3f4adb23918e6309df7cd10aff177fd2797e075eae967

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ec5e5cef8d9ff68044641d350f226ae3298e93aaf64f139bdffadd2372782f3
MD5 b28f97a66e0f572eb3b33b029adc989c
BLAKE2b-256 f1145c6d7bad357ec48780a7f84b897a68304a4c04af2128db8d93487e7f81fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 71170a579fff40b0ed5a91320162e54e88057486c5ea4b7a2794ce8beb06f2b7
MD5 50b2d9196ac3420b1e8d1b1f0bfcbfe7
BLAKE2b-256 00a83a6cf954b74c3b61676ad4c613c6f3d95060539e192dc7eb1c78218c724a

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 50d5ad42a4e56cfb3b0f2246720963be92e168a14d75f702f1397831db3f190f
MD5 7f29818baa2c415e2814b3ea6b87f71e
BLAKE2b-256 eb1780635b2c37f8c9f18b80dc8358f843ca5ef9fa5bfe9887cdf43090901d08

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp312-cp312-win_amd64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 436f54e6a33171cac93dc59f10d40f4e0bcd2d0e42a76da7a77cc2f3437e5817
MD5 a70a745633728ec188bbd6f514f2876e
BLAKE2b-256 5df244be32f0709e2fc26b906f974d68d3fdd65c15b3dfec74da7966c38a075e

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 716c4170042fc4f9c797b55ed25559ac6c3ebdec6489972055185d21cbadeaf9
MD5 9e5d712ea920bd9bee63a4ad66847bb8
BLAKE2b-256 6014860f5598d0ea41478beb0f55fa75e8e9f19c98f567911d8194e071035373

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on vincentzed/decon

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

File details

Details for the file decontaminate-0.3.0.post2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for decontaminate-0.3.0.post2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 04034d6cf098027f26a46b59dffa877f722c485fb90abbc8183e2450828303fe
MD5 1497134c171233b0ba2236cc0d0b29e5
BLAKE2b-256 d5be84dcc872f47d01f727ff25a4d7a1ef476fbc29ac1929d24d087b596357cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for decontaminate-0.3.0.post2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on vincentzed/decon

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