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