查找python模块导入
项目描述
import_deps
查找python模块的导入依赖。
import_deps
基于标准库中的ast模块,因此正在分析的模块不会被执行。
安装
pip install import_deps
用法
import_deps
旨在跟踪已知包和模块内的导入。
给定一个包含以下模块的包
foo/__init__.py
foo/foo_a.py
foo/foo_b.py
foo/foo_c.py
其中foo_a.py
具有以下导入
from . import foo_b
from .foo_c import obj_c
用法(命令行界面)
> import_deps foo/foo_a.py
foo.foo_b
foo.foo_c
用法(库)
import pathlib
from import_deps import ModuleSet
# First initialise a ModuleSet instance with a list str of modules to track
pkg_paths = pathlib.Path('foo').glob('**/*.py')
module_set = ModuleSet([str(p) for p in pkg_paths])
# then you can get the set of imports
for imported in module_set.mod_imports('foo.foo_a'):
print(imported)
# foo.foo_c
# foo.foo_b
ModuleSet
您可以通过路径或模块的全限定名来获取ModuleSet
中所有模块的列表。
by_path
请注意,by_path
的关键字必须与在ModuleSet初始化时提供的一模一样。
for mod in sorted(module_set.by_path.keys()):
print(mod)
# results in:
# foo/__init__.py
# foo/foo_a.py
# foo/foo_b.py
# foo/foo_c.py
by_name
for mod in sorted(module_set.by_name.keys()):
print(mod)
# results in:
# foo.__init__
# foo.foo_a
# foo.foo_b
# foo.foo_c
ast_imports(file_path)
ast_imports
是一个低级函数,返回模块中导入语句条目的列表。参数file_path
可以是字符串或pathlib.Path
实例。
返回值是包含以下值的4元组项的列表
- 模块名称(来自“from”语句,如果是普通的
import
则为None
) - 对象名称
- as名称
- 相对导入级别(父级数量,如果是普通的
import
则为None
)
from import_deps import ast_imports
ast_imports('foo.py')
# import datetime
(None, 'datetime', None, None)
# from datetime import time
('datetime', 'time', None, 0)
# from datetime import datetime as dt
('datetime', 'datetime', 'dt', 0)
# from .. import bar
(None, 'bar', None, 2)
# from .acme import baz
('acme', 'baz', None, 1)
# note that a single statement will contain one entry per imported "name"
# from datetime import time, timedelta
('datetime', 'time', None, 0)
('datetime', 'timedelta', None, 0)
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
import_deps-0.3.0.tar.gz (6.6 kB 查看哈希值)
构建分布
import_deps-0.3.0-py3-none-any.whl (7.6 kB 查看哈希值)
关闭
import_deps-0.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 542544c69a435517dc8e556d0030044f49f2e61fff11ab8c2c612ac56ff62705 |
|
MD5 | 88014ad8fd04f08305797d70322ce7ae |
|
BLAKE2b-256 | 210c487690243f9d792c7d1cfdcbc971e21b901140c367729ae83e17d08242ae |
关闭
import_deps-0.3.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4619659d57b8d5426177de7b98748a04446dc756c18544d8d75afda33bb0b008 |
|
MD5 | 9215c4c67cf58a79afad1ff72596db35 |
|
BLAKE2b-256 | 02ea8461a8fc157df724d56c7f0cce8d86af130bcb5e99622af2d3e6ceeca74f |