python/typeshed
Auf GitHub ansehengrpc.aio.ServerInterceptor is incompatible with async RPC methods
Open
#15.495 geöffnet am 8. März 2026
help wantedstubs: false positive
Repository-Metriken
- Stars
- (3.436 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 12T 21h) (66 gemergte PRs in 30 T)
Beschreibung
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