如何设置pylint分数阈值?

How to set a pylint score threshold?

我想提取我的 pylint 评级并设置一个阈值。我解释一下,比如分数低于5,我要出口1;如果我的代码评分高于 5,我想退出 0 并继续我的 Jenkins 程序。

这是在 Python 中访问 pylint API 的方法。以下代码应保存到文件中并执行,脚本的第一个参数为 module/file to lint:

import sys
from pylint import lint

THRESHOLD = 5

if len(sys.argv) < 2:
    raise ArgumentError("Module to evaluate needs to be the first argument")

run = lint.Run([sys.argv[1]], do_exit=False)
score = run.linter.stats['global_note']

if score < THRESHOLD:
    sys.exit(1)

安装

> pip install pylint-fail-under

你可以检查阈值如下

pylint-fail-under --fail_under=6.0 test_pylint_code.py (or path)

如果分数低于 6.0,它 returns 一条消息

错误:分数 5.3999999999999995 小于失败值 6.0

否则 returns 退出代码 0。

Link到官方文档是https://pypi.org/project/pylint-fail-under/

从 pylint 2.5.0 开始,有一个名为 --fail-under 的新论点无需外部工具或脚本即可解决此问题。

在这个例子中,当分数低于 8 时,pylint 将报错退出:

pylint --fail-under=8 python_code.py