def parseAbsentClasses(self): # first find the absent classes for les in self._fileContent['result']['classAbsences']: if les['startDate'] != les['endDate']: self._errorDialog.addDebug( 'Don\'t support different starting and ending date - skipping!', pprint.pformat(les) ) elif les['startTime'] != '0000' or les['endTime'] != '0000': self._errorDialog.addDebug( 'Don\'t support start/end time for absent classes - skipping!', pprint.pformat(les) ) else: entryDate = '%s.%s.%s' % ( les['startDate'][6:], les['startDate'][4:6], les['startDate'][:4] ) newEntry = ChangeEntry([entryDate], 2, None) newEntry._hours = [0] newEntry._startTime = '00:00:00' newEntry._endTime = '23:59:59' course = self._classList.findClassById(les['classRef']) if course is None: self.dlg.addData(pprint.pformat(les)) self.dlg.addError('Course unknown for absent course - skipping!') continue newEntry._course = [course] self._absentClasses.append(newEntry)
def parse(self): planParsedSuccessful = True try: for row in reader: try: date, hours, teacher, subject, className, info, room, note = row except ValueError: # might be a empty line :) continue try: day, month, year = date.split('.') except ValueError: # uhh it might be the first line: skip! continue entryDate = '%s.%s.%s' % (day, month, year) try: hours = hours.strip().split('-'); hours[0] = int(hours[0].replace('.', '').strip()) if len(hours) > 1: hours[1] = int(hours[1].replace('.', '').strip()) else: hours.append(hours[0]) except Exception as e: print('Got error: %s' % (e,)) continue newEntry = ChangeEntry([entryDate], 3, None) hours = list(range(hours[0], hours[1] + 1)) newEntry._hours = hours newEntry._teacher = teacher newEntry._subject = subject newEntry._course = className.strip() newEntry._info = info newEntry._note = note self._plan.append(newEntry) except Exception as e: self._errorDialog.addError('Could not parse the plan. Unexpected error occured: %s.' % (str(e),)) planParsedSuccessful = False raise finally: self.planParsed.emit(planParsedSuccessful)