# Copyright (C) 2018 Avatao.com Innovative Learning Kft. # All Rights Reserved. See LICENSE file for details. from tfw.config.logs import logging LOG = logging.getLogger(__name__) class MonitorManagerMixin: def __init__(self, monitor_type, *monitor_args): self._monitor_type = monitor_type self._monitor = None self.monitor_args = monitor_args self.reload_monitor() @property def monitor(self): return self._monitor def set_monitor_args(self, *monitor_args): self.monitor_args = monitor_args def reload_monitor(self): if self._monitor: try: self._monitor.stop() except KeyError: LOG.debug('Working directory was removed – ignoring...') self._monitor = self._monitor_type(*self.monitor_args) self._monitor.watch() # This runs on a separate thread