2012-06-04 8 views
22

Estoy compilando un paquete de Python y utilizando Sphinx para crear los documentos. Aparte de mi código de paquete, también incluyo una gran cantidad de scripts de Python de línea de comando, que usan argparse. Me preguntaba si hay una forma de hacer que Sphinx autodocumente estos scripts. El objetivo final sería una lista bastante impresa de scripts, con la ayuda asociada imprimir, argumentos y opciones. Y para ser claros, estoy buscando una forma preexistente de hacerlo, no una forma de implementarlo yo mismo.Sphinx y argparse - autodocumentación de scripts de línea de comando?

Esto no es tan específico de una pregunta como suelo preguntar en S.O., si hay una S.E. sitio para publicar esta pregunta, házmelo saber. Gracias.

+0

no relacionados, pero podría ser útil. Verifique el paquete plac en PyPI. –

+0

No creo que me ayude con esto, pero es interesante, gracias por el aviso. – jeremiahbuddha

Respuesta

16

Puede usar sphinxcontrib.programoutput para incluir los mensajes de ayuda de la línea de comandos en su documentación.

Esto no es específico de argparse pero se puede utilizar para documentar cualquier mensaje de ayuda de impresión de scripts en la línea de comandos.

16

Uso de esfinge argparse extensión:

http://sphinx-argparse.readthedocs.org/en/latest/

+1

Excelente. ¿Hay alguna manera de tener el bloque de "uso" tratado de manera diferente? Para mí, tenerlo como un bloque literal no es del todo correcto. – orome

+1

Y mientras estoy en eso, sería bueno el resultado de las opciones que coincidan con '' option :: 'produce: solo indicadores (no se indica el valor predeterminado), alineados completamente hacia la izquierda con menos sangrías para la descripción , y cambiar la primera letra a mayúsculas y agregar un punto al final si todavía no está allí (ya que la expresión idiomática para '--help' es omitirlas y usar todas minúsculas). Además, tal vez las entradas del marcador que coincidan con la ayuda de la ayuda se muestren más de cerca (por ejemplo, '-cols [COL [COL ...]]' en lugar de 'cols'), ya que todo el texto está escrito en ese contexto. – orome

+0

Parece tener un error: http://pastebin.com/jXAz1qHw –

2

Usted puede utilizar sphinxcontrib.autoprogram. pip install sphinxcontrib-autoprogram, a continuación, poner

extensions += ['sphinxcontrib.autoprogram'] 

en su conf.py. Para documentar comando cli.py importando cli con el objeto argparse parserparser (que puede ser una expresión de Python, como una función get_parser()), utilice

.. autoprogram:: cli:parser 
    :prog: cli.py 
Cuestiones relacionadas