Ich verwende argparse, um in der Befehlszeile Eingabe und auch um Hilfetext zu produzieren. Ich möchte ArgumentDefaultsHelpFormatter
als formatter_class
verwenden, dies verhindert jedoch, dass ich auch RawDescriptionHelpFormatter
verwende, was mir erlauben würde, meiner Beschreibung oder meinem Epilog benutzerdefinierte Formatierungen hinzuzufügen.ArgumentParser Epilog und Beschreibung Formatierung in Verbindung mit ArgumentDefaultsHelpFormatter
Gibt es eine vernünftige Methode, dies zu erreichen, abgesehen davon, Code zu schreiben, um Text für Standardwerte selbst zu erzeugen? Laut den Argarse-Dokumenten werden alle Interna von ArgumentParser
als Implementierungsdetails und nicht als öffentliche API betrachtet, sodass Sub-Classing keine attraktive Option ist.
Die Unterklassierung hängt nicht von den Einbauten ab. Wenn die Mehrfachvererbung jetzt funktioniert, sollte sie in Zukunft geändert werden. Wie meine Lösung zeigt, verändern die beiden Klassen verschiedene Formatierungsmethoden. – hpaulj
Ein anderes Beispiel, das diese Mehrfachvererbung verwendet: http://stackoverflow.com/questions/23567393/pythons-argh-library-preserve-docstring-formatting-in-help-message/23583350#23583350 – hpaulj
@hpaulj Die Formatierermethoden sind nicht Teil der öffentlichen API. Aus dem Docstring von 'argparse.HelpFormatter':' Nur der Name dieser Klasse wird als öffentliche API betrachtet. Alle von der Klasse bereitgestellten Methoden werden als Implementierungsdetail betrachtet. " Beide Klassen konnten komplett neu geschrieben werden. – timdiels