强制执行Python包内和包间的导入规则。
项目描述
Import Linter允许你定义和强制执行Python包内和包间的导入规则。
免费软件:BSD许可
概述
Import Linter是一个命令行工具,用于检查你是否遵循在Python项目中的自定架构。它通过分析一个或多个Python包中所有模块之间的导入来实现,并将其与你在配置文件中提供的规则集进行比较。
配置文件包含一个或多个“合约”。每个合约具有特定的类型,这决定了它将应用哪种规则。例如,禁止 合约类型允许你检查某些模块或包是否未被项目部分导入。
如果你在一个团队中工作,并在复杂的代码库中强制执行特定的架构风格,Import Linter特别有用。在这种情况下,你可以将Import Linter添加到你的部署管道中,以便任何不遵循架构的代码都会失败测试。
如果没有内置的合约类型适合你的期望架构,你可以定义一个自定义合约。
快速入门
安装Import Linter
pip install import-linter
请决定要检查的依赖关系流。在本例中,我们已决定确保myproject.foo既不依赖于myproject.bar也不依赖于myproject.baz,因此我们将使用forbidden合同类型。
在您的项目根目录下创建一个.importlinter文件以定义您的合同。在本例中
[importlinter]
root_package = myproject
[importlinter:contract:1]
name=Foo doesn't import bar or baz
type=forbidden
source_modules=
myproject.foo
forbidden_modules=
myproject.bar
myproject.baz
现在,从您的项目根目录运行
lint-imports
如果您的代码违反了合同,您将看到类似以下错误消息
=============
Import Linter
=============
---------
Contracts
---------
Analyzed 23 files, 44 dependencies.
-----------------------------------
Foo doesn't import bar or baz BROKEN
Contracts: 1 broken.
----------------
Broken contracts
----------------
Foo doesn't import bar or baz
-----------------------------
myproject.foo is not allowed to import myproject.bar:
- myproject.foo.blue -> myproject.utils.red (l.16)
myproject.utils.red -> myproject.utils.green (l.1)
myproject.utils.green -> myproject.bar.yellow (l.3)
项目详细信息
下载文件
下载您平台上的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
import-linter-2.0.tar.gz (28.7 kB 查看散列)
构建分布
import_linter-2.0-py3-none-any.whl (41.0 kB 查看散列)