Python Sphinx 在类中导入方法组织

问题描述

我有一个从子模块导入许多方法的类。目前,Sphinx 设置为“按源”组织,因此它们至少按导入子模块的顺序进行排序。

不过,我想要的是它们来自的文件标题的某种标题或可搜索文本。

当前目录结构:

my_project
├── setup.py
└── my_package
    ├── __init__.py # Classes for subpackage_1 and subpackage_2 and imports occur here
    ├── subpackage_1
    │   ├── __init__.py
    │   ├── _submodule_a.py
    │   └── _submodule_b.py
    └── subpackage_2
        ├── __init__.py
        ├── _submodule_c.py
        └── _submodule_d.py

Sphinx 模块第一个文件

Module contents
---------------

.. automodule:: my_package
   :members:
   :undoc-members:
   :show-inheritance:
   :member-order: bysource

在 my_package init.py 中定义了父类,其中所有子模块/方法都被导入到它们相关的类中。

class MyClass_1():
    ...
    from .subpackage_1._submodule_a import method_a
    from .subpackage_1._submodule_b import method_b,method_c

class MyClass_2():
    ...
    from .subpackage_2._submodule_c import method_d,method_e
    from .subpackage_2._submodule_d import method_f

生成的 Sphinx 方法文档中,我看到了每个类下的方法,但希望能够看到方法源自哪个子模块文件。不必是一个小节,只需包含标题/注释等就可以了,而不必求助于手动列出 Sphinx 文件中的所有模块/方法

实际包中有数百个函数,因此有助于用户在查看文档时能够快速辨别方法来自哪个子模块文件

当前的狮身人面像输出 所需的狮身人面像输出
Class MyClass_1... Class MyClass_1...
submodule_a
* method_a * method_a
submodule_b
* method_b * method_b
* method_c * method_c
Class MyClass_2... Class MyClass_2...
submodule_c
* method_d * method_d
* method_d * method_e
submodule_d
* method_f * method_f

我看到更糟糕的情况,将子模块文件名放在文件中每个方法的文档字符串中,但如果有人以更自动化的方式解决这个问题,我会很高兴

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)