14 """Reference implementation for reflection in gRPC Python."""
23 SERVICE_NAME = _reflection_pb2.DESCRIPTOR.services_by_name[
24 'ServerReflection'].full_name
28 """Servicer handling RPCs for service statuses."""
32 for request
in request_iterator:
33 if request.HasField(
'file_by_filename'):
35 elif request.HasField(
'file_containing_symbol'):
37 request.file_containing_symbol)
38 elif request.HasField(
'file_containing_extension'):
40 request.file_containing_extension.containing_type,
41 request.file_containing_extension.extension_number)
42 elif request.HasField(
'all_extension_numbers_of_type'):
44 request.all_extension_numbers_of_type)
45 elif request.HasField(
'list_services'):
48 yield _reflection_pb2.ServerReflectionResponse(
49 error_response=_reflection_pb2.ErrorResponse(
50 error_code=grpc.StatusCode.INVALID_ARGUMENT.value[0],
51 error_message=grpc.StatusCode.INVALID_ARGUMENT.value[1].
56 _enable_server_reflection_doc =
"""Enables server reflection on a server.
59 service_names: Iterable of fully-qualified service names available.
60 server: grpc.Server to which reflection service will be added.
61 pool: DescriptorPool object to use (descriptor_pool.Default() if None).
64 if sys.version_info[0] >= 3
and sys.version_info[1] >= 6:
68 from .
import _async
as aio
71 if isinstance(server, grpc_aio.Server):
72 _reflection_pb2_grpc.add_ServerReflectionServicer_to_server(
73 aio.ReflectionServicer(service_names, pool=pool), server)
75 _reflection_pb2_grpc.add_ServerReflectionServicer_to_server(
78 enable_server_reflection.__doc__ = _enable_server_reflection_doc
83 "enable_server_reflection",
89 _reflection_pb2_grpc.add_ServerReflectionServicer_to_server(
92 enable_server_reflection.__doc__ = _enable_server_reflection_doc
97 "enable_server_reflection",