python - 记录枚举类有困难吗?

标签 python python-sphinx inner-classes 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                          

输出如下所示:

enter image description here

这里有两件事立即出错:

  • 首先,我设置的文档字符串没有呈现。我试图遵循 some advice I've received before这适用于通用属性,但似乎枚举的处理方式有所不同?

  • 其次,似乎 :member-order: bysource 指令被忽略。我尝试在此处和conf.py中都进行设置,但两个地方似乎都不允许以正确的顺序发出字段。

我使用 sphinx v3.0.4 是为了它的值(value)。您可以尝试通过将以下内容复制粘贴到终端来复制错误:

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

参见How to document nested classes with Sphinx's autodoc? .

关于python - 记录枚举类有困难吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62066645/

相关文章:

python - 从十六进制字符串到字符(jis编码)

python - 在 Python 字符串中解码 HTML 实体?

Python:幸运七人制游戏(平均掷骰子次数)

latex - 如何使用 MathJax 配置 Sphinx 以使用美元符号作为数学定界符

python - 如何右对齐 reStructuredText 简单表中的列内容?

JAVA方法覆盖和内部类概念

python子进程编码

python-sphinx - 使用 sphinx/reStructuredText 锚定在任意位置?

java - 方法局部类有什么用?

java - 从java中的内部类访问变量