High-performance numerical acceleration library for Pandas using Rust
Project description
pandas-booster
pandas-booster is a high-performance numerical acceleration library for Pandas that offloads heavy computations to Rust. It leverages multi-core parallelism and zero-copy data access to provide significant speedups for large-scale data processing tasks.
This project is an independent third-party package and is not affiliated with, endorsed by, or sponsored by the pandas project or NumFOCUS.
Features
- Parallel GroupBy aggregations using Rayon (single and multi-column)
- Fast hashing with AHash
- Zero-copy interop between NumPy and Rust
- Release of the Python Global Interpreter Lock (GIL) during computation
- Seamless integration as a Pandas DataFrame accessor
Installation
From Wheel
If you have a pre-built wheel:
pip install pandas_booster-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Development Setup
To build and install from source, all development commands in this repository assume you are using an activated virtual environment (I recommend .venv).
# 1. Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 2. Install build tools and dependencies
pip install maturin
pip install -e ".[bench,dev]"
# 3. Build and install in development mode
maturin develop --release
Quick Start
import pandas as pd
import numpy as np
import pandas_booster
# Create a large dataset
n = 1_000_000
df = pd.DataFrame({
"key": np.random.randint(0, 1000, size=n),
"value": np.random.random(size=n)
})
# Use the booster accessor for accelerated groupby
result = df.booster.groupby(by="key", target="value", agg="sum")
print(result)
Multi-Column GroupBy
# Create dataset with multiple key columns
n = 1_000_000
df = pd.DataFrame({
"region": np.random.randint(0, 50, size=n),
"category": np.random.randint(0, 100, size=n),
"year": np.random.randint(2020, 2025, size=n),
"sales": np.random.random(size=n) * 1000
})
# Group by multiple columns - returns Series with MultiIndex
result = df.booster.groupby(by=["region", "category"], target="sales", agg="sum")
print(result.head())
# region category
# 0 0 9823.45
# 1 10234.12
# 2 9567.89
# ...
# Access specific groups
print(result.loc[(0, 1)]) # Sales for region=0, category=1
API Reference
df.booster.groupby(by, target, agg, sort=True)
Performs a Rust-accelerated groupby aggregation.
| Parameter | Type | Description |
|---|---|---|
by |
str | list[str] |
Column name(s) to group by. All columns must be integer dtype. |
target |
str |
Name of the column to aggregate. Must be numeric (int or float). |
agg |
str |
Aggregation function name. |
sort |
bool |
If True (default), sort result by group keys. If False, preserve Pandas appearance order (first-seen group order). |
Configuration
pandas-booster defaults to Rust-side sorting kernels for sort=True.
Emergency toggle (panic button):
PANDAS_BOOSTER_FORCE_PANDAS_SORT(default: OFF when unset):- truthy (
1/true/yes/on, case-insensitive): force PythonSeries.sort_index()after Rust aggregation forsort=True. - anything else (including
0/false/no/off): keep Rust-side sorting.
- truthy (
This toggle is intended for quick rollback if a Rust sorting bug is discovered. Forcing Python sort moves the sort=True cost to Pandas and is slower. If the Rust wheel is missing *_sorted kernels, pandas-booster also falls back to Python sort_index() automatically.
Note: the Rust-side sort=True kernels allocate a permutation vector and perform an O(G log G) comparison sort over groups (G = number of groups). This can increase memory usage at very high cardinality.
Note: the benchmark runner defaults PANDAS_BOOSTER_FORCE_PANDAS_SORT=0.
ABI skew controls:
PANDAS_BOOSTER_STRICT_ABI(default: OFF when unset):- truthy (
1/true/yes/on, case-insensitive): treat detected ABI skew as a hard error (no fallback). - anything else (including
0/false/no/off): fall back to pandas on detected ABI skew.
- truthy (
PANDAS_BOOSTER_ABI_SKEW_NOTICE(default: ON when unset):- unset / truthy (
1/true/yes/on, case-insensitive): enable ABI-skew warnings. - anything else (including
0/false/no/off): disable ABI-skew warnings.
- unset / truthy (
Returns:
- Single key (
by="col"): Apd.Seriesindexed by the unique keys. - Multiple keys (
by=["col1", "col2"]): Apd.Serieswith apd.MultiIndex.
Supported Operations
The following aggregation functions are currently supported:
| Operation | Description |
|---|---|
sum |
Sum of values in each group |
mean |
Arithmetic mean of values in each group |
min |
Minimum value in each group |
max |
Maximum value in each group |
count |
Count of non-NaN values in each group |
Requirements and Constraints
To ensure correctness and performance, the following constraints apply:
- Minimum dataset size: 100,000 rows. For smaller datasets, the overhead of dispatching to Rust outweighs the benefits, and the library automatically falls back to native Pandas.
- Key column(s): Must be integer dtype (e.g.,
int64,int32). For multi-column groupby, all key columns must be integers. The accelerated path preserves Pandas' index dtype (e.g.,int32on Windows). - Maximum key columns: Up to 10 columns for multi-column groupby.
- Value column: Must be a numeric dtype (integers or floats).
- Extension dtypes: Pandas extension dtypes (e.g., nullable
Int64/Float64usingpd.NA) are not supported and will trigger a fallback to Pandas. - NaN handling:
NaNvalues in the target column are skipped in aggregations, matching standard Pandas behavior. - Return types: Integer aggregations (like
sumonint64) returnfloat64to match Pandas' behavior regarding potential overflows and consistency.
Performance
The library is designed for large datasets where multi-core parallelism can be fully utilized.
sort=True: single-key groupby uses Rayon's parallel map-reduce; multi-key groupby uses a radix-partitioning algorithm that eliminates merge overhead.sort=False: results preserve Pandas appearance order (first-seen group order). Internally, this path tracks the first-seen row index per group and reorders groups with an integer radix sort to avoidO(G log G)comparison sorting.
Benchmark methodology:
- Process Isolation: Benchmarks use rigorous process isolation to ensure accurate results.
- Samples: The tables below were generated with
--samples 20(default: 5). Each sample runs in a fresh Python process. - Cold: Average of 20 fresh process executions (1st run measured immediately).
- Warm: Average of 20 fresh process executions. Each process runs Cold once and a Warmup once (both discarded), then measures the next run (steady state).
- Correctness: Booster and Polars outputs are validated against a Pandas baseline. For
sort=False, benchmarks validate Pandas-compatible appearance order (first-seen group order). - Polars sort handling: Polars does not have a
sortparameter ingroup_by. For fair comparison, I definesort=Trueas "groupby+agg followed by sorting the result by keys" (cost included in timing), andsort=Falseas "groupby+agg with Pandas-compatible appearance order (first-seen group order)". This ensures all three engines (Pandas, Polars, Booster) are measured under identical conditions. - Speedup baseline: All speedup values (
x) use Pandas as the baseline (1.0x) within each sort mode. - Optional Polars: Polars is included in the benchmarks for comparison if installed. If not installed, the benchmark suite proceeds with Pandas vs Booster only.
Standard Cardinality (5M rows)
| Operation | Groups | Sort | Type | Pandas | Polars | Booster |
|---|---|---|---|---|---|---|
| Single-key | 1,000 | True | Cold | 30.7±4.7ms (1.0x) | 21.1±6.9ms (1.5x) | 4.7±1.1ms (6.5x) |
| Warm | 24.7±0.6ms (1.0x) | 17.1±1.1ms (1.4x) | 2.1±0.0ms (11.8x) | |||
| False | Cold | 26.7±1.2ms (1.0x) | 19.4±2.1ms (1.4x) | 4.9±0.7ms (5.5x) | ||
| Warm | 22.9±1.0ms (1.0x) | 17.2±1.3ms (1.3x) | 2.2±0.1ms (10.2x) | |||
| 2-key | 5,000 | True | Cold | 81.3±5.8ms (1.0x) | 57.1±15.1ms (1.4x) | 103.6±10.2ms (0.8x) |
| Warm | 70.5±4.5ms (1.0x) | 42.3±5.7ms (1.7x) | 97.6±6.6ms (0.7x) | |||
| False | Cold | 66.1±8.9ms (1.0x) | 48.8±19.0ms (1.4x) | 92.3±1.8ms (0.7x) | ||
| Warm | 56.5±8.4ms (1.0x) | 36.0±2.7ms (1.6x) | 88.8±0.8ms (0.6x) | |||
| 3-key | 25,000 | True | Cold | 133.1±23.7ms (1.0x) | 62.1±14.2ms (2.1x) | 115.6±13.2ms (1.2x) |
| Warm | 117.5±25.9ms (1.0x) | 52.4±4.6ms (2.2x) | 102.3±9.0ms (1.1x) | |||
| False | Cold | 103.2±6.4ms (1.0x) | 60.4±11.2ms (1.7x) | 105.9±5.6ms (1.0x) | ||
| Warm | 88.6±2.0ms (1.0x) | 54.6±9.3ms (1.6x) | 101.0±3.5ms (0.9x) | |||
| 4-key | 100,000 | True | Cold | 150.7±8.9ms (1.0x) | 95.1±16.4ms (1.6x) | 113.1±3.0ms (1.3x) |
| Warm | 131.5±7.5ms (1.0x) | 76.8±6.0ms (1.7x) | 108.9±1.8ms (1.2x) | |||
| False | Cold | 119.3±8.9ms (1.0x) | 88.1±9.7ms (1.4x) | 113.1±3.5ms (1.1x) | ||
| Warm | 107.7±6.6ms (1.0x) | 76.1±3.7ms (1.4x) | 108.2±1.7ms (1.0x) | |||
| 5-key | 993,138 | True | Cold | 268.3±11.5ms (1.0x) | 195.6±26.6ms (1.4x) | 199.4±4.7ms (1.3x) |
| Warm | 246.4±4.7ms (1.0x) | 179.4±9.4ms (1.4x) | 196.4±17.9ms (1.3x) | |||
| False | Cold | 171.8±16.0ms (1.0x) | 174.4±49.0ms (1.0x) | 174.3±7.0ms (1.0x) | ||
| Warm | 151.5±3.9ms (1.0x) | 152.3±3.5ms (1.0x) | 163.4±2.5ms (0.9x) |
High Cardinality (5M rows, ~5M unique groups)
| Operation | Groups | Sort | Type | Pandas | Polars | Booster |
|---|---|---|---|---|---|---|
| Single-key | 3,160,983 | True | Cold | 773.4±65.4ms (1.0x) | 118.2±2.4ms (6.5x) | 223.7±10.1ms (3.5x) |
| Warm | 750.9±57.0ms (1.0x) | 114.5±4.5ms (6.6x) | 214.3±5.3ms (3.5x) | |||
| False | Cold | 220.1±12.7ms (1.0x) | 165.8±3.0ms (1.3x) | 217.4±3.9ms (1.0x) | ||
| Warm | 212.0±6.8ms (1.0x) | 166.5±6.5ms (1.3x) | 204.5±13.6ms (1.0x) | |||
| 2-key | 4,532,339 | True | Cold | 871.2±28.4ms (1.0x) | 235.1±8.5ms (3.7x) | 397.7±5.3ms (2.2x) |
| Warm | 845.7±67.5ms (1.0x) | 222.9±4.0ms (3.8x) | 375.2±7.4ms (2.3x) | |||
| False | Cold | 359.8±7.0ms (1.0x) | 241.1±24.2ms (1.5x) | 312.4±16.9ms (1.2x) | ||
| Warm | 346.2±27.6ms (1.0x) | 235.6±6.1ms (1.5x) | 281.0±14.3ms (1.2x) | |||
| 3-key | 4,901,309 | True | Cold | 973.0±68.5ms (1.0x) | 317.6±9.6ms (3.1x) | 563.0±6.8ms (1.7x) |
| Warm | 875.2±19.6ms (1.0x) | 311.2±7.7ms (2.8x) | 531.5±6.0ms (1.6x) | |||
| False | Cold | 394.1±11.2ms (1.0x) | 252.2±15.5ms (1.6x) | 364.7±8.3ms (1.1x) | ||
| Warm | 367.6±19.1ms (1.0x) | 241.0±3.3ms (1.5x) | 339.0±4.3ms (1.1x) |
Performance characteristics:
- Single-key (standard cardinality): Warm state shows 9.8-11.9x speedup over Pandas baseline (cold: 4.8-5.7x). Booster outperforms Polars in warm state.
- Multi-key (standard cardinality): Performance depends on key count and
sort. 2-key is slower than Pandas (0.6-0.8x warm); 3-key ranges 0.9-1.1x warm; 4-key ranges 1.0-1.2x warm; 5-key ranges 1.0-1.4x warm. Polars is typically faster here (1.1-2.0x warm). - Multi-key (high cardinality): With
sort=True, Booster achieves 1.6-3.4x speedup in warm state; withsort=False, it is near parity (1.0-1.2x). Polars is faster than Booster on these workloads (sorted: 2.8-6.4x, unsorted: 1.3-1.5x). - Sort overhead: For Pandas,
sort=Falseis often a meaningful win (about 1.2-1.4x on standard multi-key, and ~3.0x on high-cardinality single-key). For Booster, the difference betweensort=True/Falseis smaller and can go either direction (roughly 0.8-1.1x in these tables), so choose based on desired output ordering first.
Sorted vs Appearance-Ordered Results
By default, results are sorted by group keys to match Pandas sort=True output. Pass sort=False to preserve Pandas' appearance order (first-seen group order) and avoid the key sort cost:
# Sorted (default) - matches Pandas exactly
result = df.booster.groupby(by=["a", "b"], target="val", agg="sum")
# Appearance-ordered (sort=False) - matches Pandas semantics
result = df.booster.groupby(by=["a", "b"], target="val", agg="sum", sort=False)
Benchmark Reproduction
To reproduce the benchmark results shown above:
# Install benchmark dependencies and build in release mode
pip install -e ".[bench,dev]"
maturin develop --release
# Run all benchmarks
python benches/benchmark.py --samples 20 --output results.md
Environment & Configuration
The following environment was used to generate the benchmark results above. (Note: These are not the minimum requirements for using the library, but strictly the environment used for reproduction).
- Build Mode: Release (
maturin develop --release) - Threading: Default Rayon behavior (uses all available logical cores)
- OS: macOS (Darwin)
- Python: 3.11.14
- Pandas: 2.2.3
- Polars: 1.37.1
Note: The benchmark scripts use rigorous process isolation (fresh process per sample) for both Cold and Warm measurements to ensure accurate results.
For more detailed benchmark options and configurations, see the Development > Benchmarking section.
Development
Building
Build the extension module in-place:
source .venv/bin/activate
maturin develop
For release builds with optimizations:
source .venv/bin/activate
maturin develop --release
Release
The release process is automated via the publish.yml workflow triggered by version tags.
-
Preconditions:
- PyPI project exists.
- Trusted Publisher is configured for
publish.yml. - GitHub environment
pypiis configured (if repository is protected).
-
Operator Flow: Ensure the environment is ready and push a new tag:
python -m pip install --upgrade pip pip install "maturin>=1.4,<2.0" git tag vX.Y.Z git push origin vX.Y.Z
The workflow builds cross-platform wheels and handles the PyPI upload automatically.
Testing
Run the test suite using pytest:
source .venv/bin/activate
pytest tests/
Benchmarking
Setup
To run benchmarks with library comparisons (Polars, etc.), install the optional benchmark dependencies:
# Install benchmark and development dependencies
source .venv/bin/activate
pip install -e ".[bench,dev]"
# Build the Rust extension in release mode
maturin develop --release
This installs:
polars: For performance comparison benchmarkspyarrow: For fast Polars -> Pandas conversion during correctness checksmatplotlib: For generating plots and visualizations (optional)pytestandpytest-benchmark: For test framework and benchmarking
Running Benchmarks
# Run all benchmarks (standard + high cardinality, sorted + sort=False)
source .venv/bin/activate
python benches/benchmark.py
# Run only standard cardinality benchmarks
python benches/benchmark.py --cardinality standard
# Run only high cardinality benchmarks
python benches/benchmark.py --cardinality high
# Run only sorted or sort=False benchmarks
python benches/benchmark.py --sort-mode sorted
python benches/benchmark.py --sort-mode unsorted
# Combine options
python benches/benchmark.py --cardinality high --sort-mode sorted
# Save results to markdown file
python benches/benchmark.py --output results.md
# Adjust sample count (applies to both cold and warm; default: 5)
python benches/benchmark.py --samples 20
Architecture Overview
pandas-booster uses a hybrid Rust/Python architecture:
- PyO3: Provides the bridge between Python and Rust.
- Rayon: Implements a work-stealing parallel scheduler for multi-core processing.
- Radix Partitioning: Multi-key groupby uses a 4-phase radix partitioning algorithm (histogram → prefix sum → scatter → aggregate) that eliminates merge overhead.
- FixedKey Optimization: For 1-10 key groupby operations (the supported maximum), uses compile-time fixed-size arrays (
FixedKey<const N>) instead of dynamic vectors. This enables aggressive compiler optimizations (loop unrolling, SIMD) and avoids per-group heap allocation for key storage. - AHash: Used for high-speed hashing of groupby keys.
- SmallVec: Used only as a generic fallback key representation (e.g., if the max-key constraint is raised in the future). The current implementation inlines up to 10 key values before spilling to the heap.
- Zero-Copy: NumPy arrays are accessed directly as Rust slices without copying data, minimizing memory overhead and latency.
The Python side provides a BoosterAccessor that handles validation and falls back to Pandas when the data doesn't meet the requirements for acceleration.
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pandas_booster-0.1.0.tar.gz.
File metadata
- Download URL: pandas_booster-0.1.0.tar.gz
- Upload date:
- Size: 77.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6b66d99b5968677c63ac0298dc9bed04a64327d192a2da2e13fed0129354745
|
|
| MD5 |
37d316c89b6a1b7e0455427c29ac3558
|
|
| BLAKE2b-256 |
f2ed78f1ddee673d4a51c0d5e4a6c50cdef3409cab7a99fcd18631a1d0d55d5d
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0.tar.gz:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0.tar.gz -
Subject digest:
e6b66d99b5968677c63ac0298dc9bed04a64327d192a2da2e13fed0129354745 - Sigstore transparency entry: 1225855373
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 902.7 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77938fb481eb54175354327ab7999c7674d7c47d6d98214f0e308264d74bcabf
|
|
| MD5 |
629992859aeff37cf9cf1140f5e7c842
|
|
| BLAKE2b-256 |
93952c596e10565362cd4c2cec5145d4e5f4d2bad760e44c0b38bf2a158d7c30
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp312-cp312-win_amd64.whl -
Subject digest:
77938fb481eb54175354327ab7999c7674d7c47d6d98214f0e308264d74bcabf - Sigstore transparency entry: 1225856663
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2a8fca56e232043f7d6fb0cad12d6b53328ab0209d00303fe5dce14d40ff6fa
|
|
| MD5 |
b4311c8a3e340740ddf7868eff043836
|
|
| BLAKE2b-256 |
465bc2202b57c4b6b5b6aff414f670023d6ff721afe0c6f5cbb712d2746380e6
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
b2a8fca56e232043f7d6fb0cad12d6b53328ab0209d00303fe5dce14d40ff6fa - Sigstore transparency entry: 1225857093
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.12, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c3a447166f95a13f20e060287ad5213e4af554e745b028549ba7f66199f5d14
|
|
| MD5 |
19911f8ee6de43c83840c59cdb0192ca
|
|
| BLAKE2b-256 |
f870883727385a5ae8f08ba718653d5bbd3ab648215f1d1458508736d67d0a57
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
1c3a447166f95a13f20e060287ad5213e4af554e745b028549ba7f66199f5d14 - Sigstore transparency entry: 1225855585
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 903.5 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
150cd34d880a2590bf2b619ca56ead571fdebad6e1b482a493a7416a5d504d39
|
|
| MD5 |
f8424d4c64a80ec8a1b0607d55d06d0c
|
|
| BLAKE2b-256 |
2a8880180b43d8ee1f313ea7e12e6650566b31d20d40dbb9edcc1d92894ff7d4
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp311-cp311-win_amd64.whl -
Subject digest:
150cd34d880a2590bf2b619ca56ead571fdebad6e1b482a493a7416a5d504d39 - Sigstore transparency entry: 1225856445
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c2f24654bf1edd42b5fb2cae3a6e961d96fc9619e80603e51e58b471b306a7a
|
|
| MD5 |
b6974acf2cd48d758393032def781ed8
|
|
| BLAKE2b-256 |
9a8a381441a54f145440a70bbb3fd045a3fe114b17988168f0f23974db0372c2
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
1c2f24654bf1edd42b5fb2cae3a6e961d96fc9619e80603e51e58b471b306a7a - Sigstore transparency entry: 1225857378
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
092251e3de47ef82089e21febd5f7babf881a76a4d8b7c05c15ea2e0a5bd82d3
|
|
| MD5 |
2a1ea94f65f1de4fb1f6db56211cd173
|
|
| BLAKE2b-256 |
6c66ecd929b02c2c0fc1349056c418edd2ba71b668cd1973ed2e0f2523731ae7
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
092251e3de47ef82089e21febd5f7babf881a76a4d8b7c05c15ea2e0a5bd82d3 - Sigstore transparency entry: 1225855740
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 900.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1ff4d4c76dc834fa0ed4cf43eea6ef21815111138c00eeb3b9fbf7e040e14de
|
|
| MD5 |
1a772ff0b237dd65b582d217f3ff674c
|
|
| BLAKE2b-256 |
21cf58cf41f3aef8cda07a098908b1f24a356c7b594d7bee27d97898f15634ec
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp310-cp310-win_amd64.whl -
Subject digest:
e1ff4d4c76dc834fa0ed4cf43eea6ef21815111138c00eeb3b9fbf7e040e14de - Sigstore transparency entry: 1225855871
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d981f754ca58355dbce408b5b41f1e0504490ff9c3387a90733477f85eef3022
|
|
| MD5 |
2e4cda00b569f80af21f195368aa1743
|
|
| BLAKE2b-256 |
dfd4b089626ca3323f53a5b0bd015a438cc5e391fdeab16d17a1c2ca5c6470d6
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
d981f754ca58355dbce408b5b41f1e0504490ff9c3387a90733477f85eef3022 - Sigstore transparency entry: 1225857470
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.10, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3869a33959a898743c09d15d36442446d2a7197beca364107f5bc67494515b76
|
|
| MD5 |
12b8fd78bc80993145f4c03c85f8a12f
|
|
| BLAKE2b-256 |
f6b779958019647a1fc2afa1aa6b74404b06fab0ae40adfe6914325077b02229
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
3869a33959a898743c09d15d36442446d2a7197beca364107f5bc67494515b76 - Sigstore transparency entry: 1225856880
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 904.2 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfeb6ad33e54e8372c8eb2c203c6105f3c97aa07d73b7bf2b1f6e15b99d5a16c
|
|
| MD5 |
6e86482761ff6498220ab4717fbbb032
|
|
| BLAKE2b-256 |
810b717da5fa84e39cb8b5ce996cef8567ffd918a50f057d25f670cd7785d181
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp39-cp39-win_amd64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp39-cp39-win_amd64.whl -
Subject digest:
bfeb6ad33e54e8372c8eb2c203c6105f3c97aa07d73b7bf2b1f6e15b99d5a16c - Sigstore transparency entry: 1225855991
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f885327bee6b6944137aec23c224b031cba8d041640075c8a0d63e8641c28881
|
|
| MD5 |
94da933587cefda6421788e88a604b0e
|
|
| BLAKE2b-256 |
0f8b1bbf30786bb49aa60ae07605140cb3b285328ede19c2217d5e6ae855eeb0
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
f885327bee6b6944137aec23c224b031cba8d041640075c8a0d63e8641c28881 - Sigstore transparency entry: 1225857187
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pandas_booster-0.1.0-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: pandas_booster-0.1.0-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2e785b175500946c1f181b52aa4d2729fe417c797614b59525c8c37c779b2c7
|
|
| MD5 |
bab945139df1ab13b3e151bf813a4ec4
|
|
| BLAKE2b-256 |
bc36fbd74abe6a713100bf37c5b1451cc67a0de7f4aca575019555e6e309987a
|
Provenance
The following attestation bundles were made for pandas_booster-0.1.0-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
publish.yml on snowykr/pandas-booster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pandas_booster-0.1.0-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
f2e785b175500946c1f181b52aa4d2729fe417c797614b59525c8c37c779b2c7 - Sigstore transparency entry: 1225856215
- Sigstore integration time:
-
Permalink:
snowykr/pandas-booster@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/snowykr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7c1f8e22178fa1a49faff3b45e1a2199051ad9f7 -
Trigger Event:
push
-
Statement type: