'Update this guess with the values from the given one. In case
there is property present in both, only the one with the highest one
is kept.'

def update_highest_confidence(self, other):

    if (not isinstance(other, Guess)):
        raise ValueError(u'Can    only    call    this    function    on    Guess    instances')
    for prop in other:
        if ((prop in self) and (self.confidence(prop) >= other.confidence(prop))):
            continue
        self[prop] = other[prop]
        self._confidence[prop] = other.confidence(prop)
        self._raw[prop] = other.raw(prop)
