记录枚举 类 有困难吗?
Difficulties documenting enum classes?
我正在尝试记录我正在维护的模块,但我发现很难正确记录我的枚举 类。例如,这是我想正确记录的一个 (source):
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'
我的文档在这里 (source):
.. autoclass:: tda.streaming.StreamClient.QOSLevel
:members:
:undoc-members:
:member-order: bysource
输出如下所示:
这里有两件事是错误的:
首先,我设置的文档字符串没有呈现。我试图遵循适用于通用属性的 some advice I've received before,但似乎枚举的处理方式有所不同?
其次,: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
class 嵌套在 StreamClient
class 中。以下作品(注意冒号):
.. autoclass:: tda.streaming::StreamClient.QOSLevel
参见How to document nested classes with Sphinx's autodoc?。
我正在尝试记录我正在维护的模块,但我发现很难正确记录我的枚举 类。例如,这是我想正确记录的一个 (source):
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'
我的文档在这里 (source):
.. autoclass:: tda.streaming.StreamClient.QOSLevel
:members:
:undoc-members:
:member-order: bysource
输出如下所示:
这里有两件事是错误的:
首先,我设置的文档字符串没有呈现。我试图遵循适用于通用属性的 some advice I've received before,但似乎枚举的处理方式有所不同?
其次,
: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
class 嵌套在 StreamClient
class 中。以下作品(注意冒号):
.. autoclass:: tda.streaming::StreamClient.QOSLevel
参见How to document nested classes with Sphinx's autodoc?。