跳到主要内容

flake8包装器,仅对修改/暂存代码运行

项目描述

flake8-staged-diff

运行flake8,但仅在暂存文件(使用git diff --staged标识)上报告发现。此工具主要用于通过pre-commit集成,但也提供命令行界面。

它是如何工作的?

此工具首先运行git diff -U0 --staged --,识别已修改的文件和行,然后对整个文件运行flake8,并简单地过滤掉所有非修改代码的发现。

如果没有文件在git中暂存,它将立即返回

pre-commit集成

一个示例.pre-commit-config.yaml

repos:
  - repo: https://github.com/bagerard/flake8-staged-diff
    rev: ''  # Use the sha / tag you want to point at
    hooks:
      - id: flake8-staged-diff

注意: 这将仅影响本地使用pre-commit,通常通过git commit。当它通过pre-commit run -a在Github管道中运行时,将没有暂存的文件,工具将简单地通过。

命令行界面使用

界面与flake8相同,例如。

flake8-staged-diff file1.py file2.py --select=E501

理由

此工具允许在大型/遗留代码库中仅对更新或插入的代码引入一些flake8规则。

我们在工作中使用此工具强制使用以下配置对修改的代码执行类型注解

  - repo: https://github.com/bagerard/flake8-staged-diff
    rev: ''  # Use the sha / tag you want to point at
    hooks:
      - id: flake8-staged-diff
        args:
          - "--select=AN"
        additional_dependencies:
          - flake8-annotations

考虑因素

请谨慎使用此工具,并非每个flake8规则都适合此工具。实际上,有时修改一行代码可能会在文件的其他部分引入错误,但由于这些部分不在diff中,因此它们不会通过此工具显示。请确保审查此处的pre-commit / Flake8维护者评论。

项目详情


下载文件

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

源代码分布

flake8-staged-diff-0.3.0.tar.gz (4.2 kB 查看哈希)

上传时间 源代码

构建分布

flake8_staged_diff-0.3.0-py2.py3-none-any.whl (4.7 kB 查看哈希)

上传时间 Python 2 Python 3

由以下提供支持