记录枚举 类 有困难吗?

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                          

输出如下所示:

这里有两件事是错误的:

我使用 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?