'Returns the aggregate weighted score for the given chapter.
Raises:
KeyError if the chapter is not found.'

def score_for_chapter(self, chapter_key):

    (earned, possible) = (0.0, 0.0)
    chapter_grade = self.chapter_grades[chapter_key]
    for section in chapter_grade['sections']:
        earned += section.graded_total.earned
        possible += section.graded_total.possible
    return (earned, possible)
