pydoc 将 python 个子模块内容注入主模块

pydoc injecting python submodules content to main module

我有一个模块dlprim

dlprim/
  __init__.py
  netconfig.py
  _pydlprim.so

__init__.py包括:

from ._pydlprim import *
from .netconfig import *

其中 ._pydlprim 是 boost.pythom 模块,.netconfig 是子模块。

如果我使用 pydoc -w dlprim 生成文档 - 它不包括来自 _pydlprimnetconfig.py 的 类 所以为了生成它们我需要 运行pydoc -w dlprim dlprim.netconfig dlprim._pydlprim

但是我在不同的命名空间中得到了 3 个单独的文件,我希望所有 类 都可以在 pydoc 的 dlprim 模块和命名空间下找到。

我该怎么做,或者有替代方法吗?

将这些再出口物品的名称放入 __all__

from ._pydlprim import *
from .netconfig import *

def _all_of(mod):
    try:
        yield from mod.__all__
        return
    except AttributeError:
        pass
    for item in dir(mod):
        if not item.startswith('_'):
            yield item

__all__ = [*_all_of(_pydlprim), *_all_of(netconfig)]