Пример #1
0
def getpostreqnode(name):
    name = name.upper()
    #if name in CourseMaster().potrees:
    #   return CourseMaster().getpotree(name)
    node = Node(name)
    if name not in CourseMaster().postreqs: CourseMaster().loadpostreqs(name)
    for course in CourseMaster().postreqs[name]:
        print "\033[K", "\r", "loading: " + name,
        stdout.flush()
        node.addchild(getpostreqnode(course), "or")
    CourseMaster().setpotree(node, name)
    return node
Пример #2
0
def getprereqnode(name):
    name = name.upper()
    if name in CourseMaster().trees:
        return CourseMaster().gettree(name)
    try:
        parsed = parse_prereq(CourseMaster().getprereqs(name))
        evaled = eval(tree_sub(parsed.strip(",")))
        evaled.setname(name)
        CourseMaster().settree(evaled, name)
        return evaled
    except ParseException:
        CourseMaster().settree(Node(name), name)
        return Node(name)
Пример #3
0
 def loadpotree(self):
     try:
         self.potree = CourseMaster().getpotree(self.name)
     except MissingException:
         self.potree = getpostreqnode(self.name)
         CourseMaster().setpotree(self.name, self.potree)
Пример #4
0
 def loadterm(self):
     self.term = CourseMaster().getterm(self.name)
Пример #5
0
 def loaddescription(self):
     self.description = CourseMaster().getdescription(self.name)
Пример #6
0
 def loadtitle(self):
     self.title = CourseMaster().gettitle(self.name)
Пример #7
0
 def loadpostreqs(self):
     self.postreqs = CourseMaster().getpostreqs(self.name)
Пример #8
0
 def loadcoreqs(self):
     self.coreqs = CourseMaster().getcoreqs(self.name)
Пример #9
0
 def loadprereqs(self):
     self.prereqs = CourseMaster().getprereqs(self.name)