TurboFastApply
A drop-in, accelerated replacement for pandas.apply().
Status: feature-complete (all 8 roadmap phases) — numeric transforms
detected as linear/abs (x * 2 + 1) and row-wise DataFrame functions
that are linear combinations of columns (row['a'] + row['b']) run
through genuine native fast paths, ~6.2x and ~4.6x faster than plain
pandas.apply() on 1,000 rows respectively (examples/benchmark.py).
A dedicated small-data optimization pass (dedup'd array/Index
construction, replacing numpy scalar calls with plain Python arithmetic
in the hot verification path, avoiding redundant column-selection/NaN
scans) also closed a real regression that used to exist from 50 rows
onward — see "Benchmarks: previous vs now" below for exact numbers. A
follow-up pass replaced the row-wise path's real per-row pandas Series
construction (for its correctness-required probe/verification rows) with
a lightweight dict-based stand-in (_RowView in decide_row.py), cutting
that fixed cost by 3-4x and lowering its engine="auto" threshold
(MIN_ROWS) from an interim 300 back down to 100 — now a genuine win from
50 rows up, not just parity. See "Benchmarks: previous vs now" for the
full before/after.
Arbitrary callables that don't qualify get a sampling-based threaded
fallback that only engages when actually measured faster (helps I/O-bound
work, correctly declines pure-CPU-bound Python). Everything else falls
back to native pandas.apply(), so .turbofastapply is always
correctness-equivalent to it. See claude.md for the full roadmap,
including three real correctness bugs found and fixed during hardening.
String ops (str.upper/.lower/.strip, .turbofastapply.str.contains()/
.replace()) are implemented and correct but not faster in practice
— benchmarked from 500 to 1,000,000 rows, consistently ~0.6–0.8x plain
pandas — so they're excluded from the default engine="auto" and only
reachable via explicit engine="native". See "Options" below.
Development
The native extension is built with PyO3 + maturin.
python -m venv .venv
.venv/Scripts/activate # Windows
pip install maturin pytest pandas numpy
maturin develop # builds the extension and installs it in the venv
pytest -v
If maturin develop fails to launch on your machine (e.g. maturin.exe
can't load api-ms-win-crt-*.dll because only the GNU Rust toolchain is
installed and the MSVC Visual C++ Redistributable is missing), use the
fallback build script instead. It calls cargo build directly, drops the
resulting DLL into the package as a .pyd, and links python/ into the
venv via a .pth file (same end result as maturin develop, so
import turbofastapply works from anywhere without setting PYTHONPATH):
./build.ps1
.venv/Scripts/python.exe -m pytest -v
CI (GitHub Actions, .github/workflows/ci.yml) runs on Ubuntu with a
properly provisioned toolchain, so maturin develop works there regardless.
Usage
The accessor is directly callable — s.turbofastapply(func) is the primary API,
not s.turbofastapply.apply(func) (kept only as an alias):
import pandas as pd
import turbofastapply # registers the .turbofastapply accessor
s = pd.Series([1, 2, 3])
s.turbofastapply(lambda x: x * 2) # identical result to s.apply(lambda x: x * 2)
df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
df.turbofastapply(lambda row: row["a"] + row["b"], axis=1)
# Whitelisted string methods and regex ops (.turbofastapply.str mirrors
# pandas' own .str accessor) are implemented and correct, but not
# faster than plain pandas in practice — see the Status note above.
# They use plain pandas by default; engine="native" forces the compiled
# path if you want it anyway:
names = pd.Series([" Ada ", "GRACE", "margaret"] * 50)
names.turbofastapply(str.upper, engine="native")
names.turbofastapply.str.contains(r"^GRACE$")
# .groupby(...).turbofastapply(func) also works — a drop-in for
# .groupby(...).apply(func) with the same engine/verbose/progress_bar
# options as everything else. engine="auto" tries a threaded parallel
# fallback first (measured, not assumed — same approach as the
# GIL-releasing-callable case above, just chunked by group), for
# GroupBy objects with at least 800 groups — a real, ~2x+ speedup for
# GIL-releasing callables, verified never to regress a CPU-bound one
# even at that scale (see claude.md's P9 section for why the threshold
# is that high). Below that it falls back to plain pandas immediately,
# no measurement overhead paid. There's no *native* (Rust) GroupBy path
# though, so engine="native" raises rather than pretending to
# accelerate something that doesn't exist yet.
df.groupby("a").turbofastapply(lambda g: g["b"].sum())
Options
s.turbofastapply(func, engine="auto") # default: try the native fast path, fall back silently
s.turbofastapply(func, engine="pandas") # always plain pandas .apply(), skips the eligibility check
s.turbofastapply(func, engine="native") # require the fast path; raises ValueError with the
# specific reason if func isn't eligible, instead of
# silently falling back
s.turbofastapply(func, verbose=True) # prints which engine was used and why, to stderr
s.turbofastapply(func, progress_bar=True) # progress bar for the pandas-fallback path only —
# the native path is one vectorized call, nothing to
# report progress on there
Benchmarks
examples/benchmark.py compares plain pandas.apply() against .turbofastapply()
on 1,000 rows (median of 50 runs, 5 warmup): the numeric-transform case
(x * 2 + 1) lands at ~6.2x and the row-wise case
(row['a'] + row['b'], notoriously slow in vanilla pandas since it
constructs a Series per row) at ~4.6x. It also runs the string case
both ways — default engine="auto" (matches plain pandas exactly, no
native path picked) and forced engine="native" — to show directly why
"auto" never picks it.
Benchmarks: previous (PyPI 0.1.0) vs now
The 0.1.0 release published to PyPI had a real regression from small
data up through a few hundred rows — turbofastapply was slower than
plain pandas in that range, not just less of a win. A follow-up
optimization pass (not yet released) fixed the redundant work causing
it: deduplicated array/Index construction that used to run twice per
call, np.isclose()/np.round() scalar calls replaced with plain
Python arithmetic in the hot verification path (measured at ~38% of
decide()'s total time by itself), and eliminating a redundant
DataFrame column-selection + a redundant .isna() column scan in the
row-wise path. Median of 100 runs (60 for row-wise), 15 warmup, timed
against turbofastapply==0.1.0 installed from PyPI in a clean venv vs.
the same numbers from this optimization applied locally:
Numeric path (s.turbofastapply(lambda x: x * 2 + 1))
| rows | previous (0.1.0) | now | previous speedup | now speedup |
|---|---|---|---|---|
| 50 | 0.162ms | 0.053ms | 0.34x (regression) | 1.29x |
| 100 | 0.161ms | 0.053ms | 0.42x (regression) | 1.29x |
| 200 | 0.191ms | 0.054ms | 0.53x (regression) | 1.83x |
| 500 | 0.165ms | 0.055ms | 1.15x | 3.46x |
| 1,000 | 0.187ms | 0.056ms | 2.06x | 6.20x |
| 5,000 | 0.194ms | 0.060ms | 9.77x | 25.75x |
Row-wise path (df.turbofastapply(lambda row: row['a'] + row['b'], axis=1))
Three passes. Pass 1 (dedup'd Index construction, reused used-column
arrays) narrowed the regression but never closed it. Pass 2 raised
MIN_ROWS from 50 to 300 so engine="auto" would decline rather than
engage a losing native call below that size — parity, not a win. Pass 3
replaced the actual cost driver — a real pandas Series built per probe and
verification row — with _RowView, a plain-dict stand-in supporting
row['col']/row.col (everything an affine row function needs) without
pandas' Series.__init__ overhead; a function needing more of the real
Series API (row.sum(), .values, ...) safely declines instead of
breaking. That cut the fixed cost 3-4x and let MIN_ROWS drop to 100 —
the first size where every trial in an 8-trial sweep cleared 1x:
| rows | previous (0.1.0) | pass 1 | pass 2 | pass 3 (current) |
|---|---|---|---|---|
| 50 | 0.41x (regression) | 0.30x (regression) | 1.0x (declines) | 1.0x (declines, matches pandas) |
| 100 | 0.47x (regression) | 0.82x (regression) | 1.0x (declines) | ~2x (native engages from here) |
| 200 | 0.86x (regression) | 1.29x | 1.0x (declines) | ~1.5-3x |
| 500 | 1.96x | 2.03x | ~3x | ~5-7x |
| 1,000 | 4.25x | 4.58x | ~7x | ~10-20x |
| 5,000 | 22.25x | 22.84x | ~30x | ~90-100x |
engine="native" still works below 100 rows for anyone who wants the
fast path regardless of profitability (enforce_min_rows=False
bypasses the threshold on an explicit request, same as the numeric path).
See claude.md for the full investigation.
cargo bench (benches/native_benches.rs) benchmarks the pure Rust
compute cores directly (1,000 / 50,000 / 200,000 elements), independent
of Python/PyO3 marshaling overhead — useful for catching a regression in
the Rust layer itself.
examples/benchmark_vs_competitor.py adds a comparison against another
accelerated-.apply() library. It's a separate opt-in script (not a
turbofastapply dependency), since that library pulls in dask, tqdm, etc. As of
this writing its 1.4.0 release doesn't run cleanly against recent
pandas/Python — see that script's error message for the specific
compatibility gap if you hit it.
Metadata
Release files for turbofastapply 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| turbofastapply-0.1.1.tar.gz | 33.1 kB | With provenance | Details for turbofastapply-0.1.1.tar.gz |
Built distributions (wheels)
Total release size: 17.0 MB
Release files / turbofastapply-0.1.1.tar.gz
| Download URL | turbofastapply-0.1.1.tar.gz |
|---|---|
| Size | 33.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d3f8f5c71dd56e6c28f7018fda5b3f75bf6dd79be274339ce5873b58cab4e84
|
|
BLAKE2b-256 checksum How to use checksums |
b87ae4121c4676a90b0d7b273e8cf20cf07eb616b37c65222a2ff22e4c02a4bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp314-cp314-win_amd64.whl
| Download URL | turbofastapply-0.1.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 794.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
503661ca2ef03777d50032c951d989256f0a446859b40ca56662f94d615287d7
|
|
BLAKE2b-256 checksum How to use checksums |
dd84ae715b5661996fa94951be55b5395d1285f7e8e0d14884785efbb13b41a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | turbofastapply-0.1.1-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 932.9 kB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e9838f277f56197e27a8e2202c6285d51b7e7a98c659c9b93e22a8f66b348185
|
|
BLAKE2b-256 checksum How to use checksums |
23c39a7abcc55e8251708edbcb7d2221c70807fc6915591f545dd3fee1cd123d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | turbofastapply-0.1.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.14 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3b131f4f60d0a96d2ea546dbd779202488dae5d3550c43265884f8e34177be76
|
|
BLAKE2b-256 checksum How to use checksums |
4da63abe75e61ab07386701fd271a8581845459679d38377f8c8dd8f8b0bb0aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp313-cp313-win_amd64.whl
| Download URL | turbofastapply-0.1.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 795.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b7770cebc87a947aacef1efef5486977d1159fe437433a44f394c7811c38138f
|
|
BLAKE2b-256 checksum How to use checksums |
7e0bd3c77bc6a31cdb3484342fe1680fdd0739954e05efa74c2036d776335b71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | turbofastapply-0.1.1-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 933.2 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ac272220be5096f2a5d9a2ec1b67402f89edda3be1f9cd77871b0ef1aa59aee5
|
|
BLAKE2b-256 checksum How to use checksums |
c75d82862c6c433d219dd107dcee3046d317a90d1d7d9628d892eaae32274af3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | turbofastapply-0.1.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
409d68be48d88610e99240524da8b373b95149258a5a3f9ddafbf3d3f12999cd
|
|
BLAKE2b-256 checksum How to use checksums |
6ac4666fc4a2a8b73b49f3b79fb87657eecbab3463d5ac636fa562e99f564ef6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp312-cp312-win_amd64.whl
| Download URL | turbofastapply-0.1.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 795.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b5ed5e7c8443317085c61471a8f903f9f833cd92c654880b890ddc50a6b194b3
|
|
BLAKE2b-256 checksum How to use checksums |
9c9b925748317c9268f877386734538c98f95df44841ea6ee30c562fc27ebde5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | turbofastapply-0.1.1-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 933.0 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0388334f4825e1d94df311e97f84c43c7cfdf67af740fb41e82394a1d8793817
|
|
BLAKE2b-256 checksum How to use checksums |
89b1ce27977ad8f9c8718ad20b3679f75b1e2fad11912c7cdfe09ef472a768e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | turbofastapply-0.1.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8c2ef4a81d3c0c6d0d45b28ee3ae4f315c197cf38e871b54ba99c5919773b304
|
|
BLAKE2b-256 checksum How to use checksums |
e7bda2551b6e00c5fa1369d4b595734da4be36ea3df172952fee84eac7a34f3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp311-cp311-win_amd64.whl
| Download URL | turbofastapply-0.1.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 797.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4696257799a39aeba34ab938b0e2d5423ea1d9536afed2cc181a46f945f4ed7c
|
|
BLAKE2b-256 checksum How to use checksums |
435870954bd263570bc688fadecaa32b6640b77003142981f8febf27a7d23933
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | turbofastapply-0.1.1-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 934.4 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c5d75c6b737afce3cf7e9b73ff52bc0a910f15f5f3f2195258e0eb99762bff8f
|
|
BLAKE2b-256 checksum How to use checksums |
1643b44938e2b943c13bd01806383fc47adae83bbacafe532e4f106933fcfb00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | turbofastapply-0.1.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2b91a79f2af7f4b87dfbb93e218bc9295ddcef42a32eda2561894ab45f7642bd
|
|
BLAKE2b-256 checksum How to use checksums |
0e752f51017c126d0c1cbf5365b0be21bda8fd2037cf8068445eb8002e4d6166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp310-cp310-win_amd64.whl
| Download URL | turbofastapply-0.1.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 797.8 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f1673e7d3fcfa1b60165cbd58725540ac555b987d269174fcae2aa9424fdf2f1
|
|
BLAKE2b-256 checksum How to use checksums |
affe16c48ee78208aca49845db25ebcf2b5566cfccc9edd6534afa893c38aed9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | turbofastapply-0.1.1-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 934.7 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e253a96558dbde16e85f8c57bead8072d7d4b6701c700465419a5b0525cdf60f
|
|
BLAKE2b-256 checksum How to use checksums |
ebfa184562c417899d0b75abf965c67b413ef027724670e98dfb004c597bb5e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / turbofastapply-0.1.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | turbofastapply-0.1.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
51dbe8b3e02ccf1e7f4719bb0ee9bbf9cb9fda889b2e6841a07513e315365fc1
|
|
BLAKE2b-256 checksum How to use checksums |
6ab7e3c0b9766c93ab47af59b59b420ba30e73f4e94f4fe0625701ce795c40ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logSecurity for turbofastapply 0.1.1
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 16 files in this release have been uploaded with provenance metadata.
Attestation for turbofastapply-0.1.1.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 Oct 1, 2026.
Transparency logA 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.