Skip to main content

ShuffleSnap

ShuffleSnap assigns 2D points (for example a UMAP or t-SNE layout) one-to-one to the cells of a grid, minimizing the total squared distance each point moves. It is meant for 50k–1M points, where a dense exact linear assignment does not fit in memory.

import numpy as np
import shufflesnap as ss

xy = np.random.default_rng(0).normal(size=(100_000, 2))  # your embedding
res = ss.assign(xy)                  # near-square grid with exactly N cells
res.xy                               # (N, 2) integer column/row of every point
res.cost / len(xy)                   # mean squared displacement, in cell units

Install

pip install shufflesnap            # add [exact] for the certified exact solver

Version 0.4.0 is a rewrite with a new API (assign); 0.3.0 and earlier used snap_to_grid. See the changelog.

How it works

The algorithm is a coarse-to-fine local search, loosely inspired by Shellsort:

  1. Random start. Points are placed in random cells (a seeded permutation).
  2. Strided windows. At stride s the lattice splits into s × s interleaved subgrids, one per row/column residue mod s. Each subgrid is tiled with w × w windows (default w = 8). A window holds at most w² cells spaced s apart, so it spans (w−1)s+1 cells per axis.
  3. Exact window solves. Inside every window, the current occupants are reassigned among the window's cells by an exact dense linear assignment on squared distances to the original coordinates. A window's new assignment is accepted only if it lowers the cost by more than a relative 10⁻¹², so the total cost never increases. The default window solver (solver="geometric") starts from dual potentials computed in closed form from per-axis optimal transport between the window's points and cells, then finishes exactly with shortest augmenting paths; on clustered data this is about 5× faster than a Hungarian solver with a greedy start, with the same results.
  4. Shifted tilings. A round consists of four tilings, shifted by (0,0), (0,w/2), (w/2,0), and (w/2,w/2) subgrid cells. The windows within one tiling are disjoint and are solved in parallel.
  5. Schedule. Per axis of length L, the start stride is the smallest power of two with w·s ≥ L. After one round, strides are divided by √2 and rounded (any ratio can be set; 2 halves them), until both reach 1. Stride-1 rounds then repeat until a full round makes no move, or until the time budget runs out.

Boundary rules. Windows that extend past a subgrid's edge are clipped, never dropped, on every side. So every lattice position belongs to exactly one window of every tiling, and the lower-right boundary cells exchange with the interior just like the upper-left ones. Windows with fewer than two usable cells are skipped, since nothing can move in them.

Rectangular grids. Each axis has its own start stride. Both strides shrink on every level; the shorter axis reaches 1 first and stays there.

Masks and surplus cells. A Grid is a boolean mask on a W × H lattice. Masked cells never enter a window. Empty (unmasked, unoccupied) cells do take part, so points can move into them. With more cells than points, the solver therefore also decides which cells stay empty.

Skipping unchanged windows. A window whose cells have not changed occupant since it was last solved in the same stage is already optimal and is skipped. This does not change the result, and the result is also independent of the number of threads (both are tested).

Presets

preset window stride ratio notes
fast 5 √2 about the time of BSP-OT with 16 plans
balanced (default) 8 √2 about the time of BSP-OT with 64 plans
quality 12 √2 144-cell exact window solves

The presets were chosen on development instances (not the benchmark instances) so that fast and balanced take about as long as BSP-OT with 16 and 64 plans (one core, 100,000 points), which makes the two methods comparable at equal time. Larger windows are better in every test but slower; ratio √2 was best or close to best at every window size from 6 to 24; windows up to 32 can be set with window=.

Explicit arguments (window=, ratio=, schedule=, rounds_per_stride=, start_stride=, init=) override the preset.

Measured performance

Held-out instances, 100,000 points, square grid, i9-12900KS. The table gives excess over a certified optimum (mean of three instances), with time on one core (24 threads in parentheses). The full benchmark, including failures, is in the paper repository.

