跳转到主要内容

Dlint是一个鼓励最佳编码实践并帮助确保Python代码安全性的工具。

项目描述

Dlint

CI Coverage Status Python Versions PyPI Version

Dlint是一个鼓励最佳编码实践并帮助确保Python代码安全性的工具。

近年来,作为程序员,我最重要的事情是积极追求静态代码分析。通过它预防的数百个严重错误,甚至比这更有价值的是,我对软件可靠性和代码质量的看法发生了变化。

为了使静态分析项目成功,开发者必须感到他们从中受益并享受使用它。

有关文档和规则列表,请参阅文档

安装

$ python -m pip install dlint

并确保它已正确安装

$ python -m flake8 -h
Usage: flake8 [options] file file ...

...

Installed plugins: dlint: 0.15.0, mccabe: 0.5.3, pycodestyle: 2.2.0, pyflakes: 1.3.0

注意dlint: 0.15.0

使用

Dlint基于flake8执行其代码检查。这提供了许多有用的功能,而不必重新发明轮子。

命令行界面

让我们运行一个简单的检查

$ cat << EOF > test.py
print("TEST1")
exec('print("TEST2")')
EOF
$ python test.py
TEST1
TEST2
$ python -m flake8 --select=DUO test.py
test.py:2:1: DUO105 use of "exec" is insecure

--select=DUO 标志告诉 flake8 只运行 Dlint 检查规则。

从这里,我们可以轻松地对Python代码目录运行Dlint。

$ python -m flake8 --select=DUO /path/to/code

要微调您的代码检查,请查看 flake8 帮助信息。

$ python -m flake8 --help

内联编辑器

Dlint的结果也可以直接包含在您的编辑器中,以便快速反馈。这通常需要一个编辑器插件或扩展。以下是常见编辑器的起始点:

集成

Dlint可以轻松集成到CI管道或其他任何地方。

有关更多信息示例,请参阅 '如何将Dlint集成到XYZ?'

自定义插件

Dlint的自定义插件基于一个简单的命名约定,并依赖于Python模块。要创建Dlint自定义插件,请遵循以下约定:

  • Python模块名 必须dlint_plugin_ 开头。
  • 检查器类名 必须Dlint 开头。
  • 检查器类 应该 继承自 dlint.linters.base.BaseLinter
    • 如果出于某种原因您想避免继承,则 必须 正确实现 get_results 函数并从 ast.NodeVisitor 继承。

请参阅示例插件以获取更多信息。

开发

首先,安装开发包

$ python -m pip install -r requirements.txt
$ python -m pip install -r requirements-dev.txt
$ python -m pip install -e .

测试

$ pytest

代码检查

$ flake8

覆盖率

$ pytest --cov

基准测试

$ pytest -k test_benchmark_run --benchmark-py-file /path/to/file.py tests/test_benchmark/

或为单个检查器获取基准测试结果

$ pytest -k test_benchmark_individual --benchmark-py-file /path/to/file.py tests/test_benchmark/

或针对单个检查器运行

$ pytest -k test_benchmark_individual[DUO138-BadReCatastrophicUseLinter] --benchmark-py-file /path/to/file.py tests/test_benchmark/

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程

构建分布

dlint-0.15.0-py3-none-any.whl (44.8 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页