2016-07-30 24 views
0

Ich habe einen Befehl, der 1 Argument und kann mehrere Flags nehmen.Leere Argumente für bestimmte Flags ignorieren

@click.command() 
@click.argument('item') 
@click.option('--list-items', help='list items', is_flag=True) 
def cli(item, list_items): 
    if list_items: 
     click.echo(ITEMS) 
     return 

es derzeit gibt:

Error: Missing argument "item". 

Wie kann ich machen, damit ich die Funktionalität von --list-Elemente zugreifen könnte, selbst wenn ich ein Argument nicht zur Verfügung stellen? Genau wie --help flag.

+0

'iten'! =' Item'. Ist das ein Tippfehler in Ihrem Post hier? –

+0

@MartijnPieters ja, reparierte es. Es ist jedoch egal, der Code ist nur da, um das Problem zu visualisieren – Granitosaurus

Antwort

1

Sie müssten item optional machen:

@click.argument('item', required=False) 

dann tun Fehler in der Funktion der Handhabung (zum Beispiel eine BadParameter() exeception erhöhen).

+0

Ich kann nicht glauben, dass ich es verpasst habe, ging für 30 Minuten durch Docs und konnte es nicht finden: D Danke! – Granitosaurus

0

Sie haben es zwingend Argument, es entweder optional machen Zugabe erforderlich = False oder durch einen Standardwert ihm hinzufügen