Example #1
0
 def toStringOfIds(self):
     string = ""
     for i in range(0, len(self.edges)):
         string += utils.getNodeId(self.nodes[i], self.graph) + ", "
         string += "(" + utils.getEdgeLinkedStructures(self.edges[i], self.graph) + "), "
     string += utils.getNodeId(self.nodes[len(self.nodes) - 1], self.graph)
     return string
    def reset(self):
        self._matrix = copy.deepcopy(self._initialMatrix)

        self._rowLabels = []
        self._colLabels = []
        for node in self._nodes:
            self._rowLabels.append(utils.getNodeId(node, self._graph))
            self._colLabels.append(utils.getNodeId(node, self._graph))

        self._targetsCollapsed = False
        self._sourcesCollapsed = False
    def _activateMatrix(self, nodes):

        self._nodes = list(set(nodes))
        for i in range(0, len(self._nodes)):
            row = []
            for j in range(0, len(self._nodes)):
                row.append([])
            self._matrix.append(row)

        for node in self._nodes:
            self._rowLabels.append(utils.getNodeId(node, self._graph))
            self._colLabels.append(utils.getNodeId(node, self._graph))
    def collapseSources(self):
        """
            Updates _matrix s.t. all rows of the same label get collapsed to a single row.
        """
        if self._sourcesCollapsed:
            return

        sourceTypes = utils.getNodesTypes(self._nodes, self._graph)
        newMatrix = []
        newCols = []
        for node in self._nodes:
            newCols.append(utils.getNodeId(node, self._graph))

        for sourceType in sourceTypes:
            newRow = [[] for node in self._nodes]
            for i in range(0, len(self._matrix)):
                rowType = utils.getNodeType(self._nodes[i], self._graph)
                row = self._matrix[i]
                if rowType == sourceType:
                    for j in range(0, len(row)):
                        col = row[j]
                        if len(col) > 0:
                            newRow[j] += col
            newMatrix.append(newRow)

        self._matrix = copy.deepcopy(newMatrix)
        self._colLabels = newCols
        self._rowLabels = sourceTypes