guión Mi Python (para listas de tareas pendientes) se inicia desde la línea de comando como este:¿Cómo se manejan las opciones que no se pueden usar juntas (usando OptionParser)?
todo [options] <command> [command-options]
Algunas opciones no se pueden utilizar conjuntamente, por ejemplo
todo add --pos=3 --end "Ask Stackoverflow"
debía especificar la tercera posición y el final de la lista. Del mismo modo
todo list --brief --informative
confundiría mi programa trata de ser breve o informativo. Como quiero tener un control de opción bastante poderoso, casos como estos serán un montón, y seguramente surjan nuevos en el futuro. Si un usuario pasa una mala combinación de opciones, quiero dar un mensaje informativo, preferiblemente junto con la ayuda de uso proporcionada por optparse. Actualmente manejo esto con una declaración if-else que encuentro realmente fea y pobre. Mi sueño es tener algo como esto en mi código:
parser.set_not_allowed(combination=["--pos", "--end"],
message="--pos and --end can not be used together")
y la OptionParser utilizaría esta al analizar las opciones.
Dado que esto no existe por lo que sé, le pregunto a la comunidad SO: ¿Cómo manejas esto?
solución Terrific! – Joel
'super()' no funcionará para Python 2.X, ya que 'OptionParser' se crea como una clase de estilo antiguo. Se proporciona una solución en [Pregunta de desbordamiento de pila 2023940] (http://stackoverflow.com/questions/2023940/using-super-when-subclassing-python-class-that-is-not-derived-from-objectold). – gotgenes
Gracias, lo he solucionado deletreando la superclase explícitamente. –