docs: def set_score(self, score):
          """Sets the score.
  
          arg:    score (decimal): the new score
          raise:  InvalidArgument - ``score`` is invalid or
                  ``GradebookColumn.getGradeSystem().isBasedOnGrades()``
                  is ``true``
          raise:  NoAccess - ``score`` cannot be modified
          *compliance: mandatory -- This method must be implemented.*
  
          """
          if self._grade_system.is_based_on_grades():
              raise errors.InvalidArgument()
          if self.get_score_metadata().is_read_only():
              raise errors.NoAccess()
          if not self._is_valid_decimal(score, self.get_score_metadata()):
              raise errors.InvalidArgument()
          if not isinstance(score, Decimal):
              score = Decimal(str(score))
          if (self._grade_system.get_numeric_score_increment() and
                  score % self._grade_system.get_numeric_score_increment() != 0):
              raise errors.InvalidArgument('score must be in increments of ' + str(self._score_increment))
          self._my_map['score'] = float(score)
          self._my_map['gradingAgentId'] = str(self._effective_agent_id)
          self._my_map['timeGraded'] = DateTime.utcnow()