'Set the value of a node. Takes the same arguments as
:meth:`set`.
:rtype: :class:`~kazoo.interfaces.IAsyncResult`'

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

    if (not isinstance(path, basestring)):
        raise TypeError('path    must    be    a    string')
    if ((value is not None) and (not isinstance(value, bytes))):
        raise TypeError('value    must    be    a    byte    string')
    if (not isinstance(version, int)):
        raise TypeError('version    must    be    an    int')
    async_result = self.handler.async_result()
    self._call(SetData(_prefix_root(self.chroot, path), value, version), async_result)
    return async_result
