async def parse_gist(self, user, gist_id, filename=''):
    with self.catch_client_error():
        response = (await self.github_client.get_gist(gist_id))
    gist = json.loads(response_text(response))
    gist_id = gist['id']
    if (user is None):
        owner_dict = gist.get('owner', {})
        if owner_dict:
            user = owner_dict['login']
        else:
            user = 'anonymous'
        new_url = '{format}/gist/{user}/{gist_id}'.format(format=self.format_prefix, user=user, gist_id=gist_id)
        if filename:
            new_url = ((new_url + '/') + filename)
        self.redirect(self.from_base(new_url))
        return
    files = gist['files']
    many_files_gist = (len(files) > 1)
    return (user, gist_id, gist, files, many_files_gist)
async def parse_gist(self, user, gist_id, filename=):
    with self.catch_client_error():
        response = (await self.github_client.get_gist(gist_id))
    gist = json.loads(response_text(response))
    gist_id = gist['id']
    if (user is None):
        owner_dict = gist.get('owner', {})
        if owner_dict:
            user = owner_dict['login']
        else:
            user = 'anonymous'
        new_url = '{format}/gist/{user}/{gist_id}'.format(format=self.format_prefix, user=user, gist_id=gist_id)
        if filename:
            new_url = ((new_url + '/') + filename)
        self.redirect(self.from_base(new_url))
        return
    files = gist['files']
    many_files_gist = (len(files) > 1)
    return (user, gist_id, gist, files, many_files_gist)