'Set the value of a node.
If the version of the node being updated is newer than the
supplied version (and the supplied version is not -1), a
BadVersionError will be raised.
This operation, if successful, will trigger all the watches on
the node of the given path left by :meth:`get` API calls.
The maximum allowable size of the value is 1 MB. Values larger
than this will cause a ZookeeperError to be raised.
:param path: Path of node.
:param value: New data value.
:param version: Version of node being updated, or -1.
:returns: Updated :class:`~kazoo.protocol.states.ZnodeStat` of
the node.
:raises:
:exc:`~kazoo.exceptions.BadVersionError` if version doesn\'t
match.
:exc:`~kazoo.exceptions.NoNodeError` if the node doesn\'t
exist.
:exc:`~kazoo.exceptions.ZookeeperError` if the provided
value is too large.
:exc:`~kazoo.exceptions.ZookeeperError` if the server
returns a non-zero error code.'

def set(self, path, value, version=(-1)):

    return self.set_async(path, value, version).get()
