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
生成文档 - 它不包括来自 _pydlprim
和 netconfig.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)]
我有一个模块dlprim
dlprim/
__init__.py
netconfig.py
_pydlprim.so
其__init__.py
包括:
from ._pydlprim import *
from .netconfig import *
其中 ._pydlprim
是 boost.pythom 模块,.netconfig
是子模块。
如果我使用 pydoc -w dlprim
生成文档 - 它不包括来自 _pydlprim
和 netconfig.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)]