14 """Base implementation of reflection servicer."""
22 _POOL = descriptor_pool.Default()
26 return _reflection_pb2.ServerReflectionResponse(
27 error_response=_reflection_pb2.ErrorResponse(
28 error_code=grpc.StatusCode.NOT_FOUND.value[0],
29 error_message=grpc.StatusCode.NOT_FOUND.value[1].
encode(),
34 proto = descriptor_pb2.FileDescriptorProto()
35 descriptor.CopyToProto(proto)
36 serialized_proto = proto.SerializeToString()
37 return _reflection_pb2.ServerReflectionResponse(
38 file_descriptor_response=_reflection_pb2.FileDescriptorResponse(
39 file_descriptor_proto=(serialized_proto,)),)
43 """Base class for reflection servicer."""
49 service_names: Iterable of fully-qualified service names available.
50 pool: An optional DescriptorPool instance.
53 self.
_pool = _POOL
if pool
is None else pool
74 message_descriptor = self.
_pool.FindMessageTypeByName(
77 message_descriptor, extension_number)
79 extension_descriptor.full_name)
87 message_descriptor = self.
_pool.FindMessageTypeByName(
89 extension_numbers = tuple(
90 sorted(extension.number
for extension
in
95 return _reflection_pb2.ServerReflectionResponse(
96 all_extension_numbers_response=_reflection_pb2.
97 ExtensionNumberResponse(
98 base_type_name=message_descriptor.full_name,
99 extension_number=extension_numbers))
102 return _reflection_pb2.ServerReflectionResponse(
103 list_services_response=_reflection_pb2.ListServiceResponse(service=[
104 _reflection_pb2.ServiceResponse(name=service_name)
109 __all__ = [
'BaseReflectionServicer']