'Returns the student\'s SubsectionGrade for the subsection,
while caching the results of a bulk retrieval for the
course, for future access of other subsections.
Returns None if not found.'

def _get_bulk_cached_grade(self, subsection):

    if should_persist_grades(self.course_data.course_key):
        saved_subsection_grades = self._get_bulk_cached_subsection_grades()
        subsection_grade = saved_subsection_grades.get(subsection.location)
        if subsection_grade:
            return SubsectionGrade(subsection).init_from_model(self.student, subsection_grade, self.course_data.structure, self._submissions_scores, self._csm_scores)
