Skip to main content

SABCTools - C implementations of functions for use within SABnzbd

This module implements the main sets of C implementations that are used within SABnzbd:

  • yEnc decoding and encoding using SIMD routines
  • CRC32 calculations
  • Non-blocking SSL-socket reading
  • Positional file writing
  • Marking files as sparse

Of course, they can also be used in any other application.

yEnc decoding and encoding using SIMD routines

yEnc decoding and encoding performed by using rapidyenc from animetosho, which utilizes x86/ARM/RISC-V SIMD optimised routines if such CPU features are available.

CRC32 calculations

Also from rapidyenc, which uses the crcutil library and a PCLMULQDQ/ARMv8-CRC folding approach for very fast CRC calculations.

See src/rapidyenc/VENDOR.md for the vendored version.

Non-blocking SSL-socket reading

When Python reads data from a non-blocking SSL socket, it is limited to receiving 16K data at once. This module implements a patched version that can read as much data is available at once. For more details, see the cpython pull request.

Positional file writing

sabctools.FileWriter opens a file for writing at absolute offsets, which several threads can do at once without holding a lock:

writer = sabctools.FileWriter(path)
writer.preallocate(size)    # set the length, marking the file sparse where needed
writer.write(data, offset)  # short writes are retried internally
writer.close()              # idempotent, and waits for writes still in flight

It owns its own descriptor, so nothing outside can close it while a write is in progress. On Windows the writes use WriteFile with an OVERLAPPED offset, because os.pwrite is not available there.

sabctools.write_stats(reset=True) returns totals for every write through every FileWriter and zeroes them, so consecutive calls carve the writes into intervals. Without reset it is a plain read of the totals since import — count, bytes, nanos spent inside the write itself, and max_nanos for the slowest one. Only write() is timed, and closing a file does not subtract what it wrote.

The decoder can write into one directly: pass a FileWriter as the sink argument of Decoder.expect(context, sink), and each decoded body is written at the offset given by its yEnc headers rather than returned as a bytearray.

Marking files as sparse

Uses Windows specific system calls to mark files as sparse and set the desired size. On other platforms the same is achieved by calling truncate. Superseded by FileWriter.preallocate, but kept for existing callers.

par2 verification and repair

Verifies and repairs par2 sets in-process using par2cmdline, with ParPar's engines for the Reed Solomon and hashing work, so callers get typed results instead of having to parse the par2 tool's output.

repairer = sabctools.Par2Repairer("set.par2", extrafiles=[...], basepath="/downloads/job")
repairer.progress_callback = lambda stage, filename, percent: ...
repairer.load()
repairer.verify()
if not repairer.repair_possible:
    shortfall = repairer.missing_block_count - repairer.recovery_block_count
    # ...fetch that many more blocks, then feed the new files in and repair
    # without verifying a second time:
    repairer.load_more(["set.vol000+200.par2"])
repairer.repair()

load_more() exists so that a repairer can be kept alive across a "not enough recovery blocks, go and fetch more" cycle: only the new packets are read, and the next repair() re-checks whether it now has enough blocks without repeating the verification pass.

The par2cmdline and ParPar commits it uses are pinned in CMakeLists.txt.

Utility functions

