@@ -26,7 +26,6 @@ from grpc import (
2626 GenericRpcHandler ,
2727 HandlerCallDetails ,
2828 RpcError ,
29- RpcMethodHandler ,
3029 ServerCredentials ,
3130 Status ,
3231 StatusCode ,
@@ -437,6 +436,19 @@ class StreamStreamClientInterceptor(ClientInterceptor, metaclass=abc.ABCMeta):
437436
438437# Server-Side Interceptor:
439438
439+ # Async version of grpc.RpcMethodHandler. As opposed to the former, this type
440+ # does not exist at runtime.
441+ @type_check_only
442+ class _AsyncRpcMethodHandler (Generic [_TRequest , _TResponse ]):
443+ request_streaming : bool
444+ response_streaming : bool
445+ request_deserializer : _Deserializer [_TRequest ] | None
446+ response_serializer : _Serializer [_TResponse ] | None
447+ unary_unary : Callable [[_TRequest , ServicerContext [_TRequest , _TResponse ]], Awaitable [_TResponse ]] | None
448+ unary_stream : Callable [[_TRequest , ServicerContext [_TRequest , _TResponse ]], AsyncIterator [_TResponse ]] | None
449+ stream_unary : Callable [[AsyncIterator [_TRequest ], ServicerContext [_TRequest , _TResponse ]], Awaitable [_TResponse ]] | None
450+ stream_stream : Callable [[AsyncIterator [_TRequest ], ServicerContext [_TRequest , _TResponse ]], AsyncIterator [_TResponse ]] | None
451+
440452class ServerInterceptor (metaclass = abc .ABCMeta ):
441453 # This method (not the class) is generic over _TRequest and _TResponse
442454 # and the types must satisfy the no-op implementation of
@@ -447,9 +459,9 @@ class ServerInterceptor(metaclass=abc.ABCMeta):
447459 @abc .abstractmethod
448460 async def intercept_service (
449461 self ,
450- continuation : Callable [[HandlerCallDetails ], Awaitable [RpcMethodHandler [_TRequest , _TResponse ] | None ]],
462+ continuation : Callable [[HandlerCallDetails ], Awaitable [_AsyncRpcMethodHandler [_TRequest , _TResponse ] | None ]],
451463 handler_call_details : HandlerCallDetails ,
452- ) -> RpcMethodHandler [_TRequest , _TResponse ] | None : ...
464+ ) -> _AsyncRpcMethodHandler [_TRequest , _TResponse ] | None : ...
453465
454466# Multi-Callable Interfaces:
455467
0 commit comments