难以记录enum类?

问题描述 投票:1回答:1

我正试图记录我正在维护的一个模块,我发现要正确记录我的枚举类非常困难。例如,这里有一个我想正确记录的类(源头):

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                          

输出结果是这样的

enter image description here

有两件事马上就出了问题

  • 首先,我设置的文档字符串没有呈现出来。我试图按照 前车之鉴 但似乎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    
python documentation python-sphinx
1个回答
2
投票

问题是 QOSLevel 类嵌套在 StreamClient 类。以下作品(注意冒号)。

.. autoclass:: tda.streaming::StreamClient.QOSLevel

如何使用Sphinx的autodoc来记录嵌套类?.

© www.soinside.com 2019 - 2024. All rights reserved.