resueltos - programacion orientada a objetos python pdf
Documentación de atributos de clase con anotaciones de tipo. (1)
Quiero autogenerar documentación a mi código desde docstrings. Tengo alguna clase básica destinada a almacenar algunos datos:
class DataHolder:
"""
Class to hold some data
Attributes:
batch: Run without GUI
debug (bool): Show debug messages
"""
batch: bool = False
debug: bool = False
name: str = ''default''
"""Object name"""
version: int = 0
"""int: Object version"""
Mi rst
archivo:
DataHolder
==========
.. autoclass:: data_holder.DataHolder
:members:
He documentado cada atributo de una manera diferente para mostrar la diferencia, aquí está el resultado:
Parece que Sphinx no puede conectar la sección de Attributes
con los atributos reales, por eso no puede mostrar su valor predeterminado.
El resultado final que me gustaría lograr es el resultado para el campo de version
con la cadena de documentación definida como para batch
. Quiero mostrar el nombre del atributo con el valor y tipo predeterminados, pero tomado de las anotaciones de tipo. Parece que Sphinx está ignorando las anotaciones de tipo en este caso.
Mis extensiones de esfinge:
extensions = [
''sphinx.ext.viewcode'',
''sphinx.ext.autodoc'',
''sphinxcontrib.napoleon'',
]
¿Qué puedo hacer para lograr tal comportamiento? No puedo encontrar ningún buen ejemplo para tal caso de uso.
Hay una biblioteca incorporada para la generación de documentos desde doc_strings.
https://docs.python.org/2/library/pydoc.html
Todo lo que necesitas es ejecutar
$ pydoc <modulename>
Da una hermosa documentación que enumera las cadenas de documentos, define los parámetros y los valores de retorno. Sólo dale una oportunidad.