19 lines
566 B
Python
19 lines
566 B
Python
#!/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}')
|