bloat code with even more layers of indirection, split off the filesystem-based stuff into a separate lib.filesystem package (next, move it to sites/www.qmsk.net)
"""
The actual application behaviour, i.e. generating a Response from a Request :)
"""
class RequestHandler (object) :
"""
A handler handles a Request, returning a Response
"""
def __init__ (self, func, *args, **kwargs) :
self.func = func
self.args = args
self.kwargs = kwargs
def handle_request (self, request) :
"""
Handle the request, returning a Response object
XXX: rename to __call__ kplzthx
"""
return self.func(request, *self.args, **self.kwargs)