python/typeshed
Ver no GitHubgrpc.aio.ServerInterceptor is incompatible with async RPC methods
Open
#15.495 aberto em 8 de mar. de 2026
help wantedstubs: false positive
Métricas do repositório
- Stars
- (3.436 stars)
- Métricas de merge de PR
- (Mesclagem média 12d 21h) (66 fundiu PRs em 30d)
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]] | None