Black与Flake8钩子冲突:如何配置Pre-Commit避免失败?
解决Black与Flake8的切片格式冲突问题
遇到Black自动给切片冒号前加空格、但Flake8要求去掉这个空格的冲突时,有两种简单的配置方式解决:
方式一:全局配置Black适配Flake8规则
在项目根目录的pyproject.toml文件里添加以下配置,让Black默认不在切片冒号前后加空格:
[tool.black] space-in-slice = false
配置后,Black会直接把代码格式化为foo1 = foo2[len(foo3):],和Flake8的要求完全一致。
方式二:在Pre-Commit钩子中给Black指定参数
如果不想修改Black的全局配置,可以直接在.pre-commit-config.yaml的Black钩子里添加命令行参数,临时禁用切片空格:
- repo: https://github.com/psf/black rev: 24.3.0 # 替换成你当前使用的Black版本号 hooks: - id: black args: ["--no-space-in-slice"]
这样每次Pre-Commit运行Black时,都会按照Flake8的要求格式化切片语法,避免冲突导致的检查失败。
内容的提问来源于stack exchange,提问作者servoz
相关产品推荐
相关产品推荐

