@classmethod
    def as_text(cls, slug, username, key):
        filepath = join(cls.datapath, slug, username, '%s.txt' % key)
        headers = [('Content-Type', 'text/plain'), ('Content-Disposition', 'attachment; filename=%s' % key) ]

        try:
            text = forward(FileApp(filepath, headers))
        except __HOLE__:
            abort(404, 'Game does not exist: %s' % slug)
        else:
            return text
dataset/ETHPy150Open turbulenz/turbulenz_local/turbulenz_local/controllers/localv1/userdata.py/UserdataController.as_text