Verify wheel contents are correct.
(wheel_path: str)
| 610 | |
| 611 | |
| 612 | def _verify_wheel(wheel_path: str) -> bool: |
| 613 | """Verify wheel contents are correct.""" |
| 614 | import zipfile |
| 615 | |
| 616 | print(f" Verifying wheel contents: {os.path.basename(wheel_path)}") |
| 617 | |
| 618 | try: |
| 619 | with zipfile.ZipFile(wheel_path, "r") as whl: |
| 620 | file_list = whl.namelist() |
| 621 | |
| 622 | # Check for UI build artifacts |
| 623 | ui_files = [f for f in file_list if "burr/tracking/server/build/" in f] |
| 624 | if not ui_files: |
| 625 | print(" ✗ No UI build artifacts found") |
| 626 | return False |
| 627 | print(f" ✓ Found {len(ui_files)} UI build files") |
| 628 | |
| 629 | # Check for required examples |
| 630 | for example in REQUIRED_EXAMPLES: |
| 631 | prefix = f"burr/examples/{example}" |
| 632 | example_files = [f for f in file_list if f.startswith(prefix)] |
| 633 | if not example_files: |
| 634 | print(f" ✗ Required example not found: {example}") |
| 635 | return False |
| 636 | |
| 637 | print(" ✓ All 4 required examples found") |
| 638 | print(f" ✓ Wheel contains {len(file_list)} total files") |
| 639 | return True |
| 640 | |
| 641 | except Exception as e: |
| 642 | print(f" ✗ Error verifying wheel: {e}") |
| 643 | return False |
| 644 | |
| 645 | |
| 646 | def _verify_wheel_with_twine(wheel_path: str) -> bool: |