diff --git a/neon_data_models/models/api/mq/neon.py b/neon_data_models/models/api/mq/neon.py index c17b585..1d11f57 100644 --- a/neon_data_models/models/api/mq/neon.py +++ b/neon_data_models/models/api/mq/neon.py @@ -25,7 +25,6 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from typing import Annotated, List, Literal, Union -from ovos_bus_client.message import Message from pydantic import Field, TypeAdapter, model_validator from neon_data_models.models.base import BaseModel @@ -174,16 +173,21 @@ class _RequestData(SkillApiRequestData): description="API request data including `msg_type` and call params" ) - def as_messagebus_message(self) -> Message: + def as_messagebus_message(self) -> "Message": # type: ignore """ Override default Message translation to account for `msg_type` being specified in request data """ - return Message( - msg_type=self.data.msg_type, - data={"args": self.data.args, "kwargs": self.data.kwargs}, - context=self.context.model_dump() - ) + try: + from ovos_bus_client.message import Message + return Message( + msg_type=self.data.msg_type, + data={"args": self.data.args, "kwargs": self.data.kwargs}, + context=self.context.model_dump() + ) + except ImportError: + raise RuntimeError("pip install ovos-bus-client to enable Message " + "deserialization.") class NeonMqCallSkillApiResponse(NeonCallSkillApiResponse, MQContext): """