def update(self, key: str, value: Any) -> bool:
    self._cache[key] = value
    callbacks = set()
    namespace = '/'
    for ns in key.split('/'):
        if (not ns):
            continue
        namespace += ns
        callbacks |= set(self._callbacks.get(namespace, set()))
        namespace += '/'
    if (not callbacks):
        return False
    for callback in callbacks:
        if iscoroutinefunction(callback.callback):
            self._loop.create_task(callback.callback(key, value))
        else:
            self._loop.call_soon(callback.callback, key, value)
    return True
def update(self, key: str, value: Any) -> bool:
    self._cache[key] = value
    callbacks = set()
    namespace = '/'
    for ns in key.split('/'):
        if (not ns):
            continue
        namespace += ns
        callbacks |= set(self._callbacks.get(namespace, set()))
        namespace += '/'
    if (not callbacks):
        return False
    for callback in callbacks:
        if iscoroutinefunction(callback.callback):
            self._loop.create_task(callback.callback(key, value))
        else:
            self._loop.call_soon(callback.callback, key, value)
    return True