def disjunction(nodes: Set[Node], name: str = None, description: str = None) -> Node: try: new_goal = Goal.disjunction(nodes, name, description) except GoalException as e: raise CGGOperationFail(nodes=nodes, operation=CGGFailOperations.algebra_op, goal_ex=e) new_node = Node(goal=new_goal) new_node.add_children(link=Link.DISJUNCTION, nodes=nodes) return new_node