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