Noțiuni de bază cu Sphinx / Autodoc: Partea 1
În acest articol, vom trece prin elementele de bază (foarte) de generare a documentației de la docstrings în codul Python. Este un pic de măcinare, dar după ce o faceți o dată, va fi ușor să repetați procesul în fiecare proiect nou.
pentru scopurile noastre, vom presupune că (1) credeți în valoarea documentării codului dvs.; (2) doriți să generați documente din docstrings și (3) ați ales să utilizați Sphinx pentru a realiza lucrarea.
în cele din urmă, se presupune că ați configurat deja un mediu virtual distinct pentru aplicația dvs. Pentru cei interesați, îmi place foarte mult managerul de mediu pyenv. Are chiar și un instalator la îndemână.
va trebui să instalați sphinx prinpip
. Cel puțin veți avea nevoie de versiunea 1.3, dar dacă nu aveți motive întemeiate, ar trebui să instalați cea mai recentă versiune.
$ pip install sphinx
Pasul 2: configurarea proiectului cu Quickstart
când instalați pachetul sphinx un număr de utilitare de linie de comandă sunt de configurare, de asemenea.
unul dintre acestea,sphinx-quickstart
va genera rapid un fișier de configurare de bază și o structură de directoare pentru documentația dvs.
rulați această comandă în directorul de bază al proiectului dvs. (adică rădăcina git repo). Vă va pune o serie de întrebări care vor determina acțiunile sale. În general, puteți accepta valorile implicite, dar iată câteva sugestii despre când să vă abateți de la valorile implicite:
după ce programul a rulat, veți observa că există un nou folder./docs
în directorul de proiect. În plus, există trei fișiere noi în acel folder:conf.py
index.rst
șiMakefile
.
Pasul 3: ajustarea conf.py fișier
implicitconf.py
fișier generat de utilitarul quickstart este de aproximativ 170 de linii lungi, așa că nu va include totul aici. Cu toate acestea, există câteva elemente pe care trebuie să le actualizăm înainte de a continua.
spuneți Sphinx locația pachetului Python
primul lucru pe care trebuie să-l facem este să indicăm unde este pachetul Python care conține codul programului dvs. în raport cu fișierulconf.py
. Dacă structura dvs. de directoare arată astfel:
oricât de mult mi-aș dori ca Sphinx să meargă și să ne găsească docstrings-urile și să le aranjeze frumos fără nicio altă configurație, nu este chiar atât de magic.
pentru a merge mai departe, va trebui să facem câteva modificări minore la fișierul nostru index.rst
, care în prezent arată astfel:
să începem prin a scăpa de comentariul din partea de sus, care este doar zgomot:
acum, deși există o serie de lucruri pe care le-am putea face aici, ne vom limita la minimul necesar pentru a menține această postare la o lungime oarecum rezonabilă.
vedeți că.. toctree::
linie? Aceasta este ceea ce Sfinxul numește o directivă. Trebuie să adăugăm directive autodoc la fișierul nostru index.rst
, astfel încât Sphinx să știe ce obiecte de cod dorim să folosim extensia autodoc.
voi merge mai departe și adăugați unul indicând Sfinxului că vreau să documenteze membrii publici ai main.py
modulul din interiorul my_project
pachet:
Pasul 5: scrieți Docstrings
nu vom acoperi cum să scrieți docstrings în stil Numpy sau Google în acest post.
cu toate acestea, aici este codul de la main.py
care conține o pereche de docstrings stil NumPy simplu, care va fi preluat de Directiva noastră autodoc:
Pasul 6: Generați-vă documentele!
acum este timpul să culegi recompensele muncii tale. Asigurați-vă că vă aflați în directorul ./docs
și executați următoarele: make html
Dacă ați urmărit până acum, ar trebui să vedeți ceva de genul:
atâta timp cât vedeți acel glorios build succeeded
mesaj la sfârșit, sunteți gata să du-te și privește frumoasa ta creație.
la linia de comandă, executați open _build/html/index.html
(sau pur și simplu deschideți pagina respectivă în browserul dvs. manual) și ar trebui să vedeți ceva de genul acesta:
următorii pași
tocmai am zgâriat suprafața aici și există o mulțime de negi încă în documentația noastră simplă.
în următoarea postare pe această temă, vom aprofunda directivele extensiei autodoc și vom obține un control mai mare asupra conținutului și aspectului documentației noastre.
Leave a Reply