【问题标题】:pre-commit passing files as when using entry在使用条目时预先提交传递文件
【发布时间】:2021-10-06 00:31:18
【问题描述】:

我正在使用pre-commit 通过插件flake8-requirements 调用flake8

该插件目前需要在包根目录中调用flake8,这不是repo 根目录。根据this comment in a pre-commit issue,我已相应地将我的预提交配置修改为:

  - repo: local
    hooks:
      - id: flake8
        name: flake8 src package
        alias: flake8-src
        files: ^src/
        types: [python]
        language: system
        entry: bash -c "cd src && flake8"

这可以正常工作。不幸的是,src 包很大,flake8 需要几秒钟才能运行。所以,现在pre-commit 运行并不快。

如何调整entry 以便将pre-commit 中的files(作为位置参数传递)传递给flake8

更新:还是我错了,这已经按预期工作了?

【问题讨论】:

    标签: flake8 pre-commit pre-commit.com


    【解决方案1】:

    flake8-requirements 似乎不是最棒的插件——它依赖于需要同时访问您的整个代码库,因此您无法真正超越“它会很慢” 同时拥有flake8-requirements

    我个人会将flake8-requirements 签出拆分为单独的检查,并且可能不会将其作为pre-commit 的一部分运行(因为它太慢了)

    另外,我注意到您没有使用官方的flake8 配置,而是使用repo: local 钩子重新发明轮子。因此,您无意中写了一个叉子炸弹:)


    免责声明:我是当前的 flake8 维护者,我创建了预提交

    【讨论】:

    • 谢谢@AnthonySottile!是的,我做 DIY repo: local 的原因是为了解决 repo root 与包 root 的问题,否则我会使用官方的 flake8 配置。一个问题:如果我将flake8-requirements 拆分为它自己的 CI 检入(我同意这是一个好主意),是否有一个flake8 的命令行参数可以用来调用一个插件( flake8-requirements,在这种情况下)?
    • 没有——你可能会创建一个单独的虚拟环境,只安装flake8-requirments
    猜你喜欢
    • 2021-06-03
    • 2019-09-26
    • 1970-01-01
    • 2012-07-27
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    相关资源
    最近更新 更多