@utilities.arguments_not_none<EOL><INDENT>def update_assessment_part(self, assessment_part_id, assessment_part_form):<DEDENT>
<EOL>collection = JSONClientValidated('<STR_LIT>',<EOL>collection='<STR_LIT>',<EOL>runtime=self._runtime)<EOL>if not isinstance(assessment_part_form, ABCAssessmentPartForm):<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>if not assessment_part_form.is_for_update():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>if self._forms[assessment_part_form.get_id().get_identifier()] == UPDATED:<EOL><INDENT>raise errors.IllegalState('<STR_LIT>')<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>raise errors.Unsupported('<STR_LIT>')<EOL><DEDENT>if not assessment_part_form.is_valid():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>collection.save(assessment_part_form._my_map)<EOL>self._forms[assessment_part_form.get_id().get_identifier()] = UPDATED<EOL>return objects.AssessmentPart(<EOL>osid_object_map=assessment_part_form._my_map,<EOL>runtime=self._runtime,<EOL>proxy=self._proxy)<EOL>
Updates an existing assessment part.

        arg:    assessment_part_id (osid.id.Id): the ``Id`` of the
                ``AssessmentPart``
        arg:    assessment_part_form
                (osid.assessment.authoring.AssessmentPartForm): part
                form
        raise:  NotFound - ``assessment_part_id`` not found
        raise:  NullArgument - ``assessment_part_id`` is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure occurred
        raise:  Unsupported - ``assessment_part_form`` is not of this
                service
        *compliance: mandatory -- This method must be implemented.*