Ejemplo n.º 1
0
def parse_requirements(requirements, courses_taken):
    if type(requirements) == Course:
        if requirements.code in courses_taken:
            return None
        else:
            return requirements

    c1 = parse_requirements(requirements.children[0], courses_taken)
    c2 = parse_requirements(requirements.children[1], courses_taken)

    if requirements.logic == "and":
        if c1 == None and c2 == None:
            return None
        elif c1 == None:
            return c2
        elif c2 == None:
            return c1

        ret = Dependency(give_id=False)
        ret.add_children("&", c1, c2, find_children_id=False)
        return ret

    elif requirements.logic == "or":
        if c1 == None or c2 == None:
            return None

        ret = Dependency(give_id=False)
        ret.add_children("|", c1, c2, find_children_id=False)
        return ret