Sto utilizzando argparse per inserire l'input da riga di comando e anche per produrre testo di aiuto. Voglio usare ArgumentDefaultsHelpFormatter
come formatter_class
, tuttavia questo mi impedisce di usare anche RawDescriptionHelpFormatter
che mi permetterebbe di aggiungere una formattazione personalizzata alla mia descrizione o epilog.ArgumentParser epilog e descrizione della formattazione in combinazione con ArgumentDefaultsHelpFormatter
Esiste un metodo ragionevole per ottenere questo oltre alla scrittura di codice per produrre il testo per i valori predefiniti? Secondo i documenti argparse, tutti gli interni di ArgumentParser
sono considerati dettagli di implementazione, non API pubblica, quindi la sottoclassificazione non è un'opzione interessante.
La sottoclasse in questo modo non dipende dall'interno. Se l'ereditarietà multipla funziona ora, dovrebbe avvenire in tutte le future modifiche. Come mostra la mia soluzione, le due classi stanno modificando diversi metodi di formattazione. – hpaulj
Un altro esempio che utilizza questa ereditarietà multipla: http://stackoverflow.com/questions/23567393/pythons-argh-library-preserve-docstring-formatting-in-help-message/23583350#23583350 – hpaulj
@hpaulj I metodi di formattazione non sono parte dell'API pubblica. Dalla docstring di 'argparse.HelpFormatter':' Solo il nome di questa classe è considerato un'API pubblica. Tutti i metodi forniti dalla classe sono considerati un dettaglio di implementazione. Entrambe le classi potrebbero essere interamente riscritte. – timdiels