I like the new server infrastructure - in particular
quixote.server.util.main. But there's one area where it is not very
reusable - the default values. The defaults are hard coded into the
main() function, and whereas most of them are not unreasonable, the
factory seems unlikely to be a good default for anything other than
the demo.
It would seem better to have a Main class, with the defaults set as
class variables, and a main() method which gets the defaults from the
instance. Something like:
Main:
default_host = 'localhost'
default_port = 8080
default_factory = 'quixote.demo.create_publisher'
def main(self, run):
# as before, but use self.default_XXX
Usage is then:
main = Main()
main.default_factory = 'my_factory'
main.main(run)
Hmm, that's not perfect. But I can't see any obvious way of doing
something similar with the current code (short of gross hacking :-))
Any comments?
Paul.