# HG changeset patch # User Jeff Hammel # Date 1332893071 25200 # Node ID ef2d1c6211b9dcf6258cdacf88a69ae4af4d668e # Parent 4f5ea5a8ccb01ac01933585d022d6f81f061175e more stubbing to make Configuration an OptionParser diff -r 4f5ea5a8ccb0 -r ef2d1c6211b9 configuration/config.py --- a/configuration/config.py Tue Mar 27 16:58:48 2012 -0700 +++ b/configuration/config.py Tue Mar 27 17:04:31 2012 -0700 @@ -183,10 +183,28 @@ options = {} # configuration basis def __init__(self, configuration_providers=configuration_providers, types=types, **parser_args): + + # setup configuration self.config = {} self.configuration_providers = configuration_providers self.types = types + + # setup optionparser + if 'description' not in parser_args: + parser_args['description'] = getattr(self, '__doc__', '') + if 'formatter' not in parser_args: + class PlainDescriptionFormatter(optparse.IndentedHelpFormatter): + """description formatter for console script entry point""" + def format_description(self, description): + if description: + return description.strip() + '\n' + else: + return '' + parser_args['formatter'] = PlainDescriptionFormatter() + parser_args.setdefault('option_class', ConfigurationOption) optparse.OptionParser.__init__(self, **parser_args) + self.parsed = set() + self.optparse_options(self) ### methods for iteration ### TODO: make this a real iterator