"""Represents a feature discovery query message."""
from typing import Optional
from marshmallow import EXCLUDE, fields
from .....messaging.agent_message import AgentMessage, AgentMessageSchema
from ..message_types import PROTOCOL_PACKAGE, QUERY
HANDLER_CLASS = f"{PROTOCOL_PACKAGE}.handlers.query_handler.QueryHandler"
[docs]class Query(AgentMessage):
"""Represents a feature discovery query.
Used for inspecting what message types are supported by the agent.
"""
def __init__(
self, *, query: Optional[str] = None, comment: Optional[str] = None, **kwargs
):
"""Initialize query message object.
Args:
query: The query string to match against supported message types
comment: An optional comment
"""
super().__init__(**kwargs)
self.query = query
self.comment = comment
[docs]class QuerySchema(AgentMessageSchema):
"""Query message schema used in serialization/deserialization."""
query = fields.Str(required=True)
comment = fields.Str(required=False, allow_none=True)