# $Id: quixote_handler.py,v 1.3 2001/09/18 14:29:22 erno Exp $ import quixote.publish, quixote.imphooks import mod_python.apache import os, sys class ModPythonPublisher(quixote.publish.Publisher): def publish_modpython(self, req): """publish_modpython() -> None Entry point from mod_python. """ real_env = os.environ try: os.environ = mod_python.apache.build_cgi_env(req) self.publish(mod_python.apache.CGIStdin(req), mod_python.apache.CGIStdout(req), sys.stderr) finally: os.environ = real_env return mod_python.apache.OK quixote.imphooks.install() name2publisher = {} def handler(req): opts = req.get_options() try: package = opts['quixote-package'] except KeyError: package = None if not package: return mod_python.apache.HTTP_INTERNAL_SERVER_ERROR else: if not name2publisher.has_key(package): name2publisher[package] = ModPythonPublisher(package) return name2publisher[package].publish_modpython(req)