The published imapclient 3.1.0 wheel contains imapclient/__pycache__/__init__.cpython-37.pyc, imapclient/__pycache__/config.cpython-37.pyc, imapclient/__pycache__/datetime_util.cpython-37.pyc, imapclient/__pycache__/exceptions.cpython-37.pyc, imapclient/__pycache__/fixed_offset.cpython-37.pyc, imapclient/__pycache__/imap4.cpython-37.pyc — compiled bytecode from older Pythons that a clean build of the sdist does not produce. It bloats the wheel, and bytecode without matching reviewable source in the artifact is worth avoiding on principle. A rebuild from a clean tree (or excluding __pycache__ at build time) fixes it on the next release.
Found by a wheel/sdist divergence census of popular PyPI packages (wheelproof, results/divergence.md); self-check with wheelproof divcheck --package <name>. Verified twice in clean python:3.12 containers with exact file-list agreement.
The published imapclient 3.1.0 wheel contains
imapclient/__pycache__/__init__.cpython-37.pyc,imapclient/__pycache__/config.cpython-37.pyc,imapclient/__pycache__/datetime_util.cpython-37.pyc,imapclient/__pycache__/exceptions.cpython-37.pyc,imapclient/__pycache__/fixed_offset.cpython-37.pyc,imapclient/__pycache__/imap4.cpython-37.pyc— compiled bytecode from older Pythons that a clean build of the sdist does not produce. It bloats the wheel, and bytecode without matching reviewable source in the artifact is worth avoiding on principle. A rebuild from a clean tree (or excluding__pycache__at build time) fixes it on the next release.Found by a wheel/sdist divergence census of popular PyPI packages (wheelproof, results/divergence.md); self-check with
wheelproof divcheck --package <name>. Verified twice in clean python:3.12 containers with exact file-list agreement.