'Create a data watcher for a path
:param client: A zookeeper client.
:type client: :class:`~kazoo.client.KazooClient`
:param path: The path to watch for data changes on.
:type path: str
:param func: Function to call initially and every time the
node changes. `func` will be called with a
tuple, the value of the node and a
:class:`~kazoo.client.ZnodeStat` instance.
:type func: callable'

def __init__(self, client, path, func=None, *args, **kwargs):

    self._client = client
    self._path = path
    self._func = func
    self._stopped = False
    self._run_lock = client.handler.lock_object()
    self._version = None
    self._retry = KazooRetry(max_tries=None, sleep_func=client.handler.sleep_func)
    self._include_event = None
    self._ever_called = False
    self._used = False
    if (args or kwargs):
        warnings.warn('Passing    additional    arguments    to    DataWatch    is    deprecated.    ignore_missing_node    is    now    assumed        to    be    True    by    default,    and    the    event    will    be        sent    if    the    function    can    handle    receiving    it', DeprecationWarning, stacklevel=2)
    if (func is not None):
        self._used = True
        self._client.add_listener(self._session_watcher)
        self._get_data()
