# 使用方法

代码工具可以和开发者已有的开发环境进行集成,记得在脚手架工具中选择 需要开发工具,并在项目创建 venv 的文件夹作为项目的虚拟环境,最后别忘了安装 requirements/requirement-dev.txt 中的依赖。

TIP

使用模板的 run.sh 会帮你初始化 venv 文件夹,同时安装开发依赖。

# PyCharm

Pycharm使用external_tool进行设置,详见wiki (opens new window)

在脚本一栏,由于我们不再单独使用yapf进行代码格式化,而是同时使用isort进行import排序,因此你需要这么设置你的脚本:

Program: sh
Arguments: -c "venv/bin/yapf -i -r '$FilePath$'; venv/bin/isort -v -q '$FilePath$'; "
Working directory: $Projectpath$

Lint 工具可以通过 Pycharm 商店中搜索 ruff (opens new window) 来安装。

# vscode

使用cmd + shift + p调用出命令工具,使用命令Format DocumentPython Refactor: 排序 import 语句,就可以对文件进行格式化。

对于 Lint 工具,可以在应用商店搜索 ruff (opens new window) 来安装。

# UserTasks

开发者可以将 Format DocumentPython Refactor: 排序 import 语句 打包称为一个 UserTask,来完成对多个命令的一键调用。

  1. cmd + shift + p调用出命令工具,找到 Tasks: Open User Tasks 命令,打开。

  2. 随后可以对 tasks.json 进行配置,参考下面的配置:

    DETAILS
    {
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "label": "python.formatterDocumentAndSortImports",
                "type": "shell",
                "problemMatcher": [],
                "presentation": {
                    "echo": false,
                    "reveal": "never",
                    "focus": false,
                    "panel": "dedicated",
                    "showReuseMessage": false,
                    "clear": false,
                    "close": true
                },
                "command": "sh",
                "args": [
                    "-c",
                    "${workspaceFolder}/venv/bin/isort -v -q '${file}'; ${workspaceFolder}/venv/bin/yapf -i -r '${file}'; "
                ]
            }
        ]
    } 
    
  3. 然后可以通过命令 Tasks: Run Task 来找到 python.formatterDocumentAndSortImports Task 并运行

# pre-commit

模板还集成了 pre-commit 工具。

如果你在脚手架工具中选择了 需要开发工具,则会在 requirements/requirement-dev.txt 中添加 pre-commit 的依赖,同时还会生成 .pre-commit-config.yaml 的配置文件。

pre-commit 的使用十分简单,只需要 pre-commit install 就可以了。在这之后每当开发者进行 git commit 时就会触发 .pre-commit-config.yaml 中的配置进行检查。

开发者可以自由定义 .pre-commit-config.yaml 文件中的内容,默认的配置会自动在 python 文件中运行 isort、yapf、ruff

如果 pre-commit 有错误的提示,则需要开发者对这些提示进行修改后再重新提交。

isort 和 yapf 一般情况下只需要你重新添加重新格式化好的文件到暂存区即可(重新 git add 一下格式化好的文件)

如果觉得 lint 的规则太多,则可以对 pyproject.toml 中的 [tool.ruff.xxx] 进行修改

pre-commit