method uniform Gaussian mixture spiral checkerboard time
fast 2.6% 0.013% 0.022% 0.13% 0.77 s (0.09 s)
BSP-OT (16 plans) 45% 5.6% 10% 50% 0.71 s (0.13 s)
balanced (default) 0.84% 0.002% 0.004% 0.057% 2.3 s (0.19 s)
BSP-OT (64 plans) 32% 3.7% 8.1% 36% 2.9 s (0.41 s)
quality 0.44% <0.001% 0.001% 0.020% 6.7 s (0.53 s)
RasterFairy (upstream) 45% 17% 27% 425% 3.0 s
certified exact (shufflesnap.exact) 0 0 0 0 median 117 s

At equal time, fast and balanced are closer to the optimum than BSP-OT with 16 and 64 plans on 8 and 9 of the 10 benchmark distributions (BSP-OT wins on a near-line and on two clusters with 90/10 mass). On the full MNIST and Fashion-MNIST UMAP embeddings (70,000 points each), balanced is within 0.002% of the optimum. Where ShuffleSnap is weakest:

  • near-uniform data (0.84% at 100k points, growing with N to 1.3% at 1M);
  • grids with surplus cells (3.1% for uniform points with less than a row of surplus);
  • masks with concave bays, where coarse schedules route mass across the bays (uniform points on a blocky S: balanced 1.4%, BSP-OT with 64 plans 9.3%).

Grids

ss.Grid.rectangle(400, 250)                  # full rectangle
ss.Grid.for_count(99991)                     # near-square, last row partially filled (exactly N cells)
ss.Grid.for_count(99991, partial="free")     # full rectangle; solver picks the empty cells
ss.Grid.for_count(50_000, aspect=16 / 9)
ss.Grid.disk(50_000)                         # disk with exactly N cells
ss.Grid.from_mask(mask_bool_array)           # arbitrary shape (True = usable)
ss.Grid.from_image(img, 50_000)              # dark pixels of an image, exactly N cells
ss.Grid.for_count(n, pitch=(4, 3))           # anisotropic cells, e.g. 4:3 thumbnails

Normalization

Costs are measured in the grid frame (one cell pitch = one unit). By default (normalize="bbox"), each axis of the point bounding box is mapped onto the bounding box of the usable cell centers. "fit" preserves the aspect ratio. "none" means the points are already in grid units.

Certified exact solutions (optional)

pip install shufflesnap[exact] adds shufflesnap.exact.solve_certified. It never builds the dense N × M matrix; instead it alternates three steps until a Lagrangian lower bound computed over all cells meets the primal cost:

  1. an exact min-cost-flow solve (OR-Tools) on sparse candidate edges;
  2. integer shortest-path cell potentials;
  3. a global pricing pass that adds any violating edges.
res = ss.assign(xy, exact=True)      # ShuffleSnap, then the certified exact solve
res.cost, res.lower_bound, res.gap, res.certified

The ShuffleSnap result only chooses the candidate edges (OR-Tools has no warm start), but it is a good choice: the first sparse solve is typically already within 0.001% of the optimum, which makes this much faster than starting OR-Tools from a random or bisection assignment. It can still take far longer than ShuffleSnap itself (seconds at 10k points, up to tens of minutes at 100k); exact_time_limit= returns the best solution so far with certified=False. The same solve is available directly:

from shufflesnap import exact
r = exact.solve_certified(res.points, res.grid, res.cell)
r["cost"], r["lower_bound"], r["gap"], r["certified"]

Known limitations

The method is a local search. Its remaining excess over the optimum is dominated by a few large closed loops of points, each shifted by about one cell. No window smaller than such a loop can remove it. Structured starts (bisection, row sorting) create seams that make results worse, which is why the start is random. Masks with narrow features or concave bays, and heavily surplus grids, are the hardest cases. See the accompanying paper for measurements, including failure cases.

