Pregunta

Esfinge tiene una característica llamada automethod que extrae la documentación de la cadena de documentación de un método y incrusta que en la documentación. Pero no sólo se incrusta la cadena de documentación, sino también la firma del método (nombre + argumentos). ¿Cómo puedo incrustar solamente de la cadena de documentación (con exclusión de la firma del método)?

ref: http://sphinx.pocoo.org/ext/autodoc.html

¿Fue útil?

Solución

Creo que lo que estás buscando es:

from sphinx.ext import autodoc

class DocsonlyMethodDocumenter(autodoc.MethodDocumenter):
  def format_args(self):
    return None

autodoc.add_documenter(DocsonlyMethodDocumenter)

las fuentes de corriente esto debería permitir anulando que clase es responsable de documentar métodos (las versiones anteriores de add_documenter prohibieron tales redefiniciones, pero ahora se les permite explícitamente). Tener format_args Ninguno volver, por supuesto, es la forma documentada en autodoc decir "no se moleste con la firma".

Creo que esta es la manera limpia, diseñado para poder realizar esta tarea, y, como tal, preferible monkeypatching alternativas. Si tiene que vivir con algunas versiones antiguas de sphinx sin embargo es posible de hecho que monkeypatch (autodoc.MethodDocumenter.format_args=lambda _:None - EEK -!) Aunque recomendaría sphinx la actualización a la versión actual como un mejor enfoque si es factible en la implementación específica <. / p>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top