2017-05-14 1 views
1

Ich möchte, dass mein Programm mindestens ein Argument aus einer Menge benötigt, damit die Argumente gültig sind.Wie erzwinge mindestens ein Argument aus einer Menge in Docopt?

Also zum Beispiel sagen wir, ich habe 3 Schalter (-a, -b und -c) und zwei obligatorische Argumente.

Diese wären gültig. myapp -a FOO BAR myapp -a -b FOO BAR myapp -a -c FOO BAR

sein Dies würde nicht:

myapp FOO BAR

Antwort

0

Sie Auslassungs ... zu erklären, verwenden könnte, dass eine Option ein- oder mehrmals angezeigt werden soll:

Usage: 
    myapp (-a|-b|-c)... <FOO> <BAR> 

Hier stellen wir fest, dass entweder -a , -b oder -c sollte einmal oder mehrmals angezeigt werden.

Akzeptiert:

myapp -a FOO BAR 
myapp -a -b FOO BAR 
myapp -a -c FOO BAR 

Rejects:

myapp FOO BAR 
+0

Wäre es nicht zulassen, dass die Fahnen obwohl sie mehrmals zur Verfügung gestellt werden? d.h. "myapp -a-a-b". Nicht dass es ein Problem ist, es ist nur eine Beobachtung. – Jake

+0

Ja, das stimmt. Wenn Sie das vermeiden möchten, müssen Sie wahrscheinlich alle Kombinationen buchstabieren, und das würde die Befehlszeilenspezifikation weniger benutzerfreundlich machen. Es ist also eine Art Kompromiss. –

+0

Ich kann damit leben. – Jake

Verwandte Themen