A mask guarantees a valid layout, not that every pair of usable cells can trade occupants. Two cells exchange only if some scheduled window contains both. On a one-row mask whose only usable columns are 0 and 9, stride 2 separates them and an 8-wide stride-1 window never holds both, so a swapped pair stays swapped under balanced (quality's 12-wide windows repair this example, not the general problem).

Reference implementation

shufflesnap.reference.snap(points, mask, w=8, ratio=2**0.5, seed=0) is a serial implementation of the same algorithm in about 70 lines of NumPy and SciPy, meant for reading. On inputs without exact ties it returns the same assignment as assign with normalize="none" and the matching preset (tested for all presets on rectangles, partial rows, surplus cells, disks and random masks). It is slow: use it to understand or check the method, not to run it.

Development

pip install -e ".[test]"        # or ./dev_build.sh for an in-place build
pytest -q

The compiled kernel is C++17 (nanobind), parallelized with OpenMP when available. On the benchmark machine, compiling takes 2.6 s with Ninja (8.1 s on one core); an isolated source build (pip install .) takes about 35 s, most of it setting up the build environment. There is no JIT, so nothing is compiled on first call.

License

MIT

Metadata

Release files for shufflesnap 0.4.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 shufflesnap 0.4.0
File Size Uploaded Provenance Actions
shufflesnap-0.4.0.tar.gz 50.3 kB With provenance Details for shufflesnap-0.4.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for shufflesnap 0.4.0
File Actions
shufflesnap-0.4.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for shufflesnap-0.4.0-cp314-cp314-win_amd64.whl
shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl
shufflesnap-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for shufflesnap-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.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 shufflesnap-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp314-cp314-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
shufflesnap-0.4.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for shufflesnap-0.4.0-cp313-cp313-win_amd64.whl
shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl
shufflesnap-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for shufflesnap-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for shufflesnap-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp313-cp313-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
shufflesnap-0.4.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for shufflesnap-0.4.0-cp312-cp312-win_amd64.whl
shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl
shufflesnap-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for shufflesnap-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for shufflesnap-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp312-cp312-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
shufflesnap-0.4.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for shufflesnap-0.4.0-cp311-cp311-win_amd64.whl
shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
shufflesnap-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for shufflesnap-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for shufflesnap-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp311-cp311-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
shufflesnap-0.4.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for shufflesnap-0.4.0-cp310-cp310-win_amd64.whl
shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
shufflesnap-0.4.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 shufflesnap-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for shufflesnap-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
shufflesnap-0.4.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for shufflesnap-0.4.0-cp39-cp39-win_amd64.whl
shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ ARM64 Details for shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details for shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
shufflesnap-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 11.0+ x86-64 Details for shufflesnap-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl
shufflesnap-0.4.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for shufflesnap-0.4.0-cp39-cp39-macosx_11_0_arm64.whl

Total release size: 10.7 MB

Release files / shufflesnap-0.4.0.tar.gz

Download URL shufflesnap-0.4.0.tar.gz
Size 50.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a955aae817884fe620d907edbef7417e9a88751ec8c5bd51a8249cd421c7a7d2
BLAKE2b-256 checksum
How to use checksums
260233059fd3d53a72fc318c5ea65bc5af968ced01659918fe611f43cb5ee3aa
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-win_amd64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-win_amd64.whl
Size 156.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
2e3a78e2c43e1954d86d32fc01877dcd45776fda4506e19a72c0bb43e5e46069
BLAKE2b-256 checksum
How to use checksums
544b0c202fa5a990c7915f88c0d160246464384dc6ab3a5c6ea27121ad3a10db
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 419.3 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
88d6dafa1af9378959e9af1c0a12c8afb259fbb0d5f9107be7c8a1e14bf95a30
BLAKE2b-256 checksum
How to use checksums
e28871280f48d7ccec8af5d79c0159581a8267ac5cda6f87cf287fdb387b14d2
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 401.5 kB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
14aae727e064b7b8da4b8c5deb6f1078788d22ee8705c9901af0cc510471d6f9
BLAKE2b-256 checksum
How to use checksums
dc0ebf165374f70dd5dbd4e05be2c7bf959068cc31df9b48a1c5c7c96d79f58c
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 280.8 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0a5bd4f4971c1e83cbf1980907174a4d3e91acb016563297a8787e7cc0fde046
BLAKE2b-256 checksum
How to use checksums
21971ffa1857a4765b8a3e9239e03037d7bb8083199f12bae1888626017e91a9
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 266.6 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
53071ab1dc94834b74fd6470590bf8123994acd8c8b61fdd61302f1724db2e5d
BLAKE2b-256 checksum
How to use checksums
49d86ba12b2a3a6df0ec8cad1a893af576e192ce5cf55f27b2711a898531a770
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-macosx_11_0_x86_64.whl
Size 134.7 kB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
219eccf3c0debb2e1b132d00e3cce446680429d99f881fcde011fe3796b9d6e8
BLAKE2b-256 checksum
How to use checksums
5020e580c98bc3d9df782993f0cf735e581a31a55a58b94deb320f2d90a00fb0
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
Size 129.0 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
83f4de635e37f3e0732a91020b950c7475c54202e64bfc4ef7694d06b81953a9
BLAKE2b-256 checksum
How to use checksums
79c942c2818e72927a2887c477c1c09d3ce6c3b5a2a64f02911254bcfcd479dd
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-win_amd64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-win_amd64.whl
Size 153.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d3beadffddf5a7a4cf8bce0c6f33c3f09b77b85c831a2114bdcfdcffc74c3f52
BLAKE2b-256 checksum
How to use checksums
680328d2c3234c5d7bbfbbccecfe32a9c47fb954a9b4f87016ce963aadd43ed6
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 419.3 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e135876985a674b804c550ff8540b0e5d70e3c5b1e1f8dc0612c5702d13d9443
BLAKE2b-256 checksum
How to use checksums
8c167e04fc10523b6969557f5540e1ce416144a6138414e92da103c0d0097119
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 401.5 kB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
340b59ce0fc3c51025d0c8b9b75d15e3455f6e70e362db7ded3f692933bd5d1b
BLAKE2b-256 checksum
How to use checksums
add1b68acfe891071b0ec6591fa553087ef17b97e1fa11f0031ff21986e3c167
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 280.7 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
62d34b095e03e721b35a9124babe3ac42ee60ce5a3440be25b7dcfdf01d66b68
BLAKE2b-256 checksum
How to use checksums
289a1be86cc02c24f411b9a5685c5f5c0b8e3907b8a24768cb8fa9e72770987f
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 266.5 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ead34f47b974259cae37fe4ac6aac2898c6c5386f5c2bca1a223413464da3d5f
BLAKE2b-256 checksum
How to use checksums
835b80bc02f82aba4b4e4e4610e56ea1720e4e51758a44d8e456936b07fbbf10
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-macosx_11_0_x86_64.whl
Size 134.7 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5db4671d4b972e085ff1cc9b7aadbf693f49c9082ac31cecf028c2f690df3f2a
BLAKE2b-256 checksum
How to use checksums
958577c58b39f48bb0955e9c45ea52a80e15c0dc030ef2a67c3a759c980e4848
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Size 129.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c288bdf26c1de36b820d932b746d8704ab92648e8bc8a150bbf68fad703b63af
BLAKE2b-256 checksum
How to use checksums
b262c66e8f0c00e823167006eb22f73d37e4b5b15c22be9cb2f3a4565a1b7fb8
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-win_amd64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-win_amd64.whl
Size 153.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
18fe81d5db7d2dc4dd67e6453fee45c2fd78bcd9993857a30bcf15d8a204f3b5
BLAKE2b-256 checksum
How to use checksums
cea6a79053ead263909c7366859e5f909d6a35e81f6da64c50d5d81f576acc62
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 419.3 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eb643553f9f789ba9894066cc78793583632450000fb36fed638ed47b7f21c71
BLAKE2b-256 checksum
How to use checksums
c5c7325e6575b55eb431d5f1df0515162c924aac84b23acbb6875db9fb5045bf
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 401.6 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5dc7c50439bddf7e4b6cb2cd73e128c8d2a7d4399dd33ee4a36c33e9e7768ba6
BLAKE2b-256 checksum
How to use checksums
1d4c7c617e64b323d6739662656731a24481b0b572224ef65379163533088d0b
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 280.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fe2b62ff225901cafc76350091edb964f88758dd45d6a9d7175b710e333699c2
BLAKE2b-256 checksum
How to use checksums
c732a467a1a9741b2558cbabe77945c908aeaf7cf3e047af8d174724f5468911
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 266.6 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
30cc56a255273bf8e77b7e5877c765be0007d210c330476700514737b4fdf137
BLAKE2b-256 checksum
How to use checksums
16109767d03d6addfef30d0557a3ed92061033427e0c42c1738c583eca522309
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-macosx_11_0_x86_64.whl
Size 134.8 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
61780fee005d855b93ffeae251dccbed6135b5a2748147ea0889eb6146908822
BLAKE2b-256 checksum
How to use checksums
2681108c68c27db9791c00127984b931f07160695c4bd7b4a11e528387158158
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Size 129.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
42e67f590c69430c065dfb8300d6c65e629f5999f444d3805d46b946c69cdb68
BLAKE2b-256 checksum
How to use checksums
d68fed81cd5587d69890af8407ef1411c22ad8848b5c99077dcf2b880710b808
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-win_amd64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-win_amd64.whl
Size 153.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5f45efabee042491895b4ca6aeb61dd960980b12db17b42499ee73855cf188be
BLAKE2b-256 checksum
How to use checksums
6175aabe359152ec06bd4d70fb2082aa3080acbce9420517e585d19ae8261662
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 419.8 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ad5985920f906554cbbaec952d7ac0c5d043d07108a433c0047bcd694b275d1d
BLAKE2b-256 checksum
How to use checksums
896c681e338463e4bd0916bf1db1af315f915aee64342b3b7f1b4e50e995a28b
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 402.6 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
21d1147d04f7268e778f4b72051184858505172757cc4f0c035d1d577d87c920
BLAKE2b-256 checksum
How to use checksums
690392a03ae2f4ec2a530833a21027cceef21cd0a8b0b0485d85a200baabcf33
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 281.1 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c0b6fea79ed0149149ac526cf1e5e300870f8bd9c88ff2b87820efa9094df674
BLAKE2b-256 checksum
How to use checksums
0a174af7811d520f94f217d4f070bf4a0fa59323c61c77677050967011523710
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 267.5 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f8cbb6f66061a8800e952bdf4a0ee22c4bc4b3f8364deb28a603ec06c917eaea
BLAKE2b-256 checksum
How to use checksums
68c35244abfe2e3e544f094ba396f57ad9563d3494ccbf983ecfc93afbef9fb5
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-macosx_11_0_x86_64.whl
Size 135.1 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
2a3091083c827f6f5001f66842d22f874358e21a897809b750345a6993521a7c
BLAKE2b-256 checksum
How to use checksums
dd7ad6df9cc4563c80396dc676185e9de72bf088be1a00a21ab9b18e16730538
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Size 129.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a9385c0c3180e92f5258d43bb6e7b38652e187e273b28d883624bdef11b6073e
BLAKE2b-256 checksum
How to use checksums
a416f8caedf7042628db6e72e5acdbf11ece6a5ae8102441e4dcc801b6d3363e
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-win_amd64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-win_amd64.whl
Size 153.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9ec6969d2fa3c356eece4c61508cfad0fa3e0448efc7101eaa72dfbbe47b54c6
BLAKE2b-256 checksum
How to use checksums
bf819e8b3188204e112cb2c9e2a54aba4531470afa95a82a416196e75b159d5d
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 420.2 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
904d794d7f5c2c823b3b086c5036baf2c5c36b2ecc4fc3c643e684448555d1a8
BLAKE2b-256 checksum
How to use checksums
de41f2ebca0b01eb821e197a1f839cf88bad70a3b23447e307a89e9ed1717110
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 403.0 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c0711c3fcfa7adce7c35de3428e14807c1b6bade716b880ca2c9fe4f6495f82e
BLAKE2b-256 checksum
How to use checksums
aa00a53cb64f9ac9d3cb4e5d5d406b5fd699af1ad72e8b62ab71ff372fe0d168
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 281.5 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d486787a7a15e22ef9525688b37b59793722ad9aae10fad4b024fe9262658a16
BLAKE2b-256 checksum
How to use checksums
27af9cf92a2b1d469a85f8dbd3879cb1284472c2abb7c41f68b24606b5c6646b
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 268.0 kB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
280229e6e35388e42bb9ef2fd368936453093006a669c3d025120a106504b875
BLAKE2b-256 checksum
How to use checksums
71145cf7c1e0f0285436e678e9e1148c779c283e058bb063f7904c6a43946be1
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-macosx_11_0_x86_64.whl
Size 135.5 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5dc6159c6476e7a96625adcebc8ff0aaec56a9f4a8ab56467ce07fd55124a70a
BLAKE2b-256 checksum
How to use checksums
71675bfbc242a4965bc4b3ad41a58b8866d71badecf5be30429829f86b8fa4bf
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Size 130.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1b25fa5dd6b0875826e764d5ce633d001a520d275421a73cce9b822fd5f985db
BLAKE2b-256 checksum
How to use checksums
19f46acaec72bb535d44a9e9144513d0d1c503d68be264e86a1c2622b525e6e1
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-win_amd64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-win_amd64.whl
Size 127.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
cd41431236053affc303246c0bd3b1ee9a31907fd63f64a607506c417b8a4bf1
BLAKE2b-256 checksum
How to use checksums
1f2812394f68d52a06d17648410c5f1ae9a9dbe50960923f5de08ca2ca372064
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 413.6 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4cd8e741d3b3794dc7cc3e1e0f7f49fdec4ff88d67d2f18e9d79c713e5e0d9a3
BLAKE2b-256 checksum
How to use checksums
17e37202c90b9412c4455a83530f00c7aa60842bb23f9d9490bef4f1de497df1
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
Size 397.3 kB
Tags CPython 3.9 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
a7a8b4ae427b855604e598dc9163c76aff6db0f424b136853bba64d4187dad3c
BLAKE2b-256 checksum
How to use checksums
649c1d65ad0e1c0def2bbf27379bd05214980af52fc1eb6a5cdc4abbb8eb0c5d
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 275.6 kB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
db274bcb9db3dd79687fa7cdd37f7570a4cb300ca6175efc7a22d430717a1a01
BLAKE2b-256 checksum
How to use checksums
9267cce4261ea1aad5c6e0b53c83fb3c106ea0b753c20712900e21300e951caf
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 263.2 kB
Tags CPython 3.9 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b6a556a713ba52a3d07cf32e3432116b62848e71d46620751dc967cb57fbb70d
BLAKE2b-256 checksum
How to use checksums
53cf9c75f3029f2060e1fb1cc158bb108049ef7c6f6fdb2d603af5aa1d194795
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-macosx_11_0_x86_64.whl
Size 132.5 kB
Tags CPython 3.9 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
4565d2ccae82182cc80379a4e65f12b3f7a7e9aea1722b35961dcd0f5ed9f153
BLAKE2b-256 checksum
How to use checksums
b50c9f5551f0b374594b0676e396cf382a8e42227a73ff1f074f6a0af94e7566
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 7, 2026.

Transparency log

Release files / shufflesnap-0.4.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL shufflesnap-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Size 126.5 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bc41e1288be934dd5505d7400cdbfdb6bc32026deab3508b33b6076023cebb59
BLAKE2b-256 checksum
How to use checksums
ee89b637bf4ec395c1aec5d044ddedd2774dea77f42ecb96638877f40a42959f
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 7, 2026.

Transparency log

Security for shufflesnap 0.4.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 43 files in this release have been uploaded with provenance metadata.

Select from 43 files

Attestation for shufflesnap-0.4.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 Oct 7, 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

0.4.0 This release

43 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