first commit
This commit is contained in:
45
agent_dhal/agentdhal_extensions/runtimes/grpc/_utils.py
Normal file
45
agent_dhal/agentdhal_extensions/runtimes/grpc/_utils.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from agentdhal_core._subscription import Subscription
|
||||
from agentdhal_core._type_prefix_subscription import TypePrefixSubscription
|
||||
from agentdhal_core._type_subscription import TypeSubscription
|
||||
|
||||
from .protos import agent_worker_pb2
|
||||
|
||||
|
||||
def subscription_to_proto(subscription: Subscription) -> agent_worker_pb2.Subscription:
|
||||
match subscription:
|
||||
case TypeSubscription(topic_type=topic_type, agent_type=agent_type, id=id):
|
||||
return agent_worker_pb2.Subscription(
|
||||
id=id,
|
||||
typeSubscription=agent_worker_pb2.TypeSubscription(topic_type=topic_type, agent_type=agent_type),
|
||||
)
|
||||
case TypePrefixSubscription(topic_type_prefix=topic_type_prefix, agent_type=agent_type, id=id):
|
||||
return agent_worker_pb2.Subscription(
|
||||
id=id,
|
||||
typePrefixSubscription=agent_worker_pb2.TypePrefixSubscription(
|
||||
topic_type_prefix=topic_type_prefix, agent_type=agent_type
|
||||
),
|
||||
)
|
||||
case _:
|
||||
raise ValueError("Unsupported subscription type.")
|
||||
|
||||
|
||||
def subscription_from_proto(subscription: agent_worker_pb2.Subscription) -> Subscription:
|
||||
oneofcase = subscription.WhichOneof("subscription")
|
||||
match oneofcase:
|
||||
case "typeSubscription":
|
||||
type_subscription_msg: agent_worker_pb2.TypeSubscription = subscription.typeSubscription
|
||||
return TypeSubscription(
|
||||
topic_type=type_subscription_msg.topic_type,
|
||||
agent_type=type_subscription_msg.agent_type,
|
||||
id=subscription.id,
|
||||
)
|
||||
|
||||
case "typePrefixSubscription":
|
||||
type_prefix_subscription_msg: agent_worker_pb2.TypePrefixSubscription = subscription.typePrefixSubscription
|
||||
return TypePrefixSubscription(
|
||||
topic_type_prefix=type_prefix_subscription_msg.topic_type_prefix,
|
||||
agent_type=type_prefix_subscription_msg.agent_type,
|
||||
id=subscription.id,
|
||||
)
|
||||
case None:
|
||||
raise ValueError("Invalid subscription message.")
|
||||
Reference in New Issue
Block a user