Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 22 additions & 29 deletions src/python/grpcio/grpc/_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@ class _RegisteredMethod(_Method[RequestType, ResponseType]):
def __init__(
self,
name: str,
registered_handler: Optional[grpc.RpcMethodHandler[RequestType, ResponseType]],
registered_handler: Optional[
grpc.RpcMethodHandler[RequestType, ResponseType]
],
):
self._name = name
self._registered_handler = registered_handler
Expand All @@ -163,7 +165,9 @@ def handler(
class _GenericMethod(_Method[RequestType, ResponseType]):
def __init__(
self,
generic_handlers: List[grpc.GenericRpcHandler[RequestType, ResponseType]],
generic_handlers: List[
grpc.GenericRpcHandler[RequestType, ResponseType]
],
):
self._generic_handlers = generic_handlers

Expand All @@ -181,7 +185,7 @@ def handler(
service_fn = getattr(generic_handler, "service", None)
if callable(service_fn):
method_handler = cast(
Optional[grpc.RpcMethodHandler[RequestType, ResponseType]],
"Optional[grpc.RpcMethodHandler[RequestType, ResponseType]]",
service_fn(handler_call_details),
)
if method_handler is not None:
Expand Down Expand Up @@ -931,7 +935,7 @@ def _get_request_deserializer(
],
) -> Optional[DeserializingFunction[RequestType]]:
return cast(
Optional[DeserializingFunction[RequestType]],
"Optional[DeserializingFunction[RequestType]]",
getattr(method_handler, "request_deserializer", None),
)

Expand All @@ -942,7 +946,7 @@ def _get_response_serializer(
],
) -> Optional[SerializingFunction[ResponseType]]:
return cast(
Optional[SerializingFunction[ResponseType]],
"Optional[SerializingFunction[ResponseType]]",
getattr(method_handler, "response_serializer", None),
)

Expand All @@ -956,12 +960,7 @@ def _get_unary_stream(
]
]:
return cast(
Optional[
Callable[
[RequestType, _common.ServicerContext],
Iterator[ResponseType],
]
],
"Optional[Callable[[RequestType, _common.ServicerContext], Iterator[ResponseType]]]",
getattr(method_handler, "unary_stream", None),
)

Expand All @@ -975,12 +974,7 @@ def _get_stream_unary(
]
]:
return cast(
Optional[
Callable[
[Iterator[RequestType], _common.ServicerContext],
ResponseType,
]
],
"Optional[Callable[[Iterator[RequestType], _common.ServicerContext], ResponseType]]",
getattr(method_handler, "stream_unary", None),
)

Expand All @@ -994,12 +988,7 @@ def _get_stream_stream(
]
]:
return cast(
Optional[
Callable[
[Iterator[RequestType], _common.ServicerContext],
Iterator[ResponseType],
]
],
"Optional[Callable[[Iterator[RequestType], _common.ServicerContext], Iterator[ResponseType]]]",
getattr(method_handler, "stream_stream", None),
)

Expand Down Expand Up @@ -1041,9 +1030,7 @@ def _handle_unary_stream(
raise ValueError(_UNEXPECTED_NONE_METHOD_HANDLER_MSG)
request_deserializer = _get_request_deserializer(method_handler)
response_serializer = _get_response_serializer(method_handler)
unary_request = _unary_request(
rpc_event, state, request_deserializer
)
unary_request = _unary_request(rpc_event, state, request_deserializer)
thread_pool = _select_thread_pool_for_behavior(
unary_stream, default_thread_pool
)
Expand Down Expand Up @@ -1318,14 +1305,18 @@ def __init__(


def _add_generic_handlers(
state: _ServerState, generic_handlers: Iterable[grpc.GenericRpcHandler[Any, Any]]
state: _ServerState,
generic_handlers: Iterable[grpc.GenericRpcHandler[Any, Any]],
) -> None:
with state.lock:
state.generic_handlers.extend(generic_handlers)


def _add_registered_method_handlers(
state: _ServerState, method_handlers: Dict[str, grpc.RpcMethodHandler[RequestType, ResponseType]]
state: _ServerState,
method_handlers: Dict[
str, grpc.RpcMethodHandler[RequestType, ResponseType]
],
) -> None:
with state.lock:
state.registered_method_handlers.update(method_handlers)
Expand Down Expand Up @@ -1582,7 +1573,9 @@ def add_generic_rpc_handlers(
def add_registered_method_handlers(
self,
service_name: str,
method_handlers: Dict[str, grpc.RpcMethodHandler[RequestType, ResponseType]],
method_handlers: Dict[
str, grpc.RpcMethodHandler[RequestType, ResponseType]
],
) -> None:
# Can't register method once server started.
with self._state.lock:
Expand Down
3 changes: 2 additions & 1 deletion src/python/grpcio/grpc/aio/_interceptor.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ class ServerInterceptor(metaclass=ABCMeta):
async def intercept_service(
self,
continuation: Callable[
[grpc.HandlerCallDetails], Awaitable[grpc.RpcMethodHandler[Any, Any]]
[grpc.HandlerCallDetails],
Awaitable[grpc.RpcMethodHandler[Any, Any]],
],
handler_call_details: grpc.HandlerCallDetails,
) -> grpc.RpcMethodHandler[Any, Any]:
Expand Down