maestro-server/analytics-maestro

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

Summary

Maintainability
A
45 mins
Test Coverage
F
19%

import collections


class HelperClearEmptyLines(object):

    def __init__(self):
        self._dmark = '-'
        self._tombstone = []
        self._swfgrid = {}
        self._swfindex = {}

    def run(self, grid, index):
        self._swfindex = index
        self.cleanning(grid)

        return self._swfgrid, self._swfindex

    def cleanning(self, grid):

        grid = collections.OrderedDict(sorted(grid.items()))

        for row in grid:
            empty = True

            for line in grid[row]:
                m = grid[row][line][-1]
                if (self._dmark != m):
                    empty = False
                    self.addSwf(row, grid[row])
                    break;

            if (empty):
                self._tombstone.append(row)

    def addSwf(self, row, line):
        qtd = len(self._tombstone)
        diff = row - qtd
        self._swfgrid[diff] = line

        if qtd > 0:
            self.swfIndex(qtd, line)

    def swfIndex(self, qtd, items):

        for item in items:
            uid = items[item]
            if (self._dmark != uid[0]):
                node = self._swfindex[uid]
                swft = node[0] - qtd

                self._swfindex[uid] = (swft, node[1], node[2], node[3])