Mercurial > hg > wsgintegrate
view wsgintegrate/dispatcher.py @ 15:1a7bbd97dda4
work around a horrible downstream issue
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 17 Nov 2011 11:49:41 -0800 |
parents | e07b0f675c17 |
children | d742aff49859 |
line wrap: on
line source
""" multi-application dispatcher for WSGI apps """ from webob import Request from webob import exc class Dispatcher(object): def __init__(self, *apps): self.apps = apps self.codes = set([404]) def __call__(self, environ, start_response): request = Request(environ) for app in self.apps: try: response = request.get_response(app) if response.status_int in self.codes: continue break except exc.HTTPNotFound: continue except: print app raise else: response = exc.HTTPNotFound() try: return response(environ, start_response) except: response.headerlist = [(i,str(j)) for i, j in response.headerlist] return response(environ, start_response)