code: def get_graderoster(section, instructor, requestor):
      
      label = GradeRoster(section=section,
                          instructor=instructor).graderoster_label()
      url = "{}/{}".format(graderoster_url, encode_section_label(label))
      headers = {"Accept": "text/xhtml",
                 "Connection": "keep-alive",
                 "X-UW-Act-as": requestor.uwnetid}
  
      response = SWS_GradeRoster_DAO().getURL(url, headers)
  
      if response.status != 200:
          root = etree.fromstring(response.data)
          msg = root.find(".//*[@class='status_description']").text.strip()
          raise DataFailureException(url, response.status, msg)
  
      return GradeRoster(data=etree.fromstring(response.data.strip()),
                         section=section,
                         instructor=instructor)
docs: Returns a restclients.GradeRoster for the passed Section model and
      instructor Person.