Я пытаюсь задокументировать поддерживаемый мной модуль, и мне очень трудно правильно задокументировать мои классы перечисления. Например, вот тот, который я хотел бы правильно задокументировать (источник):
class QOSLevel(Enum):
'''Quality of service levels'''
#: 500ms (fastest available)
EXPRESS = '0'
#: 750ms
REAL_TIME = '1'
#: 1000ms
FAST = '2'
#: 1500ms
MODERATE = '3'
#: 3000ms
SLOW = '4'
#: 5000ms
DELAYED = '5'
Моя документация по этому поводу находится здесь (исходный код):
.. autoclass:: tda.streaming.StreamClient.QOSLevel
:members:
:undoc-members:
:member-order: bysource
Результат выглядит так:
Здесь сразу две ошибки:
Во-первых, установленные мной строки документации не отображаются. Я попытался последовать совету Я получал раньше, что работал с универсальными атрибутами, но кажется, что перечисления как-то обрабатываются по-другому?
Во-вторых, похоже, что директива
:member-order: bysource
игнорируется. Я попытался установить это как здесь, так и вconf.py
, и, похоже, ни одно место не позволяет генерировать поля в правильном порядке.
Пользуюсь sphinx v3.0.4 по назначению. Вы можете попытаться воспроизвести ошибку, скопировав в свой терминал следующее:
git clone https://github.com/alexgolec/tda-api.git
cd tda-api
git checkout remotes/origin/autodoc-bysource-not-working
virtualenv -v virtualenv
source virtualenv/bin/activate
pip install -r requirements.txt
make -f Makefile.sphinx html
open docs-build/html/streaming.html # Only works on Mac OS
QOSLevel
вложен в классStreamClient
. Это работает:.. autoclass:: tda.streaming::StreamClient.QOSLevel
(обратите внимание на двоеточия). См. stackoverflow.com/q/27337534/407651. - person mzjn   schedule 28.05.2020