def _sort_dependencies(self): nodes = topological.sort_with_cycles(self.dependencies, [t.mapper for t in self.tasks.itervalues() if t.base_task is t] ) ret = [] for item, cycles in nodes: task = self.get_task_by_mapper(item) if cycles: for t in task._sort_circular_dependencies( self, [self.get_task_by_mapper(i) for i in cycles] ): ret.append(t) else: ret.append(task) return ret
def _sort_dependencies(self): nodes = topological.sort_with_cycles(self.dependencies, [t.mapper for t in self.tasks.values() if t.base_task is t] ) ret = [] for item, cycles in nodes: task = self.get_task_by_mapper(item) if cycles: for t in task._sort_circular_dependencies(self, [self.get_task_by_mapper(i) for i in cycles]): ret.append(t) else: ret.append(task) if self._should_log_debug: self.logger.debug("Dependent tuples:\n" + "\n".join(["(%s->%s)" % (d[0].class_.__name__, d[1].class_.__name__) for d in self.dependencies])) self.logger.debug("Dependency sort:\n"+ str(ret)) return ret