def getDistanceFromOtherPath(self, other): distance = 0 for i in range(0, len(self.edges)): if not utils.getEdgeType(self.edges[i], self.graph) == utils.getEdgeType(other.edges[i], self.graph): distance += 1 for i in range(0, len(self.nodes)): if not utils.getNodeType(self.nodes[i], self.graph) == utils.getNodeType(other.nodes[i], self.graph): distance += 1 return distance
def isSameType(self, other): if (not len(self.nodes) == len(other.nodes)) or (not len(self.edges) == len(other.edges)): return False for i in range(0, len(self.edges)): if not utils.getEdgeType(self.edges[i], self.graph) == utils.getEdgeType(other.edges[i], self.graph): return False for i in range(0, len(self.nodes)): if not utils.getNodeType(self.nodes[i], self.graph) == utils.getNodeType(other.nodes[i], self.graph): return False return True
def toStringOfTypes(self): string = "" for i in range(0, len(self.edges)): string += utils.getNodeType(self.nodes[i], self.graph) + ", " string += utils.getEdgeType(self.edges[i], self.graph) + ", " string += utils.getNodeType(self.nodes[len(self.nodes) - 1], self.graph) return string
def isSameSuperType(self, other): if (not len(self.nodes) == len(other.nodes)) or (not len(self.edges) == len(other.edges)): return False for i in range(0, len(self.edges)): if not utils.getEdgeType(self.edges[i], self.graph) == utils.getEdgeType(other.edges[i], self.graph): return False superTypeDictionary = tp.SuperTypeDictionary() for i in range(0, len(self.nodes)): if not superTypeDictionary.getSuperTypeFromType( utils.getNodeType(self.nodes[i], self.graph) ) == superTypeDictionary.getSuperTypeFromType(utils.getNodeType(other.nodes[i], self.graph)): return False return True
def toStringOfSuperTypes(self): string = "" superTypeDictionary = tp.SuperTypeDictionary() for i in range(0, len(self.edges)): string += superTypeDictionary.getSuperTypeFromType(utils.getNodeType(self.nodes[i], self.graph)) + ", " string += utils.getEdgeType(self.edges[i], self.graph) + ", " string += superTypeDictionary.getSuperTypeFromType( utils.getNodeType(self.nodes[len(self.nodes) - 1], self.graph) ) return string
def isInRegexTypeConstraints(self, nodeConstraintsRegexes, edgeConstraintsRegexes): for i in range(0, len(self.edges)): edge = self.edges[i] edgeType = utils.getEdgeType(edge, self.graph) if not utils.isRegexExactMatch(edgeConstraintsRegexes[i], edgeType): return False for i in range(0, len(self.nodes)): node = self.nodes[i] nodeType = utils.getNodeType(node, self.graph) if not utils.isRegexExactMatch(nodeConstraintsRegexes[i], nodeType): return False return True
def isInTypeConstraints(self, edgeConstraints, nodeConstraints): for i in range(0, len(self.edges)): edge = self.edges[i] edgeType = utils.getEdgeType(edge, self.graph) if edgeConstraints[i] != edgeType: return False for i in range(0, len(self.nodes)): node = self.nodes[i] nodeType = utils.getNodeType(node, self.graph) if nodeConstraints[i] != nodeType: return False return True
def isSynapticPath(self): for edge in self.edges: edgeType = utils.getEdgeType(edge, self.graph) if edgeType in ["Adherens", "Touch"]: return False return True