@@ -69,7 +69,7 @@ class ResponseCandidateStream(
69
69
#
70
70
@property
71
71
def subscription_msg_types (self ) -> Set [Type [Command ]]:
72
- return {self ._response_msg_type }
72
+ return {self .response_msg_type }
73
73
74
74
msg_queue_maxsize = 100
75
75
@@ -87,7 +87,7 @@ def __init__(
87
87
super ().__init__ (token )
88
88
self ._peer = peer
89
89
self .response_times = ResponseTimeTracker ()
90
- self ._response_msg_type = response_msg_type
90
+ self .response_msg_type = response_msg_type
91
91
92
92
async def payload_candidates (
93
93
self ,
@@ -105,7 +105,7 @@ async def payload_candidates(
105
105
106
106
@property
107
107
def response_msg_name (self ) -> str :
108
- return self ._response_msg_type .__name__
108
+ return self .response_msg_type .__name__
109
109
110
110
def complete_request (self , item_count : int ) -> None :
111
111
self .pending_request = None
@@ -123,7 +123,7 @@ async def _run(self) -> None:
123
123
if peer != self ._peer :
124
124
self .logger .error ("Unexpected peer: %s expected: %s" , peer , self ._peer )
125
125
continue
126
- elif isinstance (cmd , self ._response_msg_type ):
126
+ elif isinstance (cmd , self .response_msg_type ):
127
127
await self ._handle_msg (cast (TResponsePayload , msg ))
128
128
else :
129
129
self .logger .warning ("Unexpected payload type: %s" , cmd .__class__ .__name__ )
@@ -176,8 +176,8 @@ def _request(self, request: BaseRequest[TRequestPayload]) -> None:
176
176
def _is_pending (self ) -> bool :
177
177
return self .pending_request is not None
178
178
179
- def get_stats (self ) -> str :
180
- return '%s: %s' % (self .response_msg_name , self .response_times .get_stats ())
179
+ def get_stats (self ) -> Tuple [ str , str ] :
180
+ return (self .response_msg_name , self .response_times .get_stats ())
181
181
182
182
183
183
class ExchangeManager (Generic [TRequestPayload , TResponsePayload , TResult ]):
@@ -186,14 +186,16 @@ class ExchangeManager(Generic[TRequestPayload, TResponsePayload, TResult]):
186
186
def __init__ (
187
187
self ,
188
188
peer : BasePeer ,
189
+ listening_for : Type [Command ],
189
190
cancel_token : CancelToken ) -> None :
190
191
self ._peer = peer
191
192
self ._cancel_token = cancel_token
193
+ self ._response_command_type = listening_for
192
194
193
- async def launch_service (self , listening_for : Type [ Command ] ) -> None :
195
+ async def launch_service (self ) -> None :
194
196
self ._response_stream = ResponseCandidateStream (
195
197
self ._peer ,
196
- listening_for ,
198
+ self . _response_command_type ,
197
199
self ._cancel_token ,
198
200
)
199
201
self ._peer .run_daemon (self ._response_stream )
@@ -248,5 +250,8 @@ def service(self) -> BaseService:
248
250
"""
249
251
return self ._response_stream
250
252
251
- def get_stats (self ) -> str :
252
- return self ._response_stream .get_stats ()
253
+ def get_stats (self ) -> Tuple [str , str ]:
254
+ if self ._response_stream is None :
255
+ return (self ._response_command_type .__name__ , 'Uninitialized' )
256
+ else :
257
+ return self ._response_stream .get_stats ()
0 commit comments