Skip to main content

Native Python bindings for Betterleaks

Project description

PyBetterleaks

PyPI Python License Wheels Docs

Python-native Betterleaks. No CLI wrapper. No Go toolchain in your runtime image. No runtime subprocess.

pip install pybetterleaks
from pybetterleaks import BetterleaksConfig, Rule, scan_text

config = BetterleaksConfig(
    rules=[
        Rule(
            id="internal-token",
            description="Internal service token",
            regex=r"INTERNAL_[A-Z0-9]{16}",
            keywords=["INTERNAL_"],
        )
    ]
)

result = scan_text("INTERNAL_0123456789ABCDEF", config=config)
for finding in result.findings:
    print(f"{finding.rule_id}: {finding.secret}")

PyBetterleaks wraps the Betterleaks Go engine through a tiny ctypes JSON ABI and returns typed Python dataclasses. It is built for CI jobs, Python services, notebooks, agent tools, and Docker images that should stay simple.

Status: alpha. PyPI wheels are published for CPython 3.9-3.15 on supported glibc Linux, macOS, and Windows targets. Musllinux/Alpine remains unsupported for the current Go c-shared design; see Platforms.

Getting Started

From a checkout:

uv sync --all-extras --dev
uv run python scripts/build_native.py
uv run coverage run -m pytest
uv run coverage report

Run a scan with the bundled Betterleaks defaults:

uv run python - <<'PY'
from pybetterleaks import betterleaks_version, scan_text

print("Betterleaks:", betterleaks_version())

result = scan_text(
    "AGE-SECRET-KEY-"
    + "1QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7LQPZRY9X8GF2TVDW0S3JN54KHCE"
)

for finding in result.findings:
    print(f"{finding.rule_id}: {finding.secret}")
PY

Expected output:

Betterleaks: v1.6.1
age-secret-key: REDACTED

The example secrets are synthetic fixtures.

Why Not Subprocess?

Shelling out is fine for one script. It becomes awkward as an SDK boundary:

  • process output becomes the API contract
  • quoting and path behavior leak into user code
  • Docker images need extra binaries
  • errors are process-shaped instead of Python-shaped
  • async and agent workflows pay process startup overhead

PyBetterleaks keeps the Betterleaks engine native and gives Python an importable API:

Python app
  -> pybetterleaks
    -> ctypes JSON ABI
      -> bundled Go shared library
        -> Betterleaks

API

from pybetterleaks import SUPPORTED_GIT_SCOPES, betterleaks_version, scan_dir, scan_git, scan_text

print(betterleaks_version())
print(SUPPORTED_GIT_SCOPES)

text_result = scan_text("token goes here", validation=False, redact=True)
dir_result = scan_dir(".", config_path=".betterleaks.toml")
git_result = scan_git(".", scope="worktree", config_path=".betterleaks.toml")

scan_git currently supports local worktree scans. It validates that the target is inside a Git worktree, skips .git metadata, and does not invoke the Git executable.

Programmatic config uses Betterleaks' TOML concepts directly, with helpers for filters, validation results, common rule shapes, and relative extend.path handling:

from pybetterleaks import BetterleaksConfig, Expr, Rule, Validation, scan_dir

config = BetterleaksConfig.with_defaults(
    rules=[
        Rule.regex_rule(
            id="internal-token",
            description="Internal service token",
            regex=r"INTERNAL_[A-Z0-9]{16}",
            keywords=["INTERNAL_"],
            filter=Expr.min_entropy(3.5),
            validate=Validation.needs_validation(provider="internal"),
        )
    ],
    disabled_rules=["generic-api-key"],
)

result = scan_dir("src", config=config, validation=True)

Async wrappers run the blocking native scan in an executor and request cooperative cancellation from the Go bridge when the task is cancelled:

import asyncio
from pybetterleaks import scan_text_async

async def main() -> None:
    result = await scan_text_async("INTERNAL_0123456789ABCDEF", timeout_seconds=5)
    print(result.ok, len(result.findings))

