Protobuf Как получить тип сообщения - PullRequest
0 голосов
/ 02 марта 2019

Protobuf Как получить тип сообщения?

Я написал Serializer для Protobuf.Я хотел бы знать, как я могу получить тип сообщения.Я использую сейчас

message_descriptor._concrete_class ()

, но для него я использую приватный файл _concrete_class Как я могу переписать Serializer без приватного файла, если Google изменил этот файл?мой сериализатор перестал работать.

class ProtobufSerializer(AbstractSerializer):
def serialize(self, obj):
    if not isinstance(obj, Message):
        raise TypeError("obj must be of type Message")
    return obj.SerializeToString()

def deserialize(self, bytes_str, type_name):
    message_descriptor = Serialization().type_lookup[type_name]
    msg = message_descriptor._concrete_class()
    msg.ParseFromString(bytes_str)
    return msg

def get_type_name(self, obj):
    if not isinstance(obj, Message):
        raise TypeError("obj must be of type Message")
    return obj.DESCRIPTOR.full_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...