23

我想在预提交中配置黑色并从检查任何迁移文件夹中排除预提交。

我的 pyproject.toml 看起来像这样

[tool.black]
line-length = 79
target-version = ['py37']
include = '\.pyi?$'
exclude = '''

(
  /(
      \.eggs
    | \.git
    | \.hg
    | \.mypy_cache
    | \.tox
    | \.venv
    | _build
    | buck-out
    | build
    | dist
  )/
  | ^migrations/
'''

我还配置了预提交。但是在运行pre-commit run --all-files 黑色格式迁移文件夹时,我如何配置黑色

4

1 回答 1

59

问题跟踪器上的这个问题black概述了您的特定问题

pre-commit找到所有 python 文件,然后应用pre-commit的排除,然后将该文件列表传递给底层工具(在这种情况下black

black目前(在撰写本文时)将格式化命令行上列出的所有文件——独立于black'sexclude模式

建议是使用pre-commit' 排除(通过您的.pre-commit-config.yaml),以便这些文件根本不会传递给黑色:

-   id: black
    exclude: ^migrations/

注意:与黑色不同,预提交只会对检查到您的 git 存储库中的文件进行 lint,因此这里不需要排除的洗衣清单(.git/ .mypy_cache/ 等)


免责声明:我是pre-commit

于 2020-04-05T17:54:21.873 回答