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.14 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 pytest

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:

from pybetterleaks import BetterleaksConfig, Expr, Rule, scan_dir

config = BetterleaksConfig.with_defaults(
    rules=[
        Rule(
            id="internal-token",
            description="Internal service token",
            regex=r"INTERNAL_[A-Z0-9]{16}",
            keywords=["INTERNAL_"],
            filter=Expr('filter.containsAny(finding["secret"], ["_TEST_"])'),
        )
    ],
    disabled_rules=["generic-api-key"],
)

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

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 pytest
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
  • 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.3.1-cp314-cp314-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.14Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp314-cp314-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp313-cp313-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp312-cp312-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp311-cp311-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp310-cp310-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pybetterleaks-0.3.1-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.3.1-cp39-cp39-macosx_11_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

pybetterleaks-0.3.1-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.3.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bd09f0579e2ba8951527219f7fa1c9832339be461541d2703ac0cd4db65e4bad
MD5 57675b671079a3dcee7aa81bffa9a265
BLAKE2b-256 62f2e3c07c6aa0823660b82b779d14b7c49b032a70a7aa79e66b178da02909ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 69b960d38ea64f6b6ebd92d7e71dd6386bb637ed3e8ef8440d4c949157e580f6
MD5 e793c1fb4161bf9afb75d013f736023a
BLAKE2b-256 ae1399f6bb0cee4fb075db39de6597aec48c9e741e61f598c3d1c8bf6c48fe27

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7eff0fb8e0302b0179dc982bb0475faef7a7b193d400b25658428bd3fc7357f8
MD5 fb0c425e75c3f08255dcec89a8707ee0
BLAKE2b-256 f7309d2dfe304893f4897ac2f2fa67e07f46445439cecb54fac2e7a6e26c7f81

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a876ed3ea2882d9e39a0620becb7e5f9795156ec049696d5f88a5e70b05d5b4
MD5 37f2c6de07fa4254840fa06756ddf027
BLAKE2b-256 03647acd881e73e9a0742ca00b64906558f8ab033c1ea11dbd32575c280c5bc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0dc393f428ec225cd705f0330b3f3f35fc14c9b747e73a5e38eaaa2a8616f5ec
MD5 8eca982f967e21a8dbd659986b4c6f32
BLAKE2b-256 2ea4ba095fc9e1468b3301e64aa7279e30102234625276ef6c47ed1b780854e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 57600838b76c18d732bab20af1734c463a73d4eccc869efedf544682c1e48ec2
MD5 0da986187ac73509f4ad0853ed636c8b
BLAKE2b-256 a464e081dd877a18f3420955685e71ab4825a0a44eb06ad71d2dc563150fbba6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9a93d5ed1e33f62659de01d08507c3d8a548a12814669b92e00efb6fb8647359
MD5 d1bef6813a7882556d949e15c8dd57fe
BLAKE2b-256 621d005317f26b3eaf2b45bf5834b119c7169ccfd57a5126fa1e3d21ff4287dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8f49edaae1a4281e97061fa8f65d8142f05358c9e1458dabde7a1a0e7b35d2a
MD5 1d4a7ba67d76a35cde0b22edf6164021
BLAKE2b-256 3168d2ce77b124aa91feabdb1e51efcddf1ae7c635524307b64f3ddc602b0524

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cadd8999f49125b5278aa39420b6e99e9099cb16c7ea88c1c2beb22387f624c0
MD5 584f87e9231369d82078abbd3cec99d2
BLAKE2b-256 9489e856273978ea3d73592299171fcde0bd7ef48443dc03d4dfb52ef864b0f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ed619c2754aa5454e6269bed9f2ed53ea522befe267404901864d718788adbfd
MD5 1e9cd4b7dd727777c43c9dc7f15f7e58
BLAKE2b-256 51b7b3e99be0c5f74165d13af99c675fc4243b6556ab633ca134c77a281ce0f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1ca4f6adec045ccfb259fed014a193f52d35b45aeeccf3df132d00066fe3b586
MD5 a8b3fef75abb3a05fc6a3879ce55f40f
BLAKE2b-256 19774ba185f23bfab32fad9da43ea51a1f2829ecbde1b915652e0a54b4a26917

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eca832562467028f36ba8e1c376a959c762f583486726d5f208064e7388f68ed
MD5 f6e08451bea81e4b91bd90f0783508c4
BLAKE2b-256 13fefc20a56a4a5ae04eeffdac82cdef01d912abbd0362d80e264a4dcaca568b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4edafddadc87ef164f7e9f193ec962908d5eb2670548e2b3d6d0626e757f44a4
MD5 c3074539edfc36346adab2601500d04b
BLAKE2b-256 70931af1fc0b607d18b133e01225706e17a6816da926e2ad125e4c694f844720

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 7ca802852682fc535d387cc63a8661294fed534f685d12d280d3b2ca17a27640
MD5 94b512e2d91c295b343d029dfa79a22f
BLAKE2b-256 76d172bbeeac65462d827d5d0639a8a452c5493e7da2795563eb3f4814928d38

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 bf34e238708fcf7e22571b1c66bbbfe08793e2815ef53f1832d59040e198ca9b
MD5 8a22dbfc166acb24cc5c4ea7e114a557
BLAKE2b-256 94f774e526148af76520ff895c532758066f52433d45fadabbedf71b476c1b5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84d6ecc55e6cf80289a676ae536e022f5b5172ad20f48c535ca8d1b10f7a562f
MD5 8ce30bd4febdb186bddb9b75410beeeb
BLAKE2b-256 c9c29b420576477c85d115c70a2eb744b1524735cc9eea3d360d2bc3ea5111ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3ce91f9d088a485e5f33230f279b1353bd0fd8d4c494724c345db68f1e182f1f
MD5 c7a8466b9443a47f55d57036c5486ddf
BLAKE2b-256 0b4e7dfa295fcc4c71a2ec3bf3333d74ad75aad36a79826460fbd6e24e17addb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ed5ae46e40d483ba82f60f01ce2b9d851e22de72e5736a9eaf9201d9bb8972fc
MD5 703a266bdb2284543cfcf62d8a090fa1
BLAKE2b-256 ef579e2c9cb87acaccbb6443cfe144eba6a24076f2c9fdba64115c1f0c149096

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3d3701eab3ea737b8cdcfbcd0d05c92a6509757c026ae360eeadf7f580b06b19
MD5 19ab023145d0431c9bc0439a73dd1e70
BLAKE2b-256 2cc3b062e8481ad60b9e2e2ca71bc4e3ab8dd7d7eb9dbdf00b6f0141e861cc1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d14365c2b557e96b939c18942302f982aeae20077d76ff1215005bf493c57644
MD5 5d3e59e0b40bb6afaeceb43e258a3f80
BLAKE2b-256 eea8a09a7a580fe944c82279b84806231a9268ae95294826676e353ceb175ed0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 913adfb9cbf52005ee2c7b2ed04359fcbb2b2db2803ce4ef14e522cc76117308
MD5 585a4e616943e3080ce5414ca28d0186
BLAKE2b-256 3513abbab02f1751fdfd715a41079ee68f087d56d7dacaabe157e9e7e2749131

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 2bae90092782d738d5a745c5d526f9c2d99b9de56731938cc68b8ad32227e99f
MD5 7c02ab68865065ea108e9a07136ee2d3
BLAKE2b-256 1d5967099e4e30697eea8d8439b615d1bd23397d21e4c92c00885fee791fd548

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4aa75b9a903bc693941aded82c32d5599119c26f226be91aee82d51a3b5120c1
MD5 0e2a026ff439f4405d4e1266bd52c026
BLAKE2b-256 fe61aa993ca611177ad9dfbd58b8c943fce44ab9e90006e0a648d8dacbe5d6ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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.3.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pybetterleaks-0.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c73455e8e602d65c0396ddf750a3c4931548d92f683b642793b20b04122b31b5
MD5 9955e2affc913e61a077428981bf4b7b
BLAKE2b-256 9a59bd805e26e14720b3e6ef9a671687e8d45a12308f63566c12f85f97166058

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybetterleaks-0.3.1-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