maestro-server/analytics-maestro

View on GitHub
app/libs/helpers/define.py

Summary

Maintainability
A
1 hr
Test Coverage
F
22%
class HelperDefineStep(object):
    def get_weight(self, node):
        dft = self._graph.nodes[node].get('weight')
        return self._get_weight(node, dft)

    def _get_weight(self, node, dft=0):
        if self._grid.in_index(node):
            idx = self._grid.get_index(node)
            return idx[0]

        return dft

    def get_node_attr(self, attr):
        return self._node.get(attr)

    def get_step(self):
        return self._step

    def make_step(self):
        node = self.get_id()

        if self._grid.in_index(node):
            idx = self._grid.get_index(node)
            return idx[0]

        return self.cal_step()

    def cal_step(self):
        predecessors = self.direct_predecessors()
        default_x = self.get_node_attr('weight')

        if len(predecessors) > 0:
            most = default_x

            for pre in predecessors:
                wn = self._get_weight(pre)
                diff = wn - default_x

                if most < wn:
                    most = wn + 1

            default_x = most
        return default_x