Mercurial > hg > simpypi
view simpypi/wsgi.py @ 34:ab52f46a3682
remove cruft
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 01 Mar 2012 08:45:13 -0800 |
parents | 90777e79ea13 |
children | 315b7b49eaf4 |
line wrap: on
line source
""" request dispatcher: data persisting across requests should go here """ import os #from handlers import Index from webob import Request, Response, exc here = os.path.dirname(os.path.abspath(__file__)) class SimPyPI(object): def __init__(self, directory, index=None): self.directory = directory assert os.path.exists(directory) # request handlers self.handlers = dict([(method, getattr(self, method)) for method in ('GET', 'POST')]) # TODO: HEAD, OPTIONS, maybe more # cache index HTML self.index = index or os.path.join(here, 'templates', 'index.html') assert os.path.exists(self.index) self.index = file(self.index).read() def __call__(self, environ, start_response): # get a request object request = Request(environ) # match the request to a handler handler = self.handlers.get(request.method) if handler: res = handler(request) else: res = exc.HTTPNotFound() return res(environ, start_response) def GET(self, request): return Response(body=self.index, content_type='text/html') def POST(self, request): """handle posting a package""" # get the package package = self.request.POST.get('package') # TODO: redirect to the main page # self.redirect(self.link(self.handler_path))