Steve Howell <showel...@yahoo.com> writes: > I have a use case where I'm running BaseHTTPServer.HTTPServer, and I > want to configure the request handler with some context. I've gotten > the code to work, but it feels overly heavy. I am wondering if > anybody could suggest an easier idiom for this. > > This is a brief sketch of the code: > > class MyHandler(BaseHTTPRequestHandler): > def __init__(self, context, *args): > self.context = context > BaseHTTPRequestHandler.__init__(self, *args) > > def do_GET(self): > // self.context will be available here > > context = { .... } > def handler(*args): > MyHandler(context, *args) > > server = HTTPServer(('', port), handler) > server.serve_forever()
You could store the context in the server object and access it in the handler methods via self.server.context. It basically works like this: class MyHTTPServer(HTTPServer): def __init__(self, *args, **kw): HTTPServer.__init__(self, *args, **kw) self.context = { .... } class MyHandler(BaseHTTPRequestHandler): def do_GET(self): context = self.server.context ... server = MyHTTPServer(('', port), MyHandler) server.serve_forever() Bernhard -- Bernhard Herzog | ++49-541-335 08 30 | http://www.intevation.de/ Intevation GmbH, Neuer Graben 17, 49074 Osnabrück | AG Osnabrück, HR B 18998 Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner -- http://mail.python.org/mailman/listinfo/python-list