from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler global garden """ Map of instances to list of signals to be processed """ garden = {} class Compound(FileSystemEventHandler): """ File system watcher to propagate disk changes """ def __init__(self, cache, isCatch: bool = False): """ Parameters ---------- cache: Cache Daisy cache to update isCatch: bool Is the cache for catchs """ self.cache = cache self.isCatch = isCatch super().__init__() def on_any_event(self, event): """ Called when a CRUD operation is performed on a record file Parameters ---------- event Event object provided by watchdog """ if not (".json" in event.src_path): if not (".md" in event.src_path): tpath = "/".join(event.src_path.split("/")[1:]) if tpath != "": if self.isCatch: self.cache.sget(tpath) else: self.cache.get(tpath).get()