#NEWLINE# def __new__( cls , name , bases , dictionary ) : #NEWLINE# #INDENT# "Custom allocation for runtime-generated class types.\n\n    We override __new__ because this is apparently the only place\n    where we can meaningfully set __slots__ on the class we're creating(?).\n    (The interplay between metaclasses and slots is not very well-documented).\n\n    Args:\n      name: Name of the class (ignored, but required by the\n        metaclass protocol).\n      bases: Base classes of the class we're constructing.\n        (Should be message.Message).  We ignore this field, but\n        it's required by the metaclass protocol\n      dictionary: The class dictionary of the class we're\n        constructing.  dictionary[_DESCRIPTOR_KEY] must contain\n        a Descriptor object describing this protocol message\n        type.\n\n    Returns:\n      Newly-allocated class.\n    " #NEWLINE# descriptor = dictionary [ GeneratedProtocolMessageType . _DESCRIPTOR_KEY ] #NEWLINE# bases = _NewMessage ( bases , descriptor , dictionary ) #NEWLINE# superclass = super ( GeneratedProtocolMessageType , cls ) #NEWLINE# new_class = superclass . __new__ ( cls , name , bases , dictionary ) #NEWLINE# setattr ( descriptor , '_concrete_class' , new_class ) #NEWLINE# return new_class