def changed(self, print_info=False): ret = False if print_info: log = self.project.logger.info else: log = self.project.logger.debug if not self.locked: ret = self._changed_deps(print_info, log) for out in self.outs: if not out.changed(): continue if print_info: msg = "Output '{}' of '{}' changed." log(msg.format(out, self.relpath)) ret = True if self.changed_md5(): if print_info: msg = "Dvc file '{}' changed." log(msg.format(self.relpath)) ret = True if ret: msg = "Stage '{}' changed.".format(self.relpath) color = 'yellow' else: msg = "Stage '{}' didn't change.".format(self.relpath) color = 'green' log(Logger.colorize(msg, color)) return ret
def changed(self, print_info=False): ret = False if print_info: log = self.project.logger.info else: log = self.project.logger.debug if self.is_callback: msg = "Dvc file '{}' is a 'callback' stage (has a command and " \ "no dependencies) and thus always considered as changed." self.project.logger.warn(msg.format(self.relpath)) ret = True if not self.locked: for dep in self.deps: if not dep.changed(): continue if print_info: msg = "Dependency '{}' of '{}' changed." log(msg.format(dep, self.relpath)) ret = True for out in self.outs: if not out.changed(): continue if print_info: msg = "Output '{}' of '{}' changed." log(msg.format(out, self.relpath)) ret = True if self.changed_md5(): if print_info: msg = "Dvc file '{}' changed." log(msg.format(self.relpath)) ret = True if ret: msg = "Stage '{}' changed.".format(self.relpath) color = 'yellow' else: msg = "Stage '{}' didn't change.".format(self.relpath) color = 'green' log(Logger.colorize(msg, color)) return ret
def changed(self, print_info=False): if print_info: log = self.project.logger.info else: log = self.project.logger.debug ret = any([self._changed_deps(log), self._changed_outs(log), self._changed_md5(log)]) if ret: msg = "Stage '{}' changed.".format(self.relpath) color = 'yellow' else: msg = "Stage '{}' didn't change.".format(self.relpath) color = 'green' log(Logger.colorize(msg, color)) return ret
def test_colorize(self): for name, color in Logger.COLOR_MAP.items(): msg = Logger.colorize(name, name) # This is not a tty, so it should not colorize anything self.assertEqual(msg, name)