-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
help wantedAn actionable problem of low to medium complexity where a PR would be very welcomeAn actionable problem of low to medium complexity where a PR would be very welcomestubs: false positiveType checkers report false errorsType checkers report false errors
Description
The grpc.aio.ServerInterceptor is currently annotated using grpc.RpcMethodHandler. However the interface for grpc.RpcMethodHandler is not compatible with async RPC methods. The correct stub for an async version would make use of Awaitable and AsyncIterator:
class RpcMethodHandler(abc.ABC, Generic[_TRequest, _TResponse]):
request_streaming: bool
response_streaming: bool
# XXX: not clear from docs whether this is optional or not
request_deserializer: _Deserializer[_TRequest] | None
# XXX: not clear from docs whether this is optional or not
response_serializer: _Serializer[_TResponse] | None
unary_unary: Callable[[_TRequest, ServicerContext], Awaitable[_TResponse]] | None
unary_stream: Callable[[_TRequest, ServicerContext], AsyncIterator[_TResponse]] | None
stream_unary: Callable[[Iterator[_TRequest], ServicerContext], Awaitable[_TResponse]] | None
stream_stream: Callable[[Iterator[_TRequest], ServicerContext], AsyncIterator[_TResponse]] | NoneReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
help wantedAn actionable problem of low to medium complexity where a PR would be very welcomeAn actionable problem of low to medium complexity where a PR would be very welcomestubs: false positiveType checkers report false errorsType checkers report false errors