Use sabctools.bytearray_malloc(size) to get an bytearray that is uninitialized (not set to 0's). This is much faster than the built-in bytearray(size) because the data inside the new bytearray will be whatever is present in the memory block.

Use sabctools.rarfile_rar3_s2k as a native replacement for rarfile via rarfile.rar3_s2k = sabctools.rarfile_rar3_s2k.
It provides a significant speed increase for decrypting RAR4 headers when the password length exceeds 28 characters.

Installing

As simple as running:

pip install sabctools --upgrade

When you want to compile from sources, you can run in the sabctools directory:

pip install .

SIMD detection

To see which SIMD set was detected on your system, run:

python -c "import sabctools; print(sabctools.simd);"

The CRC32 routines are selected independently of the yEnc ones, so they can report a different set:

python -c "import sabctools; print(sabctools.crc_simd);"

Either is empty when no accelerated implementation was available for this CPU and a generic one is in use.

OpenSSL detection

To see if we could link to OpenSSL library on your system, run:

python -c "import sabctools; print(sabctools.openssl_linked);"

Testing

For testing we use pytest (install via pip install --group test) and test can simply be executed by browsing to the sabctools directory and running:

pytest

Note that tests can fail if git modified the line endings of data files when checking out the repository!

Metadata

Release files for sabctools 10.0.0

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

Source distribution (sdist)

Source distribution for sabctools 10.0.0
File Size Uploaded Provenance Actions
sabctools-10.0.0.tar.gz 10.7 MB With provenance Details for sabctools-10.0.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for sabctools 10.0.0
File Actions
sabctools-10.0.0-cp315-cp315-win_arm64.whl CPython 3.15 CPython 3.15 Windows ARM64 Details for sabctools-10.0.0-cp315-cp315-win_arm64.whl
sabctools-10.0.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for sabctools-10.0.0-cp315-cp315-win_amd64.whl
sabctools-10.0.0-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp315-cp315-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp315-cp315-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp315-cp315-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for sabctools-10.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for sabctools-10.0.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
sabctools-10.0.0-cp315-cp315-macosx_10_15_universal2.whl CPython 3.15 CPython 3.15 macOS 10.15+ universal2 (ARM64, x86-64) Details for sabctools-10.0.0-cp315-cp315-macosx_10_15_universal2.whl
sabctools-10.0.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for sabctools-10.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for sabctools-10.0.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
sabctools-10.0.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for sabctools-10.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for sabctools-10.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
sabctools-10.0.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for sabctools-10.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for sabctools-10.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
sabctools-10.0.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for sabctools-10.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for sabctools-10.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
sabctools-10.0.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for sabctools-10.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
sabctools-10.0.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details for sabctools-10.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
sabctools-10.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for sabctools-10.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
sabctools-10.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for sabctools-10.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Total release size: 39.5 MB

Release files / sabctools-10.0.0.tar.gz

Download URL sabctools-10.0.0.tar.gz
Size 10.7 MB
Tags Source
SHA-256 checksum
How to use checksums
b93940bc63b8af55dc9973a7e2cf3075dcb80da103a95339d270e1211376ada3
BLAKE2b-256 checksum
How to use checksums
9e0c9fa34002b45311a88a5bce95bb7e4de51cfb7490d8a3e0663b8d86d5e547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-win_arm64.whl

Download URL sabctools-10.0.0-cp315-cp315-win_arm64.whl
Size 406.5 kB
Tags CPython 3.15 Windows ARM64
SHA-256 checksum
How to use checksums
df2339c1b36569863f3ef8b84156c856cd09827a171c3bf5b279d3dceb8b6b06
BLAKE2b-256 checksum
How to use checksums
837e5900030d4181c9ca03805a4ef65e9ba6c54078f43ebef801f6a1f3da8292
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-win_amd64.whl

Download URL sabctools-10.0.0-cp315-cp315-win_amd64.whl
Size 592.8 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
508b81b397f1710933610365e9aab2fcec8e25c257ea07d94bc46b46fa1ff7f7
BLAKE2b-256 checksum
How to use checksums
a3e2fb75a392ceed3966437d3171add1303047dac45d416d2d09a7a45fc52900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp315-cp315-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
351523d8cd0aa28164e3a2ed64c5a5a23d1bd4efd92d03679aa96a6194952f26
BLAKE2b-256 checksum
How to use checksums
6d8a47f9eb169e7a265326efc7ff72b2acf239f83d36e9b38b359953646f9630
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp315-cp315-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.15 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
225ee3408eb3b4e203b0f464b2c9b32349e843b2d441bf6a45f91e8d8b7733e4
BLAKE2b-256 checksum
How to use checksums
4f2923bb7fa0cd559e232b6f9ee59b0298b3b934733fc49d830798bd69a4a37f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 687.9 kB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a01738a17ab56ba851f3757e2a497ddef1f3bf1144e6cf22e9279405ad67512d
BLAKE2b-256 checksum
How to use checksums
fc2db10250a93fbaaa8161acd4d7d9ed047207917c8c769b8be6ae6eac3d1a77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.4 kB
Tags CPython 3.15 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
32f4d13c7d230bf0ba3ae4a954dc1209a1c49b5e305cb52d1d35a6901ca10e19
BLAKE2b-256 checksum
How to use checksums
7990918ea223a5d8a3e64b3cac50914c69c5be1f5634365d7c772f50f522c75e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp315-cp315-macosx_10_15_universal2.whl

Download URL sabctools-10.0.0-cp315-cp315-macosx_10_15_universal2.whl
Size 935.2 kB
Tags CPython 3.15 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9e612926ee46ad395ec7e963595250f5aca1bdd0db7ee16add282939e3544a98
BLAKE2b-256 checksum
How to use checksums
1c21efbf59816037cb5e601b91fadc2a8334bda3e944c8f48dfc86b2d97b1613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
202a2fc53322b967de7337e6beda0251776da0b9ec25a35e9ef182cdc2e397e8
BLAKE2b-256 checksum
How to use checksums
dd19bf6bb916b62ea1007e6cd88ec8f2be092d3fea3a8df8a34c72d07cedb046
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
b37dd7afbfc6a1da78700bbcfd0d222a941d51b4c2c7592f5b11bac9cb01c992
BLAKE2b-256 checksum
How to use checksums
2a18de554139efc29cf46a36735b1d0383e05404a913823bcf3a88b133207854
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 687.9 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4c16987d9865b860a6390854ae98c6fa5b341e97813b9f28790428e527e8409c
BLAKE2b-256 checksum
How to use checksums
b95ecb09b9187f3b4d9b34596fed9c1ddab5174724f4e08532217b3638f4fe6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.6 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
58bb717ea23a9dd3156ec5bfeb2968b3d337a9e034b85d911f470167f5ba4716
BLAKE2b-256 checksum
How to use checksums
7ffc7d88359a5e99e214865d4c7684e827b71fe865e15ba210362d3eaaaeea04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c53c3142f59d635a9e9d8591b368c6bbe5cd9ed7b0a219a471e1f0a3fa7b8637
BLAKE2b-256 checksum
How to use checksums
63a5de9f0b7e9ffd2aaf098029f25b19d37e29a80c3a747d818170a67bbbdb20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e8751829ccdaac1985c3b4e0b17e56e2e3893f353c625193e0d26aedd395adf6
BLAKE2b-256 checksum
How to use checksums
45103ab8f429986c26a64fd59c287568f92caee4f5e3303c4aeaa21fb0badc76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 688.0 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1c199f511810f1500d295722ecb40d00eef2be7e9c13ee602f4631c0de20ff21
BLAKE2b-256 checksum
How to use checksums
bbc538b5d35136a5e6d4615ce71aa9e9e2556853d5b9bcbaa4468317777d0e25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.5 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
43d6592fde351c7d12df41153b31f1350bbf6087e931c8c58d721382156444c7
BLAKE2b-256 checksum
How to use checksums
1b1d16f10178e635d5fcc4f9aa4b504edb36f44ebd1460c91935a39021d5792c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
742a35c364d1e1375a488779cc9c6b51e16a33597d8b0d1edf74fea632753bb3
BLAKE2b-256 checksum
How to use checksums
49f12d586e8053058e79ec0187b2208098bb4922a4a9f0a39a47e9cec460a507
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
29ddd88614d709b77bad01e189b2defb91608debd9f9bac2ef875b5cc2579c18
BLAKE2b-256 checksum
How to use checksums
9c1d919f9a46429e3677c21b54c903ee93a60f64db86208884deb63bf12d3909
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 688.0 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0295b1504c1a7a0591355736401ab517b44d2c954a957e55df674d1d960fb1df
BLAKE2b-256 checksum
How to use checksums
2636502c46a5d5a0ba0a98405fa4ad78d363079b55bd5a9a9274b1d5d00cbf38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.4 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
aabe1f8cebcbe4b3f9d8b83b7c708131477d97002324820467a7998905354cf6
BLAKE2b-256 checksum
How to use checksums
ab2176607f7b29bc7e5f9c8eb51979e53b86585623f1cc95bc2fe8743e49ca79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3ebe2c9b989bda13bfc944f929cdaea74796f4f1a274ae6b14cabcfbdec14b8e
BLAKE2b-256 checksum
How to use checksums
190ce3a33d12709c1316f700070a9ecea0e9d741d3dd3a838fd1ae964f8ae7bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
1d6d714ff9b981b822009fe21de84c8c16a8a32c88a5adde67a2de393e9caf1d
BLAKE2b-256 checksum
How to use checksums
f5531ffd498c2ce7af26a15400200982868227bd7e94eff39e5eaa952b7f6428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 687.7 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
97043f3187ab41659d2f2e255c5df24a6e4e003458d4fddb318e469921ca1023
BLAKE2b-256 checksum
How to use checksums
4843776444c0d76a68d8e1f1199130e91dec138e58a347f60c1ffba0d089782b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.5 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6f59664bcbd1992a412a78405fe75473d5274b0289e0e168191fd1d767a277ee
BLAKE2b-256 checksum
How to use checksums
52a2226e7ecc48692e6e189f3f73ea55cc4e9c88324e248cfb2e766d363b1452
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL sabctools-10.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
511d6bf0434dab19a2d681d953f78ab0432937cbf671b8c19b11f6aacbb9d409
BLAKE2b-256 checksum
How to use checksums
08339da00b7aa477f40e531af7025f1aac8a82e1c6d120af835dc02f6b9cc8f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL sabctools-10.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e592b9578ead9abb305c97da82244e8eaceb27c0fc65bffe131132973c593afd
BLAKE2b-256 checksum
How to use checksums
f478c5eb9ca0278806577eff9e4d8daa09e1f9ed9dce6b412dd5f76e5ba3a60b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sabctools-10.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 687.8 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5de19602596d3dceb2326eec61b6c2a52171b6eda28f0d81b48ca30314fa2b5f
BLAKE2b-256 checksum
How to use checksums
e4b959221350fcddb1273fed156435097ccd73e72c6031243a378368941ef5ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / sabctools-10.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL sabctools-10.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 535.6 kB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
52f33d95f235810c350b20dd0cf8389af7ed404121a69696e6355d5a195132e8
BLAKE2b-256 checksum
How to use checksums
8887e0235d04a0a388de917fdc07c3b245db49d471fc295deaf634d9f908d3c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Security for sabctools 10.0.0

Provenance

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

Full provenance

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

Select from 28 files

Attestation for sabctools-10.0.0.tar.gz

PyPI Publish Attestation

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

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

Transparency log

A note on package security

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

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

Release history Release notifications | RSS feed

This release

10.0.0 This release

28 release files Full provenance

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