#!/usr/bin/env python3 """Reject development artifacts accidentally bundled in a wheel.""" from pathlib import Path from zipfile import ZipFile wheel = next(Path('dist').glob('*.whl')) forbidden = {'.ci-venv', '.test-venv', '.venv', '__pycache__'} with ZipFile(wheel) as archive: invalid = [ name for name in archive.namelist() if forbidden.intersection(Path(name).parts) or name.endswith(('.pyc', '.pyo')) ] if invalid: raise SystemExit(f'Forbidden wheel content: {invalid[:10]}') print(f'Validated clean wheel: {wheel}')