def get_available_options(completed_courses): options = [] for course in courses: if course not in completed_courses: if get_dependencies(course) == []: options.append(course) else: dep_set = set(get_dependencies(course)) completed_set = set(completed_courses) if dep_set.issubset(completed_set): options.append(course) return options
def build_graph(): g = Graph(True) for course in courses: g.add_node(Node(course, courses[course])) for course in courses: for next_course in get_dependencies(course): g.connect(course, next_course) return g