2

Ich frage mich, wie die Zielvariable für die click.option (Click lib) überschrieben werden kann. Zum Beispiel in einem solchen Stück CodeZielvariable für Klick-Parser auswählen

import click 

@click.command() 
@click.option('--output', default='data') 
def generate_data(output_folder): 
    print(output_folder) 

Deshalb möchte ich --output Flagge verwenden, aber seinen Wert auf output_folder Argument übergeben, irgendwie diese: @click.option('--output', default='data', dest='output_folder')? Gibt es eine solche Fähigkeit in Klick? Ich weiß, dass Argarse solch ein Verhalten erlauben.

Antwort

3

Ja, siehe den Abschnitt in der Klick-Dokumentation unter , der sowohl Optionen als auch Argumente enthält.

Wenn einem Parameter kein Name ohne Bindestriche zugewiesen wird, wird automatisch ein Name generiert, indem das längste Argument genommen und alle Bindestriche in Unterstriche konvertiert werden. Bei einer Option mit lautet der Parametername foo_bar. Bei einer Option mit ('-x',) lautet der Parameter x. Für eine Option mit ('-f', '--filename', 'dest') heißt der Parameter dest.

Hier ist dein Beispiel:

from __future__ import print_function 
import click 

@click.command() 
@click.option('--output', 'data') 
def generate_data(data): 
    print(data) 

if __name__ == '__main__': 
    generate_data() 

es Laufen:

$ python2.7 stack_overflow.py --output some_output 
some_output 
+0

Danke, müssen nur aufmerksamer sein, wenn Dokumente lesen –