def setup(self): self.my_file = descriptor.filedescriptor( name='some/filename/some.proto', package='protobuf_unittest' ) self.my_enum = descriptor.enumdescriptor( name='foreignenum', full_name='protobuf_unittest.foreignenum', filename=none, file=self.my_file, values=[ descriptor.enumvaluedescriptor(name='foreign_foo', index=0, number=4), descriptor.enumvaluedescriptor(name='foreign_bar', index=1, number=5), descriptor.enumvaluedescriptor(name='foreign_baz', index=2, number=6), ]) self.my_message = descriptor.descriptor( name='nestedmessage', full_name='protobuf_unittest.testalltypes.nestedmessage', filename=none, file=self.my_file, containing_type=none, fields=[ descriptor.fielddescriptor( name='bb', full_name='protobuf_unittest.testalltypes.nestedmessage.bb', index=0, number=1, type=5, cpp_type=1, label=1, has_default_value=false, default_value=0, message_type=none, enum_type=none, containing_type=none, is_extension=false, extension_scope=none), ], nested_types=[], enum_types=[ self.my_enum, ], extensions=[]) self.my_method = descriptor.methoddescriptor( name='bar', full_name='protobuf_unittest.testservice.bar', index=0, containing_service=none, input_type=none, output_type=none) self.my_service = descriptor.servicedescriptor( name='testservicewithoptions', full_name='protobuf_unittest.testservicewithoptions', file=self.my_file, index=0, methods=[ self.my_method ])
def _convertenumdescriptor(self, enum_proto, package=none, file_desc=none, containing_type=none, scope=none): """make a protobuf enumdescriptor given an enumdescriptorproto protobuf. args: enum_proto: the descriptor_pb2.enumdescriptorproto protobuf message. package: optional package name for the new message enumdescriptor. file_desc: the file containing the enum descriptor. containing_type: the type containing this enum. scope: scope containing available types. returns: the added descriptor """ if package: enum_name = '.'.join((package, enum_proto.name)) else: enum_name = enum_proto.name if file_desc is none: file_name = none else: file_name = file_desc.name values = [self._makeenumvaluedescriptor(value, index) for index, value in enumerate(enum_proto.value)] desc = descriptor.enumdescriptor(name=enum_proto.name, full_name=enum_name, filename=file_name, file=file_desc, values=values, containing_type=containing_type, options=enum_proto.options) scope[enum_proto.name] = desc scope['.%s' % enum_name] = desc self._enum_descriptors[enum_name] = desc return desc