Django-grpc-framework генерирует странный код gRPC

Когда я генерирую код gRPC в моем проекте django-grpc-framework, используя команду:

python -m grpc_tools.protoc --proto_path=./ --python_out=./temp --grpc_python_out=./temp ./config.proto

что-то генерируется, но config_pb2 выглядит таким пустым:

# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: config.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor 
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63onfig.proto\x12\x0c\x63onfig_proto\x1a\x1bgoogle/protobuf/empty.proto\"u\n\rConfigMessage\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0f\n\x07is_used\x18\x03 \x01(\x08\x1a\x31\n\x03Key\x12\x13\n\x0bservice_key\x18\x01 \x01(\t\x12\x15\n\rservice_value\x18\x02 \x01(\t\"\x1a\n\x18\x43onfigMessageListRequest\"*\n\x1c\x43onfigMessageRetrieveRequest\x12\n\n\x02id\x18\x01 \x01(\x05\x32\x88\x03\n\x10\x43onfigController\x12O\n\x04List\x12&.config_proto.ConfigMessageListRequest\x1a\x1b.config_proto.ConfigMessage\"\x00\x30\x01\x12\x44\n\x06\x43reate\x12\x1b.config_proto.ConfigMessage\x1a\x1b.config_proto.ConfigMessage\"\x00\x12U\n\x08Retrieve\x12*.config_proto.ConfigMessageRetrieveRequest\x1a\x1b.config_proto.ConfigMessage\"\x00\x12\x44\n\x06Update\x12\x1b.config_proto.ConfigMessage\x1a\x1b.config_proto.ConfigMessage\"\x00\x12@\n\x07\x44\x65stroy\x12\x1b.config_proto.ConfigMessage\x1a\x16.google.protobuf.Empty\"\x00\x62\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'config_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  _CONFIGMESSAGE._serialized_start=59
  _CONFIGMESSAGE._serialized_end=176
  _CONFIGMESSAGE_KEY._serialized_start=127
  _CONFIGMESSAGE_KEY._serialized_end=176
  _CONFIGMESSAGELISTREQUEST._serialized_start=178
  _CONFIGMESSAGELISTREQUEST._serialized_end=204
  _CONFIGMESSAGERETRIEVEREQUEST._serialized_start=206
  _CONFIGMESSAGERETRIEVEREQUEST._serialized_end=248
  _CONFIGCONTROLLER._serialized_start=251
  _CONFIGCONTROLLER._serialized_end=643
# @@protoc_insertion_point(module_scope)

Когда я смотрю на config_pb2_grpc, я вижу импорты:

config__pb2.ConfigMessage

Но в config_pb2 нет реализованного ConfigMessage. И более того, в config_pb2 один знак подчеркивания, а в этом импорте два знака подчеркивания. На мой взгляд, это довольно странно.

Все в порядке?

Например, когда я генерирую код в моем обычном проекте django-rest-framework, используя:

protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/data.proto

Я получаю в data_pb2.py:

... ConfigMessage = _reflection.GeneratedProtocolMessageType('ConfigMessage', (_message.Message,), { ...

Вернуться на верх