asyncio.run(main())

Docker

FROM python:3.12-slim

RUN pip install --only-binary=:all: pybetterleaks

COPY . /app
WORKDIR /app

CMD ["python", "scan.py"]

No go install. No Betterleaks CLI. No install-time binary downloads.

Platforms

Target wheel matrix:

Platform Status
Linux x86_64 manylinux wheels published
macOS arm64 macOS 11+ wheels published
macOS x86_64 macOS 11+ wheels published
Windows amd64 win_amd64 wheels published
Linux arm64 future CI capacity
Alpine/musllinux unsupported; no wheels published

Previous Alpine experiments failed while loading the Go shared library through Python ctypes on musl:

initial-exec TLS resolves to dynamic definition

This is a Go + musl shared-library loader limitation, not a missing Docker package. The same failure reproduces with Go c-shared and a Go c-archive linked into a musl shared object, so the project will not publish musllinux wheels until that loader path is fixed. Use Debian/Ubuntu-style glibc Python images, such as python:3.12-slim, for supported Linux runtime images. Track musllinux work in issue #1.

Local Development

uv sync --all-extras --dev
uv run python scripts/build_native.py
uv run coverage run -m pytest
uv run coverage report
uv run ruff check .
uv run mypy python
uv run --group docs mkdocs build --strict

Build a local wheel after the native library exists:

uv build --wheel

Run the Docker packaging E2E:

bash e2e/run.sh

Verify the published PyPI wheel in a temporary virtual environment:

uv run python scripts/pypi_smoke.py

Benchmarks

Synthetic benchmarks live in benchmarks/:

uv run python benchmarks/bench.py --rounds 10 --files 50 --secrets-per-file 2

To compare against a local Betterleaks CLI:

uv run python benchmarks/bench.py --cli --cli-path /path/to/betterleaks

README numbers will stay blank until they are measured on release hardware. No fake charts.

Security And Supply Chain

  • Betterleaks is pinned in bridge/go.mod
  • the bundled Betterleaks pin is documented in docs/betterleaks-pin.md
  • CI checks that go.mod, go.sum, and the bridge version constant agree
  • wheels are built in GitHub Actions
  • release artifacts get SHA256 checksums and checksum verification
  • GitHub releases attach SHA256SUMS
  • GitHub artifact attestations tie wheels back to the release workflow
  • PyPI publication uses trusted publishing
  • runtime installs never download native binaries
  • wheel smoke tests import the package, run betterleaks_version(), scan text, and exercise typed config plus async wrappers
  • Docker E2E installs a locally built wheel into a no-Go runtime image
  • post-publish smoke tests install from PyPI in a temporary virtual environment

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.

pybetterleaks-0.5.0-cp315-cp315-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.15Windows x86-64

pybetterleaks-0.5.0-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.15macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.15macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp314-cp314-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pybetterleaks-0.5.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp313-cp313-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pybetterleaks-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp312-cp312-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pybetterleaks-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp311-cp311-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pybetterleaks-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp310-cp310-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pybetterleaks-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pybetterleaks-0.5.0-cp39-cp39-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.9Windows x86-64

