Mercurial > hg > simpypi
view simpypi/factory.py @ 1:24b8d06eae53
stub out a simple view
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 27 Feb 2012 15:57:01 -0800 |
parents | 93e830409685 |
children | b03602153de2 |
line wrap: on
line source
import os from dispatcher import Dispatcher from paste.httpexceptions import HTTPExceptionHandler from paste.urlparser import StaticURLParser from pkg_resources import resource_filename class PassthroughFileserver(object): """serve files if they exist""" def __init__(self, app, directory): self.app = app self.directory = directory self.fileserver = StaticURLParser(self.directory) def __call__(self, environ, start_response): path = environ['PATH_INFO'].strip('/') if path and os.path.exists(os.path.join(self.directory, path)): return self.fileserver(environ, start_response) return self.app(environ, start_response) def factory(**app_conf): """create a webob view and wrap it in middleware""" app = Dispatcher(**app_conf) return HTTPExceptionHandler(PassthroughFileserver(app, resource_filename(__name__, 'static'))) if __name__ == '__main__': import tempfile from wsgiref import simple_server app = factory