Zeige lange Optionen nicht zweimal in print_help () von argparse

9

Ich habe den folgenden Code:

%Vor%

Was gibt mir die Ausgabe so:

%Vor%

Ich würde sehr gerne wissen, wie ich Befehle "gruppieren" kann, die zwei Versionen haben (dh lange Optionen), die jeweils auch einen Metavar zeigen.

Das ist meistens ein ästhetisches Problem auf meiner Seite, aber ich möchte das immer noch beheben. Ich habe Handbücher und Texte im Internet gelesen, aber entweder ist die Information einfach nicht da oder ich vermisse hier etwas total:)

    
Peter van Arkel 16.08.2013, 13:55
quelle

3 Antworten

5

Eine andere Lösung, die benutzerdefinierte Beschreibungen verwendet

Wenn Sie metavar='' festlegen, wird die Helpline zu

%Vor%

Hier unterdrücke ich die regulären Hilfslinien und ersetze sie durch die Beschreibungszeilen für eine Gruppe:

%Vor% %Vor%

Oder Sie könnten diese Informationen in die reguläre Beschreibung einfügen. Sie verwenden bereits eine benutzerdefinierte Verwendungszeile.

    
hpaulj 16.08.2013, 19:37
quelle
9

Wenn man hpauljs Antwort in den eigentlichen Code einfügt, funktioniert so etwas:

%Vor%

Um die Standardspaltengröße für Hilfsvariablen zusätzlich zu erweitern, fügen Sie Konstruktor zu CustomHelpFormatter :

hinzu %Vor%

Sehen Sie es in Aktion:

%Vor%     
rr- 29.06.2015 19:59
quelle
2

Ist das Problem, dass <domain> in der Helpline wiederholt wird?:

%Vor%

Der argarse HelpFormatter gibt dem Benutzer nicht viel Kontrolle über diesen Teil der Anzeige. Wie Sie gezeigt haben, können Sie die Verwendungszeile, den Hilfetext und das Metavar festlegen.

Sie müssten die HelpFormatter ableiten und eine der Funktionen so ändern, dass etwas wie folgt aussieht:

%Vor%

Es sieht nicht nach einer komplizierten Änderung aus, wahrscheinlich nach der Methode HelpFormatter._format_action_invocation . Aber Sie müssen genauer angeben, was Sie wollen.

    
hpaulj 16.08.2013 16:06
quelle

Tags und Links