Dividere la documentazione tra docstring e sfinge

7

Sto usando una combinazione di docstring e Sphinx per documentare i miei programmi Python. Con l'autodoc di Sphinx, posso scrivere molta documentazione nel sorgente come docstring. C'è uno standard per la quantità di documentazione da inserire in ciascuno?

Ad esempio,

caso 1 è index.rst

.. automodule:: foo
   :members:

e foo.py

"""documentation"""

class Foo:
"""documentation""""

    def bar(self, baz):
        """more documentation"""

caso 2 index.rst

.. automodule:: foo

e foo.py

"""documentation

.. autoclass:: Foo

"""

class Foo:
"""documentation

.. automethod:: bar

""""

    def bar(self, baz):
        """more documentation"""

caso 3 index.rst

.. automodule:: foo
   .. autoclass:: Foo
      .. automethod:: bar

e foo.py

"""documentation

Classes:
    Foo

"""

class Foo:
"""documentation

Methods:
    bar

""""

    def bar(self, baz):
        """more documentation"""

Il 1 è facile da mantenere, ma le docstring nella fonte mancano di informazioni. Il 2 inserisce tali informazioni nelle docstring di origine, ma è un po 'più difficile da mantenere ed è un po' più difficile da leggere. 3 è facile da leggere e ha una documentazione completa nel codice sorgente, ma è molto difficile da mantenere, e quando si utilizza la sfinge per generare la documentazione, alcune informazioni vengono ripetute. (Sembrerà qualcosa del tipo:

foo:
    documentation
    classes:
        Foo

    Foo:
        documentation
        methods:
            baz
        baz
    
posta darkfeline 24.01.2013 - 03:51
fonte

1 risposta

10

La libreria standard di Python mantiene separata tutta la sua documentazione Sphinx, rinunciando interamente alla funzione di autodoc e utilizza molte più brevi istruzioni nei file sorgente. Quindi, la seguente pratica è forse la migliore:

  • Le didascalie nel codice sorgente non dovrebbero usare le direttive Sphinx, usando solo la formattazione leggera di RST per la leggibilità. Perché (buono) il codice Python è abbastanza chiaro da solo, mantiene doctrings informativi ma semplici. Questi dovrebbero essere principalmente per gli sviluppatori di progetti e chiunque stia scavando nel codice sorgente.
  • La documentazione effettiva degli utenti finali (o degli sviluppatori per le biblioteche) dovrebbe essere gestita da Sphinx. Usa l'autodoc quando è adatto, rispettando quanto sopra.
risposta data 28.01.2013 - 00:35
fonte

Leggi altre domande sui tag