Package google :: Package protobuf :: Module message :: Class Message
[frames] | no frames]

Class Message

source code

object --+
         |
        Message
Known Subclasses:

Abstract base class for protocol messages.

Protocol message classes are almost always generated by the protocol
compiler.  These generated types subclass Message and implement the methods
shown below.

TODO(robinson): Link to an HTML document here.

TODO(robinson): Document that instances of this class will also
have an Extensions attribute with __getitem__ and __setitem__.
Again, not sure how to best convey this.

TODO(robinson): Document that the class must also have a static
  RegisterExtension(extension_field) method.
  Not sure how to best express at this point.

Instance Methods
 
__deepcopy__(self, memo=None) source code
 
__eq__(self, other_msg)
Recursively compares two messages by value and structure.
source code
 
__ne__(self, other_msg) source code
 
__hash__(self)
hash(x)
source code
 
__str__(self)
Outputs a human-readable representation of the message.
source code
 
__unicode__(self)
Outputs a human-readable representation of the message.
source code
 
MergeFrom(self, other_msg)
Merges the contents of the specified message into current message.
source code
 
CopyFrom(self, other_msg)
Copies the content of the specified message into the current message.
source code
 
Clear(self)
Clears all data that was set in the message.
source code
 
SetInParent(self)
Mark this as present in the parent.
source code
 
IsInitialized(self)
Checks if the message is initialized.
source code
 
MergeFromString(self, serialized)
Merges serialized protocol buffer data into this message.
source code
 
ParseFromString(self, serialized)
Like MergeFromString(), except we clear the object first.
source code
 
SerializeToString(self)
Serializes the protocol message to a binary string.
source code
 
SerializePartialToString(self)
Serializes the protocol message to a binary string.
source code
 
ListFields(self)
Returns a list of (FieldDescriptor, value) tuples for all fields in the message which are not empty.
source code
 
HasField(self, field_name)
Checks if a certain field is set for the message.
source code
 
ClearField(self, field_name) source code
 
HasExtension(self, extension_handle) source code
 
ClearExtension(self, extension_handle) source code
 
ByteSize(self)
Returns the serialized size of this message.
source code
 
__getstate__(self)
Support the pickle protocol.
source code
 
__setstate__(self, state)
Support the pickle protocol.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __subclasshook__

Class Variables
  DESCRIPTOR = None
Properties

Inherited from object: __class__

Method Details

__hash__(self)
(Hashing function)

source code 

hash(x)

Overrides: object.__hash__
(inherited documentation)

__str__(self)
(Informal representation operator)

source code 

Outputs a human-readable representation of the message.

Overrides: object.__str__

MergeFrom(self, other_msg)

source code 
Merges the contents of the specified message into current message.

This method merges the contents of the specified message into the current
message. Singular fields that are set in the specified message overwrite
the corresponding fields in the current message. Repeated fields are
appended. Singular sub-messages and groups are recursively merged.

Args:
  other_msg: Message to merge into the current message.

CopyFrom(self, other_msg)

source code 
Copies the content of the specified message into the current message.

The method clears the current message and then merges the specified
message using MergeFrom.

Args:
  other_msg: Message to copy into the current one.

SetInParent(self)

source code 

Mark this as present in the parent.

This normally happens automatically when you assign a field of a sub-message, but sometimes you want to make the sub-message present while keeping it empty. If you find yourself using this, you may want to reconsider your design.

IsInitialized(self)

source code 
Checks if the message is initialized.

Returns:
  The method returns True if the message is initialized (i.e. all of its
  required fields are set).

MergeFromString(self, serialized)

source code 
Merges serialized protocol buffer data into this message.

When we find a field in |serialized| that is already present
in this message:
  - If it's a "repeated" field, we append to the end of our list.
  - Else, if it's a scalar, we overwrite our field.
  - Else, (it's a nonrepeated composite), we recursively merge
    into the existing composite.

TODO(robinson): Document handling of unknown fields.

Args:
  serialized: Any object that allows us to call buffer(serialized)
    to access a string of bytes using the buffer interface.

TODO(robinson): When we switch to a helper, this will return None.

Returns:
  The number of bytes read from |serialized|.
  For non-group messages, this will always be len(serialized),
  but for messages which are actually groups, this will
  generally be less than len(serialized), since we must
  stop when we reach an END_GROUP tag.  Note that if
  we *do* stop because of an END_GROUP tag, the number
  of bytes returned does not include the bytes
  for the END_GROUP tag information.

SerializeToString(self)

source code 
Serializes the protocol message to a binary string.

Returns:
  A binary string representation of the message if all of the required
  fields in the message are set (i.e. the message is initialized).

Raises:
  message.EncodeError if the message isn't initialized.

SerializePartialToString(self)

source code 
Serializes the protocol message to a binary string.

This method is similar to SerializeToString but doesn't check if the
message is initialized.

Returns:
  A string representation of the partial message.

ListFields(self)

source code 

Returns a list of (FieldDescriptor, value) tuples for all fields in the message which are not empty. A singular field is non-empty if HasField() would return true, and a repeated field is non-empty if it contains at least one element. The fields are ordered by field number

HasField(self, field_name)

source code 

Checks if a certain field is set for the message. Note if the field_name is not defined in the message descriptor, ValueError will be raised.

ByteSize(self)

source code 

Returns the serialized size of this message. Recursively calls ByteSize() on all contained messages.