human
I wrote the below code

    (db, library_id) = get_library_data(ctx, rd)[:2]
    opts = categories_settings(rd.query, db)
    vl = (rd.query.get(u'vl') or u'')
    etag = cPickle.dumps([db.last_modified().isoformat(), rd.username, library_id, vl, list(opts)], (-1))
    etag = hashlib.sha1(etag).hexdigest()
    def generate():
        return json(ctx, rd, tag_browser, categories_as_json(ctx, rd, db, opts, vl))
    return rd.etagged_dynamic_response(etag, generate)

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

@endpoint(u'/interface-data/tag-browser')
def tag_browser(ctx, rd):