pybetterleaks-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pybetterleaks-0.5.0-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 407fa929c97dc92410fc2e5fa6c1f1087f840f2949384faf15a65b1ea7e9a753
MD5 2d3d06ac43c896e1ca554245318cf3f1
BLAKE2b-256 819982b3cdf80c2316ca32312e49813cbf1a6f6a4c65c384cdbdc5dbc3bfd9a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp315-cp315-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3250fa63c76e3391cd3e755a28983948ee49269a9a2f64885c3c74e84db0e4a0
MD5 9893264d0fc382ac40849e0b576fac35
BLAKE2b-256 caf3ae808a91225a5b2f1eb8d182a604f2dfdff2a25696b30b011b3eb1b7e43c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 546aba7464f69a162274fc12dde7dcf3f807abdf050f4564c1a14582b4ebf9d0
MD5 a1abd9a3fa66021cf0cd6c08f227827b
BLAKE2b-256 76203a1aa8077477aaee634e2fdb401a36723a565da2e133186e551f23adc5ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d475916cc47aa18828c1b565f46d7a07ced6d92cb4a91eb6e3ef93603e7e3bb
MD5 32662af595a54dad5c683696b1c5a6b8
BLAKE2b-256 18b86faf09e2ceacf58395f1f152ad43bc4b3b3aea2c6185f488ce6b7a0be006

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp315-cp315-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9284a9a05896e9f525fa6dd3900ab0a8bb7cdcfe2b6c767d8c887a5c4b698975
MD5 6f9f0265fa5ae6d8e44fb1024ef3058b
BLAKE2b-256 63a14d88c79b9f94aac030b3ee44e8568891a7a573d71b42d8353f36616eabf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ea4d0760d46dd75c06aae4e8f8b13cb56e5fa72efb88075a8ef2e298b829d211
MD5 e70ac3def1aedd67f6354ab4ce688d7b
BLAKE2b-256 0606b0dc157cf3b1203f9487d3da1ca056cc637a6e366bd298ae0947c49478c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1bfd752f4187eb7dd4e9f9c7cb31b8ea536f968ea617deef880bf455abd81e14
MD5 838f36bec55a97093e9e848ff452ae44
BLAKE2b-256 b93f33bab2b988b494171264a395675441707975d61c7b093ad6fb2e63303578

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4efde1cbe663afadd6e2be3d2411baa05b96a25a917f48e075aefedc2c23df51
MD5 3566bb8b6619a9c34f72c38dbd7b2792
BLAKE2b-256 82c92712876ec3ab40f2818b0280f46a35ed716a39bf2d8a7270dd860f32b907

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2dd86583e11cc6d8630ad3c50d93315a4f753b5f551055ba071e1a8278dc298f
MD5 ee19fc8600750a70f35fe1465d6e3068
BLAKE2b-256 61abf0852b65325f87c50bd0df76d62496259455b3d94fb0249879c4632ed8ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6f7d09eca2a405ca82d8a0d37785cea81e7b67fd70c06f9e7f9a410b2a231c00
MD5 ca02ae0421cf849a21052ac04baaf56f
BLAKE2b-256 d6b70c06342ebdd6388e7bb9f5789bd3d82c3e56b0fa3b7244c5a38374dda7d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d00359f552f9291826cbf77ba3d1ef4ec4b6789d676db394bc0dc6aa7f21a0bc
MD5 91a14661a4d5c8926310dd1875e99aab
BLAKE2b-256 f75b2aa836471c77a056a3e39af2fce31d4b78ab4fef989599a286e65f6a957c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c73462c552183b5c1449c2407e7ed1bd9ab29ead245d6147b9f0c5698f3ba5d
MD5 db5eb7b2164bdc69975fb8b0e5a752e9
BLAKE2b-256 fe91867a3f55d64d78c9e00e3c3a502fe942b97dfe1a066926145e1b6e4b4ca1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c5da53b326883142d73520622466628885dd5d90acab4e19064e021bc40d7a25
MD5 ea4d2fce4b527cd5d921864695f3c860
BLAKE2b-256 8e34c200a9a544768740d069367b69b422c0ada30c2632a442404b3bd2af5345

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 300aa48aaf0e0f38cf56f4d047c5e49e0af918655d8cd570b46d353d761f78a7
MD5 994eb97d797859d1e4acf740f68a786e
BLAKE2b-256 80fc6919155ce27e2fe1681f80b1f9aa1b92fbabb5fec432434a8c20b5231226

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 237799087cd85f7f07a8756aab9513460e5160a135714c344284b6cfed1327a2
MD5 2fa157728c30b1788f9f90969724c6f3
BLAKE2b-256 960df902d328666a844d4430556d3ea61dbe12a623117941f942e3149fe76669

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f544da47dfec5cb0c70faec76e7621de29094595d34a26d8e63cf97e5f65775
MD5 26630908039af2533a1027e9db2e5b83
BLAKE2b-256 324d9b6bf75d101caa2572a7d7c8675afdede17a68770416d02df77abebcada7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d83428a23728148fe4bba6921a1ca7434bf4f9e0f0a8bf6723a78deda4c12842
MD5 71b3f0f3785fd02bf21316b540f04568
BLAKE2b-256 762d46d977b55f332ed6cbaae084fbd9b2e35e74a082397fe7b530d87ee10f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 5b1346f78a00d92232fec1ed04ae1fb3c36b9ab90b5183a154080594d0c56181
MD5 0a39fb06b5db2aef92905281a9702133
BLAKE2b-256 447b6103a464acbdc53a680d02c429a6fb4970ca9ae7d3626e78cef436b97be8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4a5fd07cf333f682acd8f13332675d54ea5f8572776b0e8a23f9c7771779cf64
MD5 887474b359750dcb7ba256e39b7a1d5e
BLAKE2b-256 0e9ca7c0d7e75c617b16eed9dc04de6f12e5c2c502595cebcc4a4504aa27ba38

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2952dd543e29f7dd3565a5bc3a394139441eb191143a3cee8b22370c6dfe4e19
MD5 7dd15fe3b4cb37821b896fdfeac1c31b
BLAKE2b-256 8656bcdf4674312943f95ae0d22d2e33c8f3f0693683c66bc978fca1297a22c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 36f73655261f0850849460a187bf75604b12d16583ade177fd91ac89d3f65e60
MD5 66740afc45991252131c0eb296a77fe1
BLAKE2b-256 f8bbb6f3d8c24fdd4c99c7832bec546b853a936573cad169e8a0590911e48f8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 771c1171970672743729f6960acad486a3fa3f0fef1e76c2477fa8bf9ec9256c
MD5 bd7027bba8046c1eaeec3c0bf8ec9b86
BLAKE2b-256 57755fde68af05234468fea52b3f73248e99a54773160d1795425b42b6b6b338

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b7f818607c491870cc2dcc5fd530c3a821c864c6e59ee6cbac11435df7fcf4df
MD5 44eb47009c40d472c10ea53ded873a4f
BLAKE2b-256 2c8c3f3b05b208c2f145fc3eedc9a5709007c153e3bb69d8f9016404d6148e7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41920cf84c9c851cd235c4be5852919b682a8730f4cdf1b278ee375602de18df
MD5 de34932b123dfe6dedea1284a209b616
BLAKE2b-256 ce7b10981b4fb6fa5895b51b5273fb2155810f0fd1cf66084bdadc006eedc49c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4e2a0a5692957e4a41b8a5499561d4bef1aada8822f0bda64e65ff366a3fd1ec
MD5 52686f2378378f1b574041173194ecf3
BLAKE2b-256 0946b86b22aba68fca4aeeb9772c40f0f8934dea5d521aba222e1ea9c911e9cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 c9259b8f8b44f17bb49a604172284b567e9bafafe80e7fc368b5c10d8bf8f820
MD5 b6e48cbee16315bd05189fbb9b9b7fa8
BLAKE2b-256 158cef4638bc0a42726efd24fdf5ff39cb54e1da638efe4a08ff759cc7afabc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ea03a329ae2f2d4953d067e1dab0cf7bdd3965b22bbfe4e99a979f89a54148d7
MD5 09f65043ab32f5412098133a7caec4d1
BLAKE2b-256 3ba3e44b4fc0182ec45aa8b3033970e78271ead72c6e9d85aa955b1d187608ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_x86_64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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

File details

Details for the file pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ebb593cdbf273c9c6f4d94d0fcca4eb1d7c8f6d9431c015f44324eafc261533f
MD5 a598f82d8564f9282169c99afdd77cee
BLAKE2b-256 1e1aeeca02cd0b83aba094632beaec8dfd51c421e212b97b164d497827cebdc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.5.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on roymezan/pybetterleaks

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