Ich fange an, mein erstes asyncio-basiertes Projekt mit Sphinx zu dokumentieren. Ich habe bemerkt, dass einige Projekte dieses "coroutine" Präfix vor einigen Methoden haben und ich möchte das gleiche in der Dokumentation meines Projekts tun, aber ich kann nicht herausfinden, wie.Dokumentieren von Python-Koroutinen mit Sphinx autodoc
Zum Beispiel aiohttp's HTTP client reference zeigt dies:
Klasse
aiohttp.ClientSession
(...):Koroutine
request
(...)
Das Projekt scheint Verwenden Sie eine coroutinemethod
Direktive, um dies zu erreichen, aber ich dokumentiere alle meine Funktionen und Klassen Inline mit Docstrings und diese Direktive funktioniert nur, wenn Sie die Dokumente in einem reStructuredText Dokument schreiben.
Kann jemand dieses Ergebnis mit Autodoc erzielen?
Bearbeiten: Ich werde auch Antworten akzeptieren, die erklären, wie man eine Sphinx-Erweiterung macht, um dies zu tun, wenn Sphinx es nicht unterstützt. Bonuspunkte, wenn jemand auf eine Art und Weise zeigen kann, die automatisch erkennt, ob die Methode eine Coroutine ist oder nicht inspect.iscoroutinefunction()
verwendet.
Bearbeiten: Ich freue mich auf die "pyspecific" Sphinx extension im CPython-Projekt zur Inspiration. Ich muss jedoch das Verhalten von autodoc ändern, keine neuen Anweisungen hinzufügen. Nach ein wenig Nachforschungen sieht es so aus, als hätte autodoc einen autodoc-process-signature event, mit dem die Funktionssignatur angepasst werden kann, aber das Objekt scheint nicht von der Erweiterung "pyspecific" verwendet zu werden.