Пример #1
0
def parse_reqs(reqs):
  if reqs == "":
    return None
  
  parens = 0
  fullstring = ""
  tokens = []
  booltype = ""
  for ch in reqs:
    fullstring += ch
    if ch == "(":
      parens += 1
    elif ch == ")":
      parens -= 1
    elif fullstring[-4:] == "and " and parens == 0:
      tokens.append(fullstring[:-5])
      fullstring = ""
      booltype = "and"
    elif fullstring[-3:] == "or " and parens == 0:
      tokens.append(fullstring[:-4])
      fullstring = ""
      booltype = "or"
  if fullstring != "":
    tokens.append(fullstring)
  
  clause = Clause()
  if booltype == "and":
    clause.booland = True
  else:
    clause.booland = False
  clause.save()
  
  for term in tokens:
    if term[0] == "(":
      clause.clauses.add(parse_reqs(term[1:-1]))
    else:
      opts = Course.objects.filter(department=term[0:2], number=term[3:])
      if len(opts) >= 1:
        clause.courses.add(opts[0])
      else:
        ncourse = Course()
        ncourse.department = term[0:2]
        ncourse.number = term[3:]
        ncourse.save()
        clause.courses.add(ncourse)
  clause.save()
  
  return clause
Пример #2
0
  nsem = 'F' + str(today.year)[2:]
else:
  nsem = 'S' + str(today.year+1)[2:]
      
classes = []
goodf = open("preco1.txt","r")
while True:
  cn = goodf.readline()
  if cn == "":
    break
  pre = goodf.readline()
  co = goodf.readline()
  
  print "Getting data for " + cn,
  
  course = Course()
  course.department = cn[0:2]
  course.number = cn[3:]
  classes.append((cn,pre,co))
  course.save()
  
  cinfo = schedule.course(nsem, course_number=(cn[0:2]+cn[3:-1]))
  if cinfo != None:
    course.units = int(cinfo["units"])
    course.save()
  
    for linfo in cinfo["lectures"]:
      if linfo["time_start"] != "TBA":
        lecture = Lecture()
        lecture.starttime = linfo["time_start"]
        lecture.endtime = linfo["time_end"]