【问题标题】:Lint only changed lines of code using PylintLint 仅使用 Pylint 更改了代码行
【发布时间】:2021-12-06 17:33:43
【问题描述】:

我已将 pylint 添加到客户的项目中。由于该项目大约有 15 年的历史,我只想对已更改的代码行进行 lint,使其成为一个渐进的过程。

我尝试了以下命令,但它显示整个更改文件中的错误。有没有办法只报告实际更改的代码行中的错误?

pylint `git diff --name-only --diff-filter=d | grep -E '\.py$' | tr '\n' ' '`

【问题讨论】:

    标签: pylint


    【解决方案1】:

    你可以试试lint_diffs 包。就像在你的例子中那样直接传递它我认为需要对 pylint 进行相当多的配置,因为它会检查缩进和导入等,这在没有上下文的情况下是无用的

    要获得纯文本中的差异,您可以使用 Michas answer

    git diff --color=always|perl -wlne 'print $1 if /^\e\[32m\+\e\[m\e\[32m(.*)\e\[m$/'

    并将其通过管道传送到 pylint,但您不能将纯文本提供给 pylint,因为它需要模块或包作为输入而不是原始代码。

    【讨论】:

      【解决方案2】:

      Darker 允许这样做。 2021年2月支持black、isort、mypy、pylint、flake8。

      此实用程序重新格式化并检查 Git 存储库中的 Python 源代码文件。但是,它仅适用于重新格式化并报告自上次提交以来 Git 工作树中已更改的区域中的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-04
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        • 2021-05-15
        • 1970-01-01
        • 2019-11-05
        • 2019-06-09
        相关资源
        最近更新 更多