python依赖项检查工具
dep-check的Python项目详细描述
DEP检查
dep check是一个python依赖关系检查器。它允许您编写规则来定义每个模块可以导入的内容,dep check然后可以分析项目中的每个源文件,以验证一切正常。还可以使用它为项目绘制依赖关系图。
免费软件:麻省理工学院许可证
支持的语言
默认情况下,该工具假定它在python项目上运行。
安装
要安装dep check,请运行以下命令:
pip install dep-check
这是安装dep check的首选方法 安装最新的稳定版本。
如果您没有安装pip,这个Python installation guide可以指导您完成整个过程。
你还可以看到other installation methods。
用法
构建配置文件
dep_check build <ROOT_DIR> [-o config.yaml][--lang LANG]
Argument | Description | Optional | Default |
---|---|---|---|
ROOT_DIR | The project root directory, containing the source files | :x: | N/A |
-o / --output | The output file (yaml format) | :heavy_check_mark: | dependency_config.yaml |
--lang | The language the project is written in | :heavy_check_mark: | python |
此命令列出yaml文件中每个模块的导入。使用此文件作为起点,使用通配符在哪个模块上编写可以导入内容的依赖关系规则。
下面是添加到初始yaml文件的附加规则的示例:
---dependency_rules:'*':-dep_check.models-dep_check.dependency_finder-dep_check.checkerdep_check.infra.io:-dep_check.use_cases%-jinja2-yamldep_check.infra.std_lib_filter:-dep_check.use_cases.interfacesdep_check.use_cases%:-dep_check.use_cases.app_configuration-dep_check.use_cases.interfacesdep_check.main:-'*'lang:pythonlocal_init:false
- 使用
*
可以包含任何字符串,甚至是空字符串。 - 在模块名之后使用
%
(例如my_module%
)来包括这个模块及其子模块。
例如,在这里,配置文件定义dep_check.infra.io
可以导入dep_check.use_cases
,以及dep_check.use_cases.build
、dep_check.use_cases.check
,等等。
要查看所有支持的通配符,请检查User Manual。
检查配置
配置文件准备好后,运行
dep_check check <ROOT_DIR> [-c config.yaml][--lang LANG]
Argument | Description | Optional | Default |
---|---|---|---|
ROOT_DIR | The project root directory, containing the source files | :x: | N/A |
-c / --config | The yaml file in which you wrote the dependency rules | :heavy_check_mark: | dependency_config.yaml |
--lang | The language the project is written in | :heavy_check_mark: | python |
该命令读取配置文件,并解析每个源文件。然后,它验证每个文件的每个import
是否由配置文件中定义的规则授权。
完成后,它会在控制台上编写报告,按模块列出导入错误和未使用的规则:
绘制依赖关系图
运行此命令需要安装graphviz
dep_check graph <ROOT_DIR> [-o file.svg/dot][-c config.yaml][--lang LANG]
Argument | Description | Optional | Default |
---|---|---|---|
ROOT_DIR | The project root directory, containing the source files | :x: | N/A |
-o / --output | The output file you want (svg or dot format) | :heavy_check_mark: | dependency_graph.svg |
-c / --config | The graph configuration file containing options (yaml format) | :heavy_check_mark: | None |
--lang | The language the project is written in | :heavy_check_mark: | python |
注意:如果生成svg文件,则在/tmp/graph.dot
有很多选项可用于自定义图形(隐藏某些模块、添加层等)。查看User Manual了解更多信息。
贡献
如果你想做出贡献,一定要遵循Contribution guide。
学分
这个包是用Cookiecutter和 audreyr/cookiecutter-pypackage项目模板
作者和贡献者
查看此项目的所有Authors and contributors。
更改日志
1.0.3(2019-08-26)
错误修复
- 该工具现在可以与go一起正常工作。
1.0.0(2019-08-20)
修改
- 该工具现在编写完整的报告,显示错误、警告和文件的数量。
- 命令已被简化,以避免命令行过长
添加了
- 该工具现在支持go语言
- 更好的文档
0.2.0(2019-07-16)
添加了
- 现在可以将图层添加到图形中。
- 如果不使用配置文件中的规则,该工具现在会发出警告。
0.1.0(2019-07-09)
- pypi上的第一个版本。