def __init__(self, name, submission_time, problem_solving=0, in_lab=0, funct=0, design=0, style=0, doc=0): super().__init__(Student.__type__) if isinstance(submission_time, str): submission_time = process_timestamp(submission_time) self.penalty = 0 self._name = name self._submission = submission_time self._ps = problem_solving self._il = in_lab self._impl_total = funct + design + style + doc self._functionality = funct self._design = design self._style = style self._doc = doc self._late = False
def __init__(self, data): self.total = data['total'] self.weight = data['weight'] params = data['parameters'] parent = None try: parent = 'parameters' self.due_date = process_timestamp(params['due_date']['time']) if 'time' in params['due_date'] else None self.due_penalty = params['due_date']['penalty'] if 'penalty' in params['due_date'] else 0 self.problem_solving = params['problem_solving'] self.in_lab = params['in_lab'] self.output_check = params['output_check'] if 'output_check' in params else None parent += '.implementation' + '.functionality' impl_data = params['implementation'] self.functionality = impl_data['functionality'] if 'command' not in self.functionality or \ 'desc' not in self.functionality or \ 'penalty' not in self.functionality or \ 'value' not in self.functionality: raise KeyError('command or desc or penalty or value') self.required_files = impl_data['required_files'] self.required_penalty = impl_data['required_files_penalty'] parent = parent[:parent.rindex('.')] parent += '.source_code' source_data = impl_data['source_code'] self.source_total = source_data['total'] self.source_design = Rubric._check_source_param(source_data['design']) self.source_style = Rubric._check_source_param(source_data['style']) self.source_doc = Rubric._check_source_param(source_data['doc']) except KeyError as e: raise ValueError('Missing {} under {} in rubric!'.format(e.args[0], parent if parent else 'root')) super().__init__(Rubric.__type__)
def default(self, o): if isinstance(o, datetime): return process_timestamp(o) else: return o.__dict__