我正试图记录我正在维护的一个模块,我发现要正确记录我的枚举类非常困难。例如,这里有一个我想正确记录的类(源头):
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
输出结果是这样的
有两件事马上就出了问题
首先,我设置的文档字符串没有呈现出来。我试图按照 前车之鉴 但似乎enums的处理方式有所不同?
其次,似乎 :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