Contains a metaclass and helper functions used to create protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the “type” of a class. (A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass to inject all the useful functionality into the classes output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation details for ALL pure-Python protocol buffers are here in this file.


Construct a class object for a protobuf described by descriptor.

DEPRECATED: use MessageFactory.GetPrototype() instead.


descriptor – A descriptor.Descriptor object describing the protobuf.


The Message class object described by the descriptor.

google.protobuf.reflection.ParseMessage(descriptor, byte_str)

Generate a new Message instance from this Descriptor and a byte string.

DEPRECATED: ParseMessage is deprecated because it is using MakeClass(). Please use MessageFactory.GetPrototype() instead.

  • descriptor – Protobuf Descriptor object

  • byte_str – Serialized protocol buffer byte string


Newly created protobuf Message object.