使用 pre-commit 规整你的 Python 代码(最佳实践)
首先 pre-commit 做不到什么
- 并不能提高你的代码质量
- 也不能提高你的逻辑思维能力
pre-commit 能做什么
- 帮助你格式化代码
- 减少再代码格式上的信仰冲突
- 节省更多的时间,讨论逻辑,优化算法。
安装
pip install pre-commit
pip freeze | grep pre-commit >> requiremests.txt
配置 pre-commit
在你的项目目录下创建一个 .pre-commit-config.yaml
文件
repos:
- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
language_version: python3.7
- repo: https://github.com/PyCQA/flake8
rev: 3.7.9
hooks:
- id: flake8
添加以上配置在 .pre-commit-config.yaml 中
这里使用了 black 和 flake8 格式化你的代码,当然还有其他很多插件。
比如: isort
配置 black
在你的项目下, 创建 pyproject.toml
文件
[tool.black]
line-length = 79
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| __pycache__
| build
| dist
)/
'''
配置 flake8
在你的项目下, 创建 .flake8
文件
[flake8]
ignore = E203, E231, E266, E501, W503, F403, F405, F401
exclude =
.git,
__pycache__,
build,
dist
max-line-length = 79
max-complexity = 18
select = B,C,E,F,W,T4,B9
安装 git-commit-hook
pre-commit install
运行 pre-commit
pre-commit run -a
结论
因此有了一个流水线,可以保护项目不被错误格式化的代码侵害。