Zuerst wollte ich OptionParser überschreiben, um das Verhalten zu ändern. Dafür habe ich mir dem Quelltext des optparse Moduls angeschaut. Dabei ergab sich aber eine viel einfachere Lösung. Statt alle Optionen direkt zur OptionParser Instanz hinzuzufügen, erstellt man einfach eine OptionGroup:
Code: Alles auswählen
command_options = [
# exklusive Optionen ...
]
global_options = [
# globale Optionen ...
]
parser = OptionParser(usage=self.usage,
description=self.description,
version=__version__,
option_class=CommandOption,
option_list=global_options)
description = _('Commands to modify the phone book and to search '
'or print entries.\n'
'Only one of these options may be specified.')
group = parser.add_option_group(_('Commands'),
description=description)
group.add_options(command_options)
Die große Frage ist nur: Warum zur Hölle schweigt sich die Dokumentation über dieses Feature komplett aus? Da steht nicht das kleinste Wort darüber drinnen. Weiß jemand was darüber?