Create a :class:`Message` by merging `other` with `self`.
        Values from `other` will be copied to `self` if the value was not
        set on `self` and is set on `other`.

        :param other: The :class:`Message` to copy defaults from.
        :type other: :class:`Message`
        :param \*\*kwargs: Additional keyword arguments to construct
            :class:`Message` with.
        :rtype: :class:`Message`

def load_from(self, other, **kwargs):
        '''Create a :class:`Message` by merging `other` with `self`.
        Values from `other` will be copied to `self` if the value was not
        set on `self` and is set on `other`.

        :param other: The :class:`Message` to copy defaults from.
        :type other: :class:`Message`
        :param \*\*kwargs: Additional keyword arguments to construct
            :class:`Message` with.
        :rtype: :class:`Message`
        '''
        data = self.data()
        other_data = other.data()
        for k, v in iteritems(other_data):
            if data.get(k) is None:
                data[k] = v
        return self.load_message(data, **kwargs)