2012-04-27 13 views
5

Tengo una gran cantidad de archivos python y me gustaría generar documentación API pública para mi proyecto. Todas las funciones que son parte de la API que he decorado con un decorador.Documentación de la API pública de Sphinx

por ejemplo:

@api 
def post_comment(comment)" 
    """ Posts a coment 
    """ 
    pass 

Hay otros métodos públicos en las mismas clases. La API se distribuye entre varios archivos, cada archivo define clases con métodos y algunos métodos tienen este decorador @api. ¿Cómo puedo decirle a Sphinx que genere documentos solo para la API pública?

Respuesta

3

Estoy respondiendo a mi propia pregunta ... Después había buscar un poco más encontré esto:

http://sphinx.pocoo.org/ext/autodoc.html#event-autodoc-skip-member

Básicamente se puede definir una función en el archivo de conf.py puede mirar a cada miembro y saltar todo lo que no tiene el decorador correcto.

aquí es un poco de ejemplo al final de mi archivo conf.py (este es el archivo de configuración de la esfinge)

def my_doc_skip(app, what, name, obj, skip, options): 
    if what != "method": 
     return True 

    # if obj is decorated with @api 
    #  return True 
    # return False 

def setup(app): 
    app.connect('autodoc-process-docstring', my_process_docstring) 
    app.connect('autodoc-skip-member', my_doc_skip) 

También puede procesar la cadena de documentación de una función.

Cuestiones relacionadas