python依赖项检查工具

dep-check的Python项目详细描述


DEP检查

imageCircleCI

dep check是一个python依赖关系检查器。它允许您编写规则来定义每个模块可以导入的内容,dep check然后可以分析项目中的每个源文件,以验证一切正常。还可以使用它为项目绘制依赖关系图。

graph_example

免费软件:麻省理工学院许可证

支持的语言

默认情况下,该工具假定它在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]
ArgumentDescriptionOptionalDefault
ROOT_DIRThe project root directory, containing the source files:x:N/A
-o / --outputThe output file (yaml format):heavy_check_mark:dependency_config.yaml
--langThe 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.builddep_check.use_cases.check,等等。

要查看所有支持的通配符,请检查User Manual

检查配置

配置文件准备好后,运行

dep_check check <ROOT_DIR> [-c config.yaml][--lang LANG]
ArgumentDescriptionOptionalDefault
ROOT_DIRThe project root directory, containing the source files:x:N/A
-c / --configThe yaml file in which you wrote the dependency rules:heavy_check_mark:dependency_config.yaml
--langThe language the project is written in:heavy_check_mark:python

该命令读取配置文件,并解析每个源文件。然后,它验证每个文件的每个import是否由配置文件中定义的规则授权。

完成后,它会在控制台上编写报告,按模块列出导入错误和未使用的规则:

report

绘制依赖关系图

运行此命令需要安装graphviz

dep_check graph <ROOT_DIR> [-o file.svg/dot][-c config.yaml][--lang LANG]
ArgumentDescriptionOptionalDefault
ROOT_DIRThe project root directory, containing the source files:x:N/A
-o / --outputThe output file you want (svg or dot format):heavy_check_mark:dependency_graph.svg
-c / --configThe graph configuration file containing options (yaml format):heavy_check_mark:None
--langThe language the project is written in:heavy_check_mark:python

注意:如果生成svg文件,则在/tmp/graph.dot

有很多选项可用于自定义图形(隐藏某些模块、添加层等)。查看User Manual了解更多信息。

贡献

如果你想做出贡献,一定要遵循Contribution guide

学分

这个包是用Cookiecutteraudreyr/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上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ApplyTransfermListener。Marklogic Java客户端Api中的ApplyResult?   java安卓:如何从服务调用方法   java如何在Junit中测试Servlet3.0注释基础servlet和嵌入Tomcat7   java在JSF中嵌入portlet   java检查多个向量是否是回文的?   Selenium Java页面对象模型查询   Java中运算符的优先级   java从包含透明像素的图像创建自定义JButton   hibernate Java类变量与其他变量的声明   安卓错误:任务执行失败:应用程序:mergeDebugResources'>JAVAlang.OutOfMemoryError:无法创建新的本机线程   java从localhost运行portlet   当用户输入索引时打印数组元素的java程序   在Windows 10上运行时出现java Blazegraph错误   javascript-spring有条件地加载资源