gpt4 book ai didi

python - pydoc 将 python 子模块内容注入(inject)主模块

转载 作者:行者123 更新时间:2023-12-04 14:50:14 28 4
gpt4 key购买 nike

我有一个模块dlprim

dlprim/
__init__.py
netconfig.py
_pydlprim.so

它的__init__.py包括:

from ._pydlprim import *
from .netconfig import *

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

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

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

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

最佳答案

将那些重新导出的元素的名称放入__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)]

关于python - pydoc 将 python 子模块内容注入(inject)主模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69205961/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com