1515
1616import grpclib .const
1717
18- from .._types import (
19- ST ,
20- T ,
21- )
22-
2318
2419if TYPE_CHECKING :
2520 from grpclib .client import Channel
2621 from grpclib .metadata import Deadline
2722
23+ from .._types import (
24+ ST ,
25+ IProtoMessage ,
26+ Message ,
27+ T ,
28+ )
29+
2830
2931Value = Union [str , bytes ]
3032MetadataLike = Union [Mapping [str , Value ], Collection [Tuple [str , Value ]]]
31- MessageLike = Union [T , ST ]
32- MessageSource = Union [Iterable [ST ], AsyncIterable [ST ]]
33+ MessageSource = Union [Iterable ["IProtoMessage" ], AsyncIterable ["IProtoMessage" ]]
3334
3435
3536class ServiceStub (ABC ):
@@ -65,13 +66,13 @@ def __resolve_request_kwargs(
6566 async def _unary_unary (
6667 self ,
6768 route : str ,
68- request : MessageLike ,
69- response_type : Type [T ],
69+ request : "IProtoMessage" ,
70+ response_type : Type ["T" ],
7071 * ,
7172 timeout : Optional [float ] = None ,
7273 deadline : Optional ["Deadline" ] = None ,
7374 metadata : Optional [MetadataLike ] = None ,
74- ) -> T :
75+ ) -> "T" :
7576 """Make a unary request and return the response."""
7677 async with self .channel .request (
7778 route ,
@@ -88,13 +89,13 @@ async def _unary_unary(
8889 async def _unary_stream (
8990 self ,
9091 route : str ,
91- request : MessageLike ,
92- response_type : Type [T ],
92+ request : "IProtoMessage" ,
93+ response_type : Type ["T" ],
9394 * ,
9495 timeout : Optional [float ] = None ,
9596 deadline : Optional ["Deadline" ] = None ,
9697 metadata : Optional [MetadataLike ] = None ,
97- ) -> AsyncIterator [T ]:
98+ ) -> AsyncIterator ["T" ]:
9899 """Make a unary request and return the stream response iterator."""
99100 async with self .channel .request (
100101 route ,
@@ -111,13 +112,13 @@ async def _stream_unary(
111112 self ,
112113 route : str ,
113114 request_iterator : MessageSource ,
114- request_type : Type [ST ],
115- response_type : Type [T ],
115+ request_type : Type ["IProtoMessage" ],
116+ response_type : Type ["T" ],
116117 * ,
117118 timeout : Optional [float ] = None ,
118119 deadline : Optional ["Deadline" ] = None ,
119120 metadata : Optional [MetadataLike ] = None ,
120- ) -> T :
121+ ) -> "T" :
121122 """Make a stream request and return the response."""
122123 async with self .channel .request (
123124 route ,
@@ -135,13 +136,13 @@ async def _stream_stream(
135136 self ,
136137 route : str ,
137138 request_iterator : MessageSource ,
138- request_type : Type [ST ],
139- response_type : Type [T ],
139+ request_type : Type ["IProtoMessage" ],
140+ response_type : Type ["T" ],
140141 * ,
141142 timeout : Optional [float ] = None ,
142143 deadline : Optional ["Deadline" ] = None ,
143144 metadata : Optional [MetadataLike ] = None ,
144- ) -> AsyncIterator [T ]:
145+ ) -> AsyncIterator ["T" ]:
145146 """
146147 Make a stream request and return an AsyncIterator to iterate over response
147148 messages.
0 commit comments