如何使用Sphinx的autodoc文档化嵌套类?

6
有没有办法使用Sphinx的autodoc插件记录嵌套类?
输入:
class A:
    class B:
    """
    class B's documentation.
    """

    # ...

我想在我的.rst文件中使用`autoclass`或类似的东西来记录特别的A.B。
我尝试过:
.. currentmodule:: package.module

.. autoclass:: A.B

并且

.. autoclass:: package.module.A.B

没有成功:

/path/to/file.rst:280: WARNING: autodoc: failed to import class 'B' from module 'package.module.A'; the following exception was raised:

...

Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named 'package.module.A'; 'package.module' is not a package

当然,A并不是一个模块;看起来autoclass将最后一个.之前的任何内容都看作包和模块。

这不是如何让Sphinx按照你的意愿工作的答案,但是在Python中嵌套类非常不常见,因此您可能会继续发现对它们的支持很差。您可以使您的类非嵌套,并且轻松地让Sphinx工作。 - Ned Batchelder
是的,我知道。不幸的是,这些嵌套类是已经存在的API的一部分。下一个主要版本应该会将它们解除嵌套,但在此期间,我仍然需要对它们进行文档记录。 - eepp
我创建了一个Sphinx bug报告 - Brecht Machiels
我们经常使用嵌套类,既为了尽可能保持全局命名空间的清晰,又为了传达上下文。 - Bob Kline
1个回答

8

仍未修复。 - demberto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接