You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同文件列表配置不同的pre-commit钩子

解决方案

要实现isort和black处理所有文件、仅flake8作用于指定白名单文件的需求,你需要调整配置的层级:

关键问题说明

你之前出现警告是因为把files配置放在了repo级别(flake8的repo节点下),而files是属于单个hook的配置项,并非repo级参数。

修改后的配置

删除全局的files块,然后在flake8的hook节点内添加files配置:

repos:
-   repo: https://github.com/pycqa/isort
    rev: 5.9.3
    hooks:
    -   id: isort
        name: isort (python)
        args: [--profile=black]
    -   id: isort
        name: isort (cython)
        types: [cython]
        args: [--profile=black]
    -   id: isort
        name: isort (pyi)
        types: [pyi]
        args: [--profile=black]
-   repo: https://github.com/psf/black
    rev: 22.3.0
    hooks:
    -   id: black
-   repo: https://github.com/pycqa/flake8
    rev: 4.0.1
    hooks:
    -   id: flake8
        files: |
            (?x)^(
                mymodule/tests/.*py|
                mymodule/cleanfile1.py|
                mymodule/cleanfile2.py
            )$
        args:
        -   --max-line-length=88
        -   --ignore=E203,E501,E731,E741,W503,SIM106,SIM119,FS002,FS003
        additional_dependencies:
        -   flake8-comprehensions
        -   flake8-mutable
        -   flake8-simplify
        -   flake8-use-fstring

配置逻辑

  • 移除全局files后,isort和black会默认处理所有匹配自身类型的文件(比如isort处理.py/.pyx/.pyi,black处理.py)。
  • 在flake8的hook内添加files正则,限制它仅检查你指定的已清理文件。

内容的提问来源于stack exchange,提问作者PiRK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:15:41