human
I wrote the below code

    @gen.coroutine
    def _QueryFollowers():
        'Produces    list    of    (followers,    last_key)    tuples,    one    for    each    viewpoint    in    the    request.'
        tasks = []
        for vp_dict in request['viewpoints']:
            if vp_dict.get('get_followers', False):
                start_key = vp_dict.get('follower_start_key', None)
                tasks.append(Viewpoint.QueryFollowers(client, vp_dict['viewpoint_id'], excl_start_key=(int(start_key) if (start_key is not None) else None), limit=limit))
            else:
                tasks.append(util.GenConstant(None))
        follower_results = (yield tasks)
        raise gen.Return(follower_results)
    @gen.coroutine
    def _QueryActivities():
        'Produces    list    of    (activities,    last_key)    tuples,    one    for    each    viewpoint    in    the    request.'
        tasks = []
        for vp_dict in request['viewpoints']:
            if vp_dict.get('get_activities', False):
                tasks.append(gen.Task(Viewpoint.QueryActivities, client, vp_dict['viewpoint_id'], excl_start_key=vp_dict.get('activity_start_key', None), limit=limit))
            else:
                tasks.append(util.GenConstant(None))
        activity_results = (yield tasks)
        raise gen.Return(activity_results)
    @gen.coroutine
    def _QueryEpisodes():
        'Produces    list    of    (episodes,    last_key)    tuples,    one    for    each    viewpoint    in    the    request.'
        tasks = []
        for vp_dict in request['viewpoints']:
            if vp_dict.get('get_episodes', False):
                tasks.append(gen.Task(Viewpoint.QueryEpisodes, client, vp_dict['viewpoint_id'], excl_start_key=vp_dict.get('episode_start_key', None), limit=limit))
            else:
                tasks.append(util.GenConstant(None))
        episode_results = (yield tasks)
        raise gen.Return(episode_results)
    @gen.coroutine
    def _QueryComments():
        'Produces    list    of    (comments,    last_key)    tuples,    one   ...

What's a good function header?
assistant
#Here's a good function header.

@gen.coroutine
def QueryViewpoints(client, obj_store, user_id, device_id, request):