查找python模块导入
项目描述
import_deps
查找 python 模块的导入依赖项。
import_deps基于标准库中的ast 模块,因此不执行正在分析的模块。
安装
pip install import_deps
用法
import_deps旨在仅跟踪一组已知包和模块中的导入。
给定一个包含模块的包:
foo/__init__.pyfoo/foo_a.pyfoo/foo_b.pyfoo/foo_c.py
哪里foo_a.py有以下进口:
from . import foo_b
from .foo_c import obj_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您可以通过路径或模块的完整限定名获取所有模块的列表。
by_path
请注意,key forby_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(文件路径)
ast_imports是一个低级函数,它返回模块中 import 语句的条目列表。参数file_path可以是字符串或pathlib.Path实例。
返回值是一个包含值的 4 元组项列表:
- 模块名称(“from”语句的,
None如果是普通的import) - 对象名称
- 作为名字
- 相对导入的级别(父级的数量,
None如果是普通的import)
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.2.0.tar.gz
(6.0 kB
查看哈希)
内置分布
import_deps-0.2.0-py3-none-any.whl
(7.4 kB
查看哈希)
关
import_deps -0.2.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c63dbbc91cc6a6d9bd3ef3fd3193c285712a2d6bba2f3bc2582158d186a84fb1 |
|
| MD5 | 1783461e687913fb9739a84f42b11a8e |
|
| 布莱克2-256 | 61b367ecaed610e6f333a318482def6c5f0f1bd502e2a136a03bf3ebb58c6aa4 |
关
import_deps -0.2.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 295d5f31cb35df7c471ec4b05bcde06c123b73d1f6d375894070d990b132572d |
|
| MD5 | 41aea408670d9855b20ed663ca41f409 |
|
| 布莱克2-256 | 72fb1bd7a8f3966667e82fb71aad81fcf9b2b4a7a74acb1fc5b0509d86212882 |