<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_graderoster(section, instructor, requestor):
 """ Returns a restclients.GradeRoster for the passed Section model and instructor Person. """

    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)