Omite (sau format) valoarea unei variabile atunci când se documentează cu Sfinxul

În prezent, documentez un întreg modul cu autodoc . Cu toate acestea, definesc mai multe variabile la nivelul modulului care conțin liste lungi sau dicte. Acestea sunt incluse în documentație împreună cu valorile, iar valorile sunt neformate, așa că arată ca o miză de 10 rânduri. Ceea ce vreau este ca docstring-ul acestor variabile să fie inclus, dar ca valorile să fie omise sau cel puțin frumos formatate.

Am încercat să excludeți variabila din directiva automodule și să o adăugați astfel:

.. automodule:: foo.bar
   :members:
   :exclude-members: longstuff

   .. py:data:: longstuff

Acest lucru a dus la includerea numai a numelui variabilei, în timp ce atât docstring cât și valoarea longstuff nu erau prezente în documentație.

Cum pot să păstrez docstring-ul și să scot valoarea (sau să am o notă bine formatată) în același timp? Mulțumesc anticipat.

0

1 răspunsuri

There is no simple configuration setting for omitting values of module level variables in the output. But you can do it by modifying the DataDocumenter.add_directive_header() method in autodoc.py. The crucial line in that method is

self.add_line(u'   :annotation: = ' + objrepr, '')

where objrepr is the value.

The following monkey patch added to conf.py works for me:

from sphinx.ext.autodoc import ModuleLevelDocumenter, DataDocumenter

def add_directive_header(self, sig):
    ModuleLevelDocumenter.add_directive_header(self, sig)
    # Rest of original method ignored

DataDocumenter.add_directive_header = add_directive_header
0
adăugat
Acest lucru funcționează, vă mulțumesc foarte mult!
adăugat autor Lev Levitsky, sursa
Într-o altă notă, modificările nu se întâmplă dacă reintroduc paginile, dar numai dacă schimb ceva în sursa paginii. Se întâmplă destul de des și este destul de enervant. Este obișnuit? Care este cel mai simplu mod de a asigura schimbările vor fi aplicate? Se pare că presupune că nu sunt necesare modificări dacă sursa este intactă, ceea ce este greșit.
adăugat autor Lev Levitsky, sursa
Cred că asta am nevoie. Îmi pare rău pentru întrebarea proastă, pur și simplu nu se întâmplă să folosiți make de multe ori în afară de documentele din Sphinx :)
adăugat autor Lev Levitsky, sursa
Nu sunt sigur ca inteleg. Eu folosesc face html curat pentru a vă asigura că totul este redone de la zero.
adăugat autor mzjn, sursa
Nu pare să lucreze cu numpydoc.
adăugat autor Dave Kielpinski, sursa
Python România
Python România
100 participanți

Comunitatea pasionaților de Python din România.