自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個簡單的步驟讓你的 Python 代碼更干凈

開發(fā) 前端
你可以將這兩個文件拷貝到自己的項目根目錄中,然后執(zhí)行一次 pre-commit install,這樣每次提交代碼的時候,都是干凈的代碼,是不是很方便?

說起來容易做起來難,我們都知道代碼可讀性非常重要,但是寫的時候總是隨心所欲,不考慮類型提示、import 排序、PEP8 規(guī)范。今天分享一個小技巧,通過一個簡單的步驟就可以讓你的 Python 代碼更干凈。

這就是 pre-commit:

圖片

可以讓你的代碼提交之前自動檢查是否符合你想要的規(guī)范。

使用之前,先 pip 安裝一下:

pip install pre-commit

然后在項目的根目錄下創(chuàng)建兩個文件:.pre-commit-config.yaml 和 pyproject.toml。

.pre-commit-config.yaml 文件內(nèi)容如下:

exclude: _pb2\.py$
repos:
- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black
args: [--skip-string-normalization]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: check-docstring-first
- id: check-json
- id: check-merge-conflict
- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
- id: requirements-txt-fixer
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
hooks:
- id: python-check-mock-methods
- id: python-use-type-annotations
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v0.910"
hooks:
- id: mypy
args:
[
--ignore-missing-imports,
--warn-no-return,
--warn-redundant-casts,
--disallow-incomplete-defs,
]
additional_dependencies: [types-all]
- repo: https://github.com/PyCQA/isort
rev: 5.9.3
hooks:
- id: isort
args: [--profile, black, --filter-files]

這里面配置了 black、mypy、check-docstring-first、isort 等工具,id 就是對應(yīng)的工具,可以說這個配置文件基本上就夠用了。

在 .pre-commit-config.yaml 文件中,我們可以指定將使用哪些掛鉤,在 pyproject.toml 中,我們可以為這些單獨的鉤子指定參數(shù)。

pyproject.toml 文件內(nèi)容如下:

[tool.black]
line-length = 88
target-version = ["py38"]

[tool.isort]
profile = "black"
multi_line_output = 3

這里配置了 black 和 isort 的相關(guān)配置。

然后執(zhí)行在項目的根目錄執(zhí)行 pre-commit install 命令,就可以安裝 pre-commit 插件。

然后每次更新代碼,提交代碼時,這些鉤子都會觸發(fā),會自動執(zhí)行如下操作:

排序 import

PEP8 的格式代碼

檢查您的 yaml 和 json 文件的正確性

類型檢查(如果你使用了類型提示)

圖片

最后

你可以將這兩個文件拷貝到自己的項目根目錄中,然后執(zhí)行一次 pre-commit install,這樣每次提交代碼的時候,都是干凈的代碼,是不是很方便?

責(zé)任編輯:武曉燕 來源: Python七號
相關(guān)推薦

2020-07-15 08:37:11

JavaScript開發(fā)技術(shù)

2015-01-14 13:07:03

2024-09-25 14:16:35

2020-06-01 07:41:52

Gmail郵箱郵件安全電子郵件

2023-08-11 08:39:36

工具AI

2021-03-28 16:55:11

Python工具鏈代碼

2022-08-29 18:34:46

Pythonsubprocess系統(tǒng)

2020-05-07 10:18:06

JavaScript前端技術(shù)

2022-04-19 09:18:56

Python代碼Linux

2020-07-03 14:50:23

Python代碼編程語言

2017-12-07 15:05:50

全球互聯(lián)網(wǎng)創(chuàng)新峰會

2021-09-22 11:05:19

JS代碼前端

2013-07-15 13:42:25

開發(fā)移動應(yīng)用

2023-03-15 15:54:36

Java代碼

2024-10-07 11:02:08

requests編程PythonAI

2018-03-30 09:00:00

LinuxUbuntu清理方法

2020-05-07 17:03:49

Python編碼開發(fā)

2023-11-23 13:50:00

Python代碼

2021-09-27 08:56:36

Python代碼函數(shù)

2017-09-08 12:15:54

Python代碼Pythonic
點贊
收藏

51CTO技術(shù)棧公眾號