roboflow/supervision · error · ValueError
expected one METADATA file in {wheel}, found {metadata_paths
Error message
expected one METADATA file in {wheel}, found {metadata_paths} What it means
Error "expected one METADATA file in {wheel}, found {metadata_paths}" thrown in roboflow/supervision.
Source
Thrown at .github/scripts/verify_clean_wheel.py:30
_MANIFEST_CHECKS = {
"import-supervision",
"no-cv2-module",
"fallback-backend",
"bgr-to-gray",
"draw-rectangle",
"required-pyav",
}
def _wheel_metadata(wheel: Path) -> Message:
"""Read the core metadata embedded in a wheel archive."""
with zipfile.ZipFile(wheel) as archive:
metadata_paths = [
name for name in archive.namelist() if name.endswith("/METADATA")
]
if len(metadata_paths) != 1:
raise ValueError(
f"expected one METADATA file in {wheel}, found {metadata_paths}"
)
return message_from_bytes(archive.read(metadata_paths[0]))
def _validate_metadata(wheel: Path) -> None:
"""Reject wheels that retain an OpenCV runtime requirement or extra."""
metadata = _wheel_metadata(wheel)
requirements = metadata.get_all("Requires-Dist", [])
extras = metadata.get_all("Provides-Extra", [])
if any("opencv" in requirement.lower() for requirement in requirements):
raise ValueError(
f"OpenCV runtime requirement remains in {wheel}: {requirements}"
)
if any("opencv" in extra.lower() for extra in extras):
raise ValueError(f"OpenCV extra remains in {wheel}: {extras}")
View on GitHub (pinned to 7f254d9784)
Solutions
- Rebuild the wheel so it contains exactly one METADATA file; the current artifact is malformed.
- Inspect the wheel packaging step for duplicate or missing dist-info metadata.
When it happens
Trigger: Thrown at .github/scripts/verify_clean_wheel.py:30 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of roboflow/supervision@7f254d9784 (2026-08-15).
Data as JSON: /api/errors/60ef46e1d29e429f.
Report an issue: GitHub.