讓你的Python程式碼更乾淨只需簡單一步

roc_guo發表於2022-11-26

說起來容易做起來難,我們都知道程式碼可讀性非常重要,但是寫的時候總是隨心所欲,不考慮型別提示、import 排序、PEP8 規範。今天分享一個小技巧,透過一個簡單的步驟就可以讓你的 Python 程式碼更乾淨。

這就是 pre-commit:

讓你的Python程式碼更乾淨只需簡單一步讓你的Python程式碼更乾淨只需簡單一步

可以讓你的程式碼提交之前自動檢查是否符合你想要的規範。

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

pip install pre-commit

然後在專案的根目錄下建立兩個檔案:.pre-commit-config.yaml 和 pyproject.toml。

.pre-commit-config.yaml 檔案內容如下:

exclude: _pb2\.py$
repos:
  - repo: 
    rev: 22.3.0
    hooks:
      - id: black
        args: [--skip-string-normalization]
  - repo: 
    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: 
    rev: v1.9.0
    hooks:
      - id: python-check-mock-methods
      - id: python-use-type-annotations
  - repo: 
    rev: "v0.910"
    hooks:
      - id: mypy
        args:
          [
            --ignore-missing-imports,
            --warn-no-return,
            --warn-redundant-casts,
            --disallow-incomplete-defs,
          ]
        additional_dependencies: [types-all]
  - repo: 
    rev: 5.9.3
    hooks:
      - id: isort
        args: [--profile, black, --filter-files]

這裡面配置了 black、mypy、check-docstring-first、isort 等工具,id 就是對應的工具,可以說這個配置檔案基本上就夠用了。

在 .pre-commit-config.yaml 檔案中,我們可以指定將使用哪些掛鉤,在 pyproject.toml 中,我們可以為這些單獨的鉤子指定引數。

pyproject.toml 檔案內容如下:

[tool.black]
line-length = 88
target-version = ["py38"]
[tool.isort]
profile = "black"
multi_line_output = 3

這裡配置了 black 和 isort 的相關配置。

然後執行在專案的根目錄執行 pre-commit install  ,就可以安裝 pre-commit 外掛。

然後每次更新程式碼,提交程式碼時,這些鉤子都會觸發,會自動執行如下操作:

排序 import

PEP8 的格式程式碼

檢查您的 yaml 和 json 檔案的正確性

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

讓你的Python程式碼更乾淨只需簡單一步讓你的Python程式碼更乾淨只需簡單一步

最後
你可以將這兩個檔案複製到自己的專案根目錄中,然後執行一次 pre-commit install,這樣每次提交程式碼的時候,都是乾淨的程式碼,是不是很方便?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2925297/,如需轉載,請註明出處,否則將追究法律責任。

相關文章