python - variabili - Documentare gli attributi delle classi con annotazioni di tipo



variabili di classe python (1)

Voglio generare automaticamente la documentazione sul mio codice da docstrings. Ho una classe base per memorizzare alcuni dati:

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"""

Il mio rst file:

DataHolder
==========

.. autoclass:: data_holder.DataHolder
   :members:

Ho documentato ogni attributo in un modo diverso per mostrare la differenza, ecco l'output:

Sembra che Sphinx non possa collegare la sezione Attributes con gli attributi reali, ecco perché non può visualizzare il loro valore predefinito.

L'output finale che vorrei ottenere è il risultato come per il campo version con docstring definito come batch . Voglio visualizzare il nome dell'attributo con valore e tipo predefiniti, ma preso da annotazioni di tipo. Sembra che Sphinx stia ignorando le annotazioni sul tipo in questo caso.

Le mie estensioni sfinge:

extensions = [
    'sphinx.ext.viewcode',
    'sphinx.ext.autodoc',
    'sphinxcontrib.napoleon',
]

Cosa posso fare per ottenere questo comportamento? Non riesco a trovare alcun buon esempio per tale caso d'uso.


C'è una libreria incorporata per la generazione di documenti da doc_strings.

https://docs.python.org/2/library/pydoc.html

Tutto ciò che serve è eseguire

$ pydoc <modulename>

Offre una bella documentazione che elenca le stringhe doc, definisce i parametri e i valori di ritorno. Provaci.





sphinx-napoleon