import werkzeug
from werkzeug.wrappers import Request, Response
from werkzeug.exceptions import HTTPException
import logging; log = logging.getLogger('pvl.verkko.wsgi')
from pvl.verkko import db as database, urls, web
class Application (object) :
urls = urls.urls
def __init__ (self, db) :
"""
Initialize app with db.
"""
self.db = database.Database(db)
def respond (self, request) :
"""
Lookup Request -> web.Handler, params
"""
# bind to request
urls = self.urls.bind_to_environ(request)
# lookup
handler, params = urls.match()
# handler instance
handler = handler(self, request, urls, params)
try :
# apply
return handler.respond()
finally :
handler.cleanup()
@Request.application
def __call__ (self, request) :
"""
WSGI entry point, werkzeug Request -> Response
"""
try :
return self.respond(request)
except HTTPException as ex :
return ex