ruvnet/RuView · error · ImportError
wifi_densepose.meridian is not in the binary wheels yet (see
Error message
wifi_densepose.meridian is not in the binary wheels yet (see ruvnet/RuView#1412). Build from source with `maturin ... --features meridian` (or `--features sota`).
What it means
wifi_densepose.meridian re-exports MERIDIAN symbols — HardwareType, CanonicalCsiFrame, HardwareNormalizer, MeridianGeometryConfig, GeometryEncoder, RapidAdaptation, AdaptationResult — from `_native`. They exist only under the Rust `meridian` (or `sota`) cargo feature; a base wheel deliberately excludes them (ADR-185 §6 acceptance, ruvnet/RuView#1412), so the import raises ImportError.
Source
Thrown at python/wifi_densepose/meridian.py:36
frame = norm.normalize(amplitude, phase, hw) # -> CanonicalCsiFrame
print(len(frame.amplitude), frame.hardware_type)
Note (honest scope, ADR-185 §3.3): the ADR's ``RapidAdaptation.calibrate``
/ ``AdaptationResult.converged`` do not exist in the Rust core — use
``push_frame(...)`` then ``adapt()``; the result exposes ``final_loss``,
``frames_used``, ``adaptation_epochs``. Training-time types
(DomainFactorizer, GradientReversalLayer, VirtualDomainAugmentor) are
out of scope for P6 (they need the deferred libtorch training tier).
"""
from __future__ import annotations
from wifi_densepose import _native
# MERIDIAN symbols are compiled into `_native` only under the Rust
# `meridian` feature; absent in a base wheel (ADR-185 §6 acceptance).
if not hasattr(_native, "HardwareNormalizer"):
raise ImportError(
"wifi_densepose.meridian is not in the binary wheels yet "
"(see ruvnet/RuView#1412). Build from source with "
"`maturin ... --features meridian` (or `--features sota`)."
)
HardwareType = _native.HardwareType
CanonicalCsiFrame = _native.CanonicalCsiFrame
HardwareNormalizer = _native.HardwareNormalizer
MeridianGeometryConfig = _native.MeridianGeometryConfig
GeometryEncoder = _native.GeometryEncoder
RapidAdaptation = _native.RapidAdaptation
AdaptationResult = _native.AdaptationResult
CrossDomainEvaluator = _native.CrossDomainEvaluator
mpjpe = _native.mpjpe
__all__ = [
"HardwareType",
"CanonicalCsiFrame",View on GitHub (pinned to 4685618388)
Solutions
- Build from source with the feature: `maturin build --release --features meridian` (or `--features sota`) and pip-install the wheel
- Feature-detect with `hasattr(wifi_densepose._native, "HardwareNormalizer")` before importing the submodule
- Track ruvnet/RuView#1412 for wheel enablement; note training-tier types (DomainFactorizer etc.) are out of scope per the module docstring
Example fix
# before
from wifi_densepose.meridian import HardwareNormalizer # ImportError on wheels
# after
from wifi_densepose import _native
if not hasattr(_native, "HardwareNormalizer"):
raise SystemExit("build with: maturin build --release --features meridian")
from wifi_densepose.meridian import HardwareNormalizer Defensive patterns
Strategy: validation
Validate before calling
from wifi_densepose import _native
MERIDIAN_AVAILABLE = hasattr(_native, "HardwareNormalizer")
if not MERIDIAN_AVAILABLE:
raise SystemExit("build with: maturin build --release --features meridian")
from wifi_densepose.meridian import HardwareNormalizer Try / catch
try:
from wifi_densepose import meridian
except ImportError as e:
if "not in the binary wheels yet" in str(e):
log.warning("meridian unavailable: build with --features meridian")
meridian = None
else:
raise Prevention
- Feature-detect hasattr(_native, 'HardwareNormalizer') before importing the submodule
- Note the ADR-185 scope: training-tier types are absent even with the feature
- Standardize one maturin build command (or --features sota) across the team
When it happens
Trigger: `import wifi_densepose.meridian` or `from wifi_densepose.meridian import HardwareNormalizer` on a prebuilt binary wheel install.
Common situations: Cross-hardware normalization / domain-adaptation work deployed from PyPI wheels; fresh checkouts using wheels; CI without a maturin build step.
Related errors
- wifi_densepose.aether is not in the binary wheels yet (see r
- wifi_densepose.mat is not in the binary wheels yet (see ruvn
- wifi-densepose 1.x has been superseded by v2.0.0 which wraps
- module 'wifi_densepose.client' has no attribute {name!r}
- Core dependencies not found. Make sure you installed from th
AI-assisted analysis of ruvnet/RuView@4685618388 (2026-08-16).
Data as JSON: /api/errors/94f128cffcd49514.
Report an issue: GitHub.