静态分析配置¶
fmt
命令执行的静态分析(默认情况下)完全由 Ruff 驱动。
扩展配置(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"]
持久化配置(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
- A001, A002, A003, A004P, A005P, A006P
- ARG001, ARG002, ARG003, ARG004, ARG005
- ASYNC100, ASYNC105, ASYNC109, ASYNC110, ASYNC115, ASYNC116P, ASYNC210, ASYNC220, ASYNC221, ASYNC222, ASYNC230, ASYNC251
- B002, B003, B004, B005, B006, B007, B008, B009, B010, B011, B012, B013, B014, B015, B016, B017, B018, B019, B020, B021, B022, B023, B024, B025, B026, B028, B029, B030, B031, B032, B033, B034, B035, B039P, B904, B905, B901P, B909P
- BLE001
- C400, C401, C402, C403, C404, C405, C406, C408, C409, C410, C411, C413, C414, C415, C416, C417, C418, C419, C420P
- COM818
- DOC201P, DOC202P, DOC402P, DOC403P, DOC501P, DOC502P
- DTZ001, DTZ002, DTZ003, DTZ004, DTZ005, DTZ006, DTZ007, DTZ011, DTZ012
- E101, E112P, E113P, E115P, E116P, E201P, E202P, E203P, E204P, E211P, E221P, E222P, E223P, E224P, E225P, E226P, E227P, E228P, E231P, E241P, E242P, E251P, E252P, E261P, E262P, E265P, E266P, E271P, E272P, E273P, E274P, E275P, E401, E402, E502P, E701, E702, E703, E711, E712, E713, E714, E721, E722, E731, E741, E742, E743, E902, E999
- EM101, EM102, EM103
- EXE001, EXE002, EXE003, EXE004, EXE005
- F401, F402, F403, F404, F405, F406, F407, F501, F502, F503, F504, F505, F506, F507, F508, F509, F521, F522, F523, F524, F525, F541, F601, F602, F621, F622, F631, F632, F633, F634, F701, F702, F704, F706, F707, F722, F811, F821, F822, F823, F841, F842, F901
- FA100, FA102
- FAST001P, FAST002P, FAST003P
- FBT001, FBT002
- FLY002
- FURB105, FURB129, FURB136, FURB161, FURB163, FURB167, FURB168, FURB169, FURB177, FURB181, FURB187, FURB110P, FURB113P, FURB116P, FURB118P, FURB131P, FURB132P, FURB142P, FURB145P, FURB148P, FURB152P, FURB154P, FURB157P, FURB164P, FURB166P, FURB171P, FURB180P, FURB188P, FURB192P
- G001, G002, G003, G004, G010, G101, G201, G202
- I001, I002
- ICN001, ICN002, ICN003
- INP001
- INT001, INT002, INT003
- ISC003
- LOG001, LOG002, LOG007, LOG009
- N801, N802, N803, N804, N805, N806, N807, N811, N812, N813, N814, N815, N816, N817, N818, N999
- PERF101, PERF102, PERF401, PERF402, PERF403
- PGH005
- PIE790, PIE794, PIE796, PIE800, PIE804, PIE807, PIE808, PIE810
- PLC0105, PLC0131, PLC0132, PLC0205, PLC0208, PLC0414, PLC0206P, PLC0415P, PLC1901P, PLC2401, PLC2403, PLC2701P, PLC2801P, PLC3002
- PLE0100, PLE0101, PLE0115, PLE0116, PLE0117, PLE0118, PLE0237, PLE0241, PLE0302, PLE0303, PLE0305, PLE0307, PLE0308, PLE0309, PLE0604, PLE0605, PLE0643, PLE0704, PLE0304P, PLE1132, PLE1142, PLE1205, PLE1206, PLE1300, PLE1307, PLE1310, PLE1507, PLE1519, PLE1520, PLE1700, PLE1141P, PLE2502, PLE2510, PLE2512, PLE2513, PLE2514, PLE2515, PLE4703P
- PLR0124, PLR0133, PLR0206, PLR0402, PLR0202P, PLR0203P, PLR1704, PLR1711, PLR1714, PLR1722, PLR1730, PLR1736, PLR1733P, PLR2004, PLR2044, PLR5501, PLR6104P, PLR6201P, PLR6301P
- PLW0120, PLW0127, PLW0128, PLW0129, PLW0131, PLW0133, PLW0211, PLW0245, PLW0406, PLW0602, PLW0603, PLW0604, PLW0642, PLW0711, PLW0108P, PLW0177P, PLW1501, PLW1508, PLW1509, PLW1510, PLW1514P, PLW1641P, PLW2101, PLW2901, PLW3301, PLW3201P
- PT001, PT002, PT003, PT006, PT007, PT008, PT009, PT010, PT011, PT012, PT013, PT014, PT015, PT016, PT017, PT018, PT019, PT020, PT021, PT022, PT023, PT024, PT025, PT026, PT027
- PYI001, PYI002, PYI003, PYI004, PYI005, PYI006, PYI007, PYI008, PYI009, PYI010, PYI011, PYI012, PYI013, PYI014, PYI015, PYI016, PYI017, PYI018, PYI019, PYI020, PYI021, PYI024, PYI025, PYI026, PYI029, PYI030, PYI032, PYI033, PYI034, PYI035, PYI036, PYI041, PYI042, PYI043, PYI044, PYI045, PYI046, PYI047, PYI048, PYI049, PYI050, PYI051, PYI052, PYI053, PYI054, PYI055, PYI056, PYI057, PYI058, PYI062, PYI059P, PYI063P, PYI064P, PYI066P
- RET503, RET504, RET505, RET506, RET507, RET508
- RSE102
- RUF001, RUF002, RUF003, RUF005, RUF006, RUF007, RUF008, RUF009, RUF010, RUF012, RUF013, RUF015, RUF016, RUF017, RUF018, RUF019, RUF020, RUF024, RUF026, RUF021P, RUF022P, RUF023P, RUF027P, RUF028P, RUF029P, RUF030P, RUF031P, RUF032P, RUF033P, RUF034P, RUF100, RUF101
- S101, S102, S103, S104, S105, S106, S107, S108, S110, S112, S113, S201, S202, S301, S302, S303, S304, S305, S306, S307, S308, S310, S311, S312, S313, S314, S315, S316, S317, S318, S319, S320, S321, S323, S324, S401P, S402P, S403P, S405P, S406P, S407P, S408P, S409P, S411P, S412P, S413P, S415P, S501, S502, S503, S504, S505, S506, S507, S508, S509, S601, S602, S604, S605, S606, S607, S608, S609, S610, S611, S612, S701, S702
- SIM101, SIM102, SIM103, SIM105, SIM107, SIM108, SIM109, SIM110, SIM112, SIM113, SIM114, SIM115, SIM116, SIM117, SIM118, SIM201, SIM202, SIM208, SIM210, SIM211, SIM212, SIM220, SIM221, SIM222, SIM223, SIM300, SIM910, SIM911
- SLF001
- SLOT000, SLOT001, SLOT002
- T100, T201, T203
- TCH001, TCH002, TCH003, TCH004, TCH005, TCH010
- TD004, TD005, TD006, TD007
- TID251, TID252, TID253
- TRY002, TRY003, TRY004, TRY201, TRY300, TRY301, TRY302, TRY400, TRY401
- UP001, UP003, UP004, UP005, UP006, UP007, UP008, UP009, UP010, UP011, UP012, UP013, UP014, UP015, UP017, UP018, UP019, UP020, UP021, UP022, UP023, UP024, UP025, UP026, UP027, UP028, UP029, UP030, UP031, UP032, UP033, UP034, UP035, UP036, UP037, UP038, UP039, UP040, UP041, UP042P, UP043P
- W291, W292, W293, W391P, W505, W605
- YTT101, YTT102, YTT103, YTT201, YTT202, YTT203, YTT204, YTT301, YTT302, YTT303
未启用的规则(Unselected)¶
共有 176 个未启用的规则。
Unselected rules
- AIR001
- ANN001, ANN002, ANN003, ANN101, ANN102, ANN201, ANN202, ANN204, ANN205, ANN206, ANN401
- B027
- C901
- COM812, COM819
- CPY001
- D100, D101, D102, D103, D104, D105, D106, D107, D200, D201, D202, D203, D204, D205, D206, D207, D208, D209, D210, D211, D212, D213, D214, D215, D300, D301, D400, D401, D402, D403, D404, D405, D406, D407, D408, D409, D410, D411, D412, D413, D414, D415, D416, D417, D418, D419
- DJ001, DJ003, DJ006, DJ007, DJ008, DJ012, DJ013
- E111, E114, E117, E301, E302, E303, E304, E305, E306, E501
- ERA001
- FBT003
- FIX001, FIX002, FIX003, FIX004
- FURB101, FURB103, FURB140
- ISC001, ISC002
- NPY001, NPY002, NPY003, NPY201
- PD002, PD003, PD004, PD007, PD008, PD009, PD010, PD011, PD012, PD013, PD015, PD101, PD901
- PERF203
- PGH001, PGH002, PGH003, PGH004
- PLR0904, PLR0911, PLR0912, PLR0913, PLR0914, PLR0915, PLR0916, PLR0917, PLR1701, PLR1702, PLR1706
- PT004, PT005
- PTH100, PTH101, PTH102, PTH103, PTH104, PTH105, PTH106, PTH107, PTH108, PTH109, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH116, PTH117, PTH118, PTH119, PTH120, PTH121, PTH122, PTH123, PTH124, PTH201, PTH202, PTH203, PTH204, PTH205, PTH206, PTH207
- Q000, Q001, Q002, Q003, Q004
- RET501, RET502
- RUF011, RUF200
- S404, S410, S603
- SIM401
- TD001, TD002, TD003
- TRY200
- W191