On Dec 10, 2007, at 8:09 PM, Neal Becker wrote: > Can python learn from c++? Maybe sometimes. I think the design of > boost::program_options is a pretty example.
Nice, overall, but the devil is in the details, as always. I didn't see anything in the documentation about how unrecognized values are handled; do they cause exceptions to be raised, or otherwise get reported to the application in some way? Is the configuration file handled by that an ini file? After looking around the documentation briefly, but without downloading the code/ tests, I couldn't see anything about the actual file format. It's entirely possible I missed something; a link would be appreciated. On the whole, while ignoring the C++-centric aspects of the API described in the documentation, I'm inclined to say that the model may be a lot simpler than would be needed for something like zc.buildout which ends up adding a lot on top of the basic ConfigParser model. But the boost::program_options package looks like it supports a much simpler model than ConfigParser. ConfigParser provides only two parts of the boost::program_options "stack": a parser, and storage. (Admittedly it conflates the two concerns.) This is actually an advantage, as it supports alternate approaches to defining the schema for the configuration data. The relationship between the command-line and configuration files can certainly be made easier to deal with by adding a schema component, but it's not actually necessary. For zc.buildout, command line options of the form section:option=value are interpreted as another configuration file that takes precedence over the ini-format files that are loaded using ConfigParser. -Fred -- Fred Drake <fdrake at acm.org> _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
