"""No-op MAVLink connection used in dev/CI (pymavlink absent). Extracted from gps_denied/core/mavlink.py (Plan 01-06). The legacy import path (gps_denied.core.mavlink) re-exports this class. """ from __future__ import annotations class MockMAVConnection: """No-op MAVLink connection used when pymavlink is not installed.""" def __init__(self): self._sent: list[dict] = [] self._rx_messages: list = [] def mav(self): return self def gps_input_send(self, *args, **kwargs) -> None: # noqa: D102 self._sent.append({"type": "GPS_INPUT", "args": args, "kwargs": kwargs}) def named_value_float_send(self, *args, **kwargs) -> None: # noqa: D102 self._sent.append({"type": "NAMED_VALUE_FLOAT", "args": args, "kwargs": kwargs}) def recv_match(self, type=None, blocking=False, timeout=0.1): # noqa: D102 return None def close(self) -> None: pass