跳转至

静态分析配置


fmt 命令执行的静态分析(默认情况下)完全由 Ruff 驱动。

Hatch 提供了默认设置,用户配置可以对其进行扩展

扩展配置(Extending config)

在定义配置时,请务必使用以 extend- 为前缀的选项,例如 extend-select。示例如下:

[tool.ruff.format]
preview = true
quote-style = "single"

[tool.ruff.lint]
preview = true
extend-select = ["C901"]

[tool.ruff.lint.extend-per-file-ignores]
"docs/.hooks/*" = ["INP001", "T201"]

[tool.ruff.lint.isort]
known-first-party = ["foo", "bar"]
[format]
preview = true
quote-style = "single"

[lint]
preview = true
extend-select = ["C901"]

[lint.extend-per-file-ignores]
"docs/.hooks/*" = ["INP001", "T201"]

[lint.isort]
known-first-party = ["foo", "bar"]

Note

如果没有启用持久化配置,则无需显式地扩展默认值,因为 Hatch 会自动处理。

持久化配置(Persistent config)

如果你希望将默认配置保存在项目中,可通过如下方式设置显式路径:

[tool.hatch.envs.hatch-static-analysis]
config-path = "ruff_defaults.toml"
[envs.hatch-static-analysis]
config-path = "ruff_defaults.toml"

然后在 Ruff 的配置中将其视为默认文件的扩展:

[tool.ruff]
extend = "ruff_defaults.toml"
extend = "ruff_defaults.toml"

每当你希望更新默认配置(如升级 Hatch 后),都必须使用 --sync 标志运行一次 fmt 命令,例如:

hatch fmt --check --sync

Tip

推荐使用该方法,因为它允许其他工具(如 IDE)使用默认配置。

不使用配置(No config)

如果你不希望 Hatch 使用任何默认配置,而完全依赖你自己的配置,可以将路径设置为任意值,然后在 Ruff 配置中不使用 extend

[tool.hatch.envs.hatch-static-analysis]
config-path = "none"
[envs.hatch-static-analysis]
config-path = "none"

自定义行为(Customize behavior)

你可以完全修改 fmt 命令所使用环境的行为。请参见该操作指南,了解详细示例。

依赖项

通过显式定义环境依赖项,可锁定特定版本的 Ruff:

[tool.hatch.envs.hatch-static-analysis]
dependencies = ["ruff==X.Y.Z"]
[envs.hatch-static-analysis]
dependencies = ["ruff==X.Y.Z"]

脚本

如果你希望更改默认执行的命令,可以重写 scripts。以下四个脚本必须定义:

[tool.hatch.envs.hatch-static-analysis.scripts]
format-check = "..."
format-fix = "..."
lint-check = "..."
lint-fix = "..."
[envs.hatch-static-analysis.scripts]
format-check = "..."
format-fix = "..."
lint-check = "..."
lint-fix = "..."

format-* 脚本对应 --formatter/-f 标志,而 lint-* 脚本对应 --linter/-l 标志。*-fix 脚本为默认执行脚本,*-check 脚本在使用 --check 标志时执行。

提示

如果你选择使用其他静态分析工具,请确保同步更新相应的依赖项

安装器(Installer)

默认情况下,UV 是启用的。你可以通过以下方式禁用:

[tool.hatch.envs.hatch-static-analysis]
installer = "pip"
[envs.hatch-static-analysis]
installer = "pip"

默认设置(Default settings)

非规则相关设置(Non-rule settings)

按文件忽略规则(Per-file ignored rules)

启用规则(Selected rules)

以下规则基于 Ruff 的 0.6.8 版本。带有 P 的规则仅在启用 preview 模式时选中。

共启用了 569 个稳定规则 和 116 个 preview 规则。

Selected rules

未启用的规则(Unselected)

共有 176 个未启用的规则。

Unselected rules