Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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__)
Ejemplo n.º 3
0
 def default(self, o):
     if isinstance(o, datetime):
         return process_timestamp(o)
     else:
         return o.__dict__