Skip to content

Commit 81a9ed2

Browse files
Fix typing
1 parent 116efa8 commit 81a9ed2

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

pyleco/utils/extended_data_publisher.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
from __future__ import annotations
2626
from json import JSONDecodeError
27-
from typing import Any, Callable, Generator, Union
27+
from typing import Any, cast, Callable, Generator, Union
2828

2929
from ..json_utils.errors import JSONRPCError, NODE_UNKNOWN, RECEIVER_UNKNOWN
3030
from ..json_utils.json_objects import Notification
@@ -60,14 +60,16 @@ def convert_data_message_to_messages(
6060
self, data_message: DataMessage, receivers: Union[set[Union[bytes, str]], set[bytes]],
6161
) -> Generator[Message, Any, Any]:
6262
cid = data_message.conversation_id
63-
for receiver in receivers:
64-
yield Message(
65-
receiver=receiver,
63+
raw_message = Message(
64+
receiver="dummy",
6665
data=Notification("add_subscription_message"),
6766
conversation_id=cid,
6867
additional_payload=data_message.payload,
6968
message_type=MessageTypes.JSON,
7069
)
70+
for receiver in receivers:
71+
raw_message.receiver = receiver.encode() if isinstance(receiver, str) else receiver
72+
yield raw_message
7173

7274
def send_message(self, message: DataMessage) -> None:
7375
super().send_message(message)
@@ -78,7 +80,7 @@ def send_message(self, message: DataMessage) -> None:
7880
# TODO should unregister subscribers to which a message could not be forwarded
7981
def handle_json_error(self, message: Message) -> None:
8082
"""Unregister unavailable subscribers.
81-
83+
8284
Call this method from the message handler, for example.
8385
"""
8486
try:
@@ -91,12 +93,12 @@ def handle_json_error(self, message: Message) -> None:
9193
except JSONRPCError as exc:
9294
error_code = exc.rpc_error.code
9395
try:
94-
error_data = exc.rpc_error.data # type: ignore
96+
error_data = cast(str, exc.rpc_error.data) # type: ignore
9597
except AttributeError:
9698
return
97-
if error_code == RECEIVER_UNKNOWN:
99+
if error_code == RECEIVER_UNKNOWN.code:
98100
self.unregister_subscriber(error_data)
99-
if error_code == NODE_UNKNOWN:
101+
if error_code == NODE_UNKNOWN.code:
100102
if isinstance(error_data, str):
101103
error_data = error_data.encode()
102104
for subscriber in self.subscribers:

0 commit comments

Comments
 (0)