Python模块发现

2024-04-16 10:59:38 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:我正在尝试微调我们的覆盖率指标。对于许多开发人员来说,经常会发生一个新的子模块被提交而没有被使用的情况(例如,提交一个新的模块,该模块将在以后的生产代码中使用)。由于大多数情况下这些都是子模块,如果从未调用过模块的成员,coverage.py将对它们一无所知,从而给出错误的覆盖率报告。显然,我不能依赖开发人员在.pylintrc文件中添加这样的模块,因此最好的方法是在顶级模块列表下生成一个包含所有可用python子模块的树。我需要这样的东西

module_list = ('module_a', 'module_b',)
for module_name in module_list:
    module = importlib.import_module(module_name)
    module_tree = get_submodules(module)

在这里我期待着这样的事情:

{
    'module_a': {
        'module': <module 'module_a' from …>,
        'submodules': {
            'module_a.submodule1': {
                'module': <module 'module_a.submodule1' from …>,
                'submodules': {}
             },
             'module_a.submodule2': {
…

是否可以不篡改目录路径?你知道吗


Tags: 模块代码namefrom开发人员覆盖率情况成员