New submission from Daniel Kaplun <m...@dvir.us>: In the second example to allow usage of the required field for options, it seems as if you already have all you need to implement the feature into optparse. I modified it a bit to allow OptionGroups:
class Option(optparse.Option): ATTRS = optparse.Option.ATTRS + ['required'] def _check_required(self): if self.required and not self.takes_value(): raise OptionError( "required flag set for option that doesn't take a value", self) # Make sure _check_required() is called from the constructor! CHECK_METHODS = optparse.Option.CHECK_METHODS + [_check_required] def process(self, opt, value, values, parser): optparse.Option.process(self, opt, value, values, parser) parser.option_seen[self] = 1 class OptionParser(optparse.OptionParser): def _init_parsing_state(self): optparse.OptionParser._init_parsing_state(self) self.option_seen = {} def check_values(self, values, args): for option in self.option_list + sum((optiongroup.option_list for optiongroup in self.option_groups), []): if isinstance(option, Option) and option.required and not self.option_seen.has_key(option): self.error("%s not supplied" % (option, )) return (values, args) The question: why hasn't your existing example been merged with the OptionParse code to allow the required field for options? ---------- components: Extension Modules messages: 90767 nosy: mindvirus severity: normal status: open title: optparse required field for Options versions: Python 2.4, Python 2.5, Python 2.6, Python 2.7, Python 3.0, Python 3.1, Python 3.2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6535> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com