Your wheel can be a valid zip and still break installers. I built a checker for that.
Описание и применение
zipgate проверяет ZIP64‑структуры в wheel‑файлах, выявляя ошибки, которые приводят к сбоям установщиков, и позволяет исправлять их до загрузки.
Задача
Large or retagged Python wheels may contain malformed ZIP64 structures that cause strict installers to fail, even though Python’s zipfile module tolerates them.
Результат
zipgate successfully identified malformed ZIP64 structures in wheels retagged with wheel 0.47.0, while wheels built with wheel 0.48.0 passed validation.
Рабочий процесс
- 1. Install zipgate via pip:
pip install zipgate - 2. Run zipgate against a wheel:
zipgate dist/*.whl - 3. Interpret exit codes: 0 = all valid, 1 = at least one invalid, 2 = unreadable
- 4. If invalid, investigate the reported rule violations (e.g., SPURIOUS_ZIP64_LOCAL).
Доказательства
A 5.8 GiB PyTorch ROCm nightly wheel failed to install under uv with zip64 extended information field was too long
Both are the same class of problem: the ZIP64 extra field (0x0001) in the file doesn't match what APPNOTE 4.5.3 requires.
I parse local file headers and central directory entries by hand (not trusting zipfile) and validate…
The 0.47.0 output trips the exact rule the issue describes; 0.48.0 is clean.
- Дата записи: 2026-10-04T08:41:18.999Z