from collections.abc import Callable, Iterable from numbers import Integral from .specs import MsgDict _SPECIAL_CASES: dict[int, Callable[[Iterable[int | Integral]], dict[str, object]]] def decode_message(msg_bytes: Iterable[int | Integral], time: int = 0, check: bool = True) -> MsgDict: """Decode message bytes and return messages as a dictionary. Raises ValueError if the bytes are out of range or the message is invalid. This is not a part of the public API. """