def applyCycleAvoidance(self): newOrientationsFound = False for partiallyDirectedAgg in self.perspectiveToAgg.values(): for relVar1, relVar2 in EdgeOrientation._findCycleAvoidanceRemovals(partiallyDirectedAgg): if isinstance(relVar1, RelationalVariable) and isinstance(relVar2, RelationalVariable): self.propagateEdgeRemoval(partiallyDirectedAgg[relVar1][relVar2] [AbstractGroundGraph.UNDERLYING_DEPENDENCIES], recurse=True) self.recordEdgeOrientationUsage('CA') newOrientationsFound = True return newOrientationsFound