如何自定义Sphinx的模块名称

时间:2013-06-13 02:59:56

标签: python python-sphinx

就狮身人面像而言,我是新手。我的项目结构如下:

  • argparse_actions /
    • argparse_actions /
      • __初始化__。PY
      • folder_actions.py
      • ip_actions.py
    • DOC /
      • _build /
      • index.rst ==>这是起点,主页或根文档。
      • 以及......

__ init__.py看起来像这样:

from folder_actions import *
from ip_actions import *

folder_actions.py 如下所示:

'''
Folder Actions
==============

This module implements some reusable custom actions.

.. autoclass:: FolderExistsAction
.. autoclass:: FolderCreateAction
   :members:

'''

# The rest of the code

生成HTML文档看起来很好,除了这部分:

班级folder_actions FolderCreateAction (...)

我知道folder_actions模块前缀是正确的,但我想更改它以使用包名称,如下所示:

班级argparse_actions FolderCreateAction (...)

我有办法实现这个目标吗?

更新

  • 根文档位于doc/index.rst
  • 如果我将文档字符串从folder_actions.py移到__init__.py,那么文档将如下所示:

    class __init__.FolderCreateAction( ... )
    
  • 仅供参考,我的项目现在在BitBucket

更新2

我不知道为什么我的更改没有被推送到BitBucket,但那无关紧要。请看一下同一个项目,推送到GitHub。感谢您的帮助, mzjn

2 个答案:

答案 0 :(得分:2)

经过几个月的中断后,我终于找到了解决方案:将以下行添加到folder_actions.pyip_action.py模块的文档字符串中:

.. module:: argparse_actions

最好,此行应该是模块docstring的第一行。

答案 1 :(得分:0)

请参阅提供解决方案的 this 答案。

您可以将 __init__.py 文件修改为:

from folder_actions import *
from ip_actions import *

__all__ = ['FolderCreateAction']

这让 Sphinx 知道您希望 FolderCreateAction 成为包的公共 API 的一部分,并将在文档中将其呈现为 argparse_actions.FolderCreateAction