25
25
from .requests import BaseRequest
26
26
27
27
28
- PeerClass = TypeVar ('PeerClass ' , bound = BasePeer )
29
- RequestType = TypeVar ('RequestType ' , bound = BaseRequest )
30
- ResponseType = TypeVar ('ResponseType ' )
31
- ReturnType = TypeVar ('ReturnType ' )
28
+ TPeer = TypeVar ('TPeer ' , bound = BasePeer )
29
+ TRequest = TypeVar ('TRequest ' , bound = BaseRequest )
30
+ TResponse = TypeVar ('TResponse ' )
31
+ TReturn = TypeVar ('TReturn ' )
32
32
33
33
34
- class BaseRequestManager (PeerSubscriber , BaseService , Generic [PeerClass , RequestType , ResponseType , ReturnType ]): # noqa: E501
34
+ class BaseRequestManager (PeerSubscriber , BaseService , Generic [TPeer , TRequest , TResponse , TReturn ]): # noqa: E501
35
35
#
36
36
# PeerSubscriber
37
37
#
@@ -43,11 +43,11 @@ def subscription_msg_types(self) -> Set[Type[Command]]:
43
43
44
44
response_timout : int = 60
45
45
46
- pending_request : Tuple [RequestType , 'asyncio.Future[ReturnType ]' ] = None
46
+ pending_request : Tuple [TRequest , 'asyncio.Future[TReturn ]' ] = None
47
47
48
- _peer : PeerClass
48
+ _peer : TPeer
49
49
50
- def __init__ (self , peer : PeerClass , token : CancelToken ) -> None :
50
+ def __init__ (self , peer : TPeer , token : CancelToken ) -> None :
51
51
self ._peer = peer
52
52
super ().__init__ (token )
53
53
@@ -65,14 +65,14 @@ async def _run(self) -> None:
65
65
self .logger .error ("Unexpected peer: %s expected: %s" , peer , self ._peer )
66
66
continue
67
67
elif isinstance (cmd , self ._response_msg_type ):
68
- self ._handle_msg (cast (ResponseType , msg ))
68
+ self ._handle_msg (cast (TResponse , msg ))
69
69
else :
70
70
self .logger .warning ("Unexpected message type: %s" , cmd .__class__ .__name__ )
71
71
72
72
async def _cleanup (self ) -> None :
73
73
pass
74
74
75
- def _handle_msg (self , msg : ResponseType ) -> None :
75
+ def _handle_msg (self , msg : TResponse ) -> None :
76
76
if self .pending_request is None :
77
77
self .logger .debug (
78
78
"Got unexpected %s message from %" , self .response_msg_name , self ._peer
@@ -95,11 +95,11 @@ def _handle_msg(self, msg: ResponseType) -> None:
95
95
self .pending_request = None
96
96
97
97
@abstractmethod
98
- def _normalize_response (self , msg : ResponseType ) -> ReturnType :
98
+ def _normalize_response (self , msg : TResponse ) -> TReturn :
99
99
pass
100
100
101
101
@abstractmethod
102
- def __call__ (self ) -> ReturnType :
102
+ def __call__ (self ) -> TReturn :
103
103
"""
104
104
Subclasses must both implement this method and override the call
105
105
signature to properly construct the `Request` object and pass it into
@@ -122,12 +122,12 @@ def response_msg_name(self) -> str:
122
122
return self ._response_msg_type .__name__
123
123
124
124
@abstractmethod
125
- def _send_sub_proto_request (self , request : RequestType ) -> None :
125
+ def _send_sub_proto_request (self , request : TRequest ) -> None :
126
126
pass
127
127
128
128
async def _wait_for_response (self ,
129
- request : RequestType ,
130
- timeout : int = None ) -> ReturnType :
129
+ request : TRequest ,
130
+ timeout : int = None ) -> TReturn :
131
131
if self .pending_request is not None :
132
132
self .logger .error (
133
133
"Already waiting for response to %s for peer: %s" ,
@@ -141,7 +141,7 @@ async def _wait_for_response(self,
141
141
)
142
142
)
143
143
144
- future : 'asyncio.Future[ReturnType ]' = asyncio .Future ()
144
+ future : 'asyncio.Future[TReturn ]' = asyncio .Future ()
145
145
self .pending_request = (request , future )
146
146
147
147
try :
@@ -152,7 +152,7 @@ async def _wait_for_response(self,
152
152
153
153
return response
154
154
155
- async def _request_and_wait (self , request : RequestType , timeout : int = None ) -> ReturnType :
155
+ async def _request_and_wait (self , request : TRequest , timeout : int = None ) -> TReturn :
156
156
if timeout is None :
157
157
timeout = self .response_timout
158
158
self ._send_sub_proto_request (request )
0 commit comments