(fields, full_name=None, pool=None)
return _GetMessageFromFactory(factory, full_name)
Create a Protobuf class whose fields are basic types.

  Note: this doesn't validate field names!

  Args:
    fields: dict of {name: field_type} mappings for each field in the proto. If
        this is an OrderedDict the order will be maintained, otherwise the
        fields will be sorted by name.
    full_name: optional str, the fully-qualified name of the proto type.
    pool: optional DescriptorPool instance.
  Returns:
    a class, the new protobuf class with a FileDescriptor.
Create a Protobuf class whose fields are basic types.
Create a Protobuf class whose fields are basic types .
def MakeSimpleProtoClass(fields, full_name=None, pool=None):
  """Create a Protobuf class whose fields are basic types.

  Note: this doesn't validate field names!

  Args:
    fields: dict of {name: field_type} mappings for each field in the proto. If
        this is an OrderedDict the order will be maintained, otherwise the
        fields will be sorted by name.
    full_name: optional str, the fully-qualified name of the proto type.
    pool: optional DescriptorPool instance.
  Returns:
    a class, the new protobuf class with a FileDescriptor.
  """
  factory = message_factory.MessageFactory(pool=pool)

  if full_name is not None:
    try:
      proto_cls = _GetMessageFromFactory(factory, full_name)
      return proto_cls
    except KeyError:
      # The factory's DescriptorPool doesn't know about this class yet.
      pass

  # Get a list of (name, field_type) tuples from the fields dict. If fields was
  # an OrderedDict we keep the order, but otherwise we sort the field to ensure
  # consistent ordering.
  field_items = fields.items()
  if not isinstance(fields, OrderedDict):
    field_items = sorted(field_items)

  # Use a consistent file name that is unlikely to conflict with any imported
  # proto files.
  fields_hash = hashlib.sha1()
  for f_name, f_type in field_items:
    fields_hash.update(f_name.encode('utf-8'))
    fields_hash.update(str(f_type).encode('utf-8'))
  proto_file_name = fields_hash.hexdigest() + '.proto'

  # If the proto is anonymous, use the same hash to name it.
  if full_name is None:
    full_name = ('net.proto2.python.public.proto_builder.AnonymousProto_' +
                 fields_hash.hexdigest())
    try:
      proto_cls = _GetMessageFromFactory(factory, full_name)
      return proto_cls
    except KeyError:
      # The factory's DescriptorPool doesn't know about this class yet.
      pass

  # This is the first time we see this proto: add a new descriptor to the pool.
  factory.pool.Add(
      _MakeFileDescriptorProto(proto_file_name, full_name, field_items))
  return _GetMessageFromFactory(factory, full_name)
def MakeSimpleProtoClass ( fields , full_name = None , pool = None ) : factory = message_factory . MessageFactory ( pool = pool ) if full_name is not None : try : proto_cls = _GetMessageFromFactory ( factory , full_name ) return proto_cls except KeyError : # The factory's DescriptorPool doesn't know about this class yet. pass # Get a list of (name, field_type) tuples from the fields dict. If fields was # an OrderedDict we keep the order, but otherwise we sort the field to ensure # consistent ordering. field_items = fields . items ( ) if not isinstance ( fields , OrderedDict ) : field_items = sorted ( field_items ) # Use a consistent file name that is unlikely to conflict with any imported # proto files. fields_hash = hashlib . sha1 ( ) for f_name , f_type in field_items : fields_hash . update ( f_name . encode ( 'utf-8' ) ) fields_hash . update ( str ( f_type ) . encode ( 'utf-8' ) ) proto_file_name = fields_hash . hexdigest ( ) + '.proto' # If the proto is anonymous, use the same hash to name it. if full_name is None : full_name = ( 'net.proto2.python.public.proto_builder.AnonymousProto_' + fields_hash . hexdigest ( ) ) try : proto_cls = _GetMessageFromFactory ( factory , full_name ) return proto_cls except KeyError : # The factory's DescriptorPool doesn't know about this class yet. pass # This is the first time we see this proto: add a new descriptor to the pool. factory . pool . Add ( _MakeFileDescriptorProto ( proto_file_name , full_name , field_items ) ) return _GetMessageFromFactory ( factory , full_name )