mirror of
https://github.com/shy3130/tick-stock-panel.git
synced 2026-11-02 10:26:13 +00:00
chore(lint): ruff 忽略中文全角标点 + 启用 BLE(移植本机 f67d9ed 的 lint 配置;⛔ 不含业务代码) (#456)
问题:
本仓 [tool.ruff.lint] 的 select 含 "RUF" 但未忽略 RUF001/002/003,而注释/文档字符串通篇中文
⇒ `ruff check backend/app` 实测 **1420 条**,其中 RUF001/2/3(全角标点)占 **815 条(57.4%)**;
另有 **271 处** `# noqa: BLE001`(禁止裸 except)因 `BLE` 未启用而**全是"无效指令"**(RUF100 293 条)
⇒ 「禁止裸 except」这条规则**从来没有被真正强制过**。
⚠️ 且本仓 CI 不跑 ruff(ci.yml 只有 `uv run pytest tests -q`)⇒ 这条门禁一直没人守。
改动(仅 backend/pyproject.toml 的 [tool.ruff.lint] 一段;⛔ 无任何业务代码改动):
- ignore 增加 RUF001/002/003 —— 理由:全角标点是中文书写的正常形态,不是笔误
- select 增加 BLE(flake8-blind-except)⇒ 271 处既有 noqa 立即生效
- ⚠️ 文字与理由照抄本机 f67d9ed 的原注释,但**注释里的数字一律按本仓实测重写**
(本机数字 1442/801/642/518/291 与本仓实测 1420/815/611/594/271 **不同**,⛔ 不照抄)
- ⛔ 不跑 `--add-noqa` 批量承认(那会改上百个业务文件,与在途改动冲突)
验证(隔离 worktree,基于 origin/main 30fcade;ruff 0.15.14):
- **P2/P3 逐规则对账 1420 → 594(净 −826)**:
BLE001 0→236(+236) · RUF001 189→0(−189) · RUF002 403→0(−403) · RUF003 223→0(−223)
· RUF100 293→46(−247)
⭐ **出现正增量的规则只有 BLE001**,其余规则全部不变或减少(⛔ 不是"看总数下降就算过")
- **P5 配置语义(可 FAIL 的差集断言)**:用 tomllib 解析 `origin/main` 版与本版 ⇒
line-length/target-version 逐字不变;select 差集**恰为** {BLE}、ignore 差集**恰为**
{RUF001,RUF002,RUF003},两侧**无任何删除**。核验脚本:
research/oneshot/_verify_ruff_config_port_20261005.py(判别力 = 差集不等即 FAIL)
- P4 改动面:`git diff --stat` = 1 file;`git diff --check` rc=0
- P6 辅助:`pytest tests/test_regime_builder.py -q` ⇒ **22 passed**(配置改动不影响测试)
- ⚠️ 本件**没有回归测试可守**(纯配置改动):靠上面的数值/差集对账,⛔ 不假装有单测
影响与取舍(⛔ 不粉饰):
`ruff check backend/app` 从 1420 条降到 594 条 ⇒ 噪声大减、门禁**变得可执行**;
但启用 BLE 会**显形 236 条**既有「尚未表态的 `except Exception`」(本机对应 166 条)——
这是**暴露既有沉默违规**,不是本次新引入的错误;是否进一步 `--add-noqa` 批量承认,
留给维护者决定(本提交不替上游表态)。
⛔ CI 无 ruff 步骤 ⇒ 本改动**不会打断 CI**,同样也**不会自动守住** lint。
兼容/回滚:
纯 lint 配置,无 schema/数据/接口影响;`git revert` 即可回滚(不影响任何历史产物)。
说明:本提交在基于 origin/main(30fcade) 的隔离 worktree 内完成,本机主线工作树未被改动;
⛔ 未推送;⛔ 与 port/regime-isfinite-guard(_score 防护)**是两个独立分支/提交**。
Co-authored-by: JackChan83 <JackChan83@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
co-authored by
JackChan83
parent
9f065dd3dd
commit
3fd1f6f95a
+21
-2
@@ -82,8 +82,27 @@ line-length = 100
|
||||
target-version = "py311"
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["E", "F", "I", "N", "UP", "B", "SIM", "RUF"]
|
||||
ignore = ["E501"] # 长行交给 fmt
|
||||
# BLE = flake8-blind-except: 禁止 `except Exception` 不留痕。
|
||||
# 加它的理由: 本仓原有 271 处 `# noqa: BLE001` 而 `BLE` 竟未启用 ⇒ 那些 noqa 全是
|
||||
# "无效指令"(RUF100), 即「禁止裸 except」当时**完全没有被强制**。启用后:
|
||||
# ①271 条既有 noqa 立即可用(实测 RUF100 293→46) ②将来新增的裸 except 必须显式承认。
|
||||
# 实测本仓 backend/app: 1420 条 ⇒ 忽略 RUF001/2/3 后 611 条(其中 6 条是原先给 RUF001/2/3
|
||||
# 写的 noqa 变为"无效指令") ⇒ 再启用 BLE 后 594 条(净减 826)。
|
||||
# ⚠️ 仍会暴露 236 处**尚未表态**的 `except Exception`(soft-failure 设计, 见 CONTRIBUTING);
|
||||
# 待工作区干净时用 `ruff check --select BLE001 --add-noqa` 批量显式承认, 不在有他人
|
||||
# 未提交改动时做(会与在途改动冲突)。
|
||||
# ⚠️ 本仓 CI 目前**不跑 ruff**(ci.yml 只有 `uv run pytest tests -q`) ⇒ 本改动不会打断 CI;
|
||||
# 但正因如此, 这条门禁从来没人守——本改动让它**可执行**, 代价是 236 条既有沉默违规显形。
|
||||
select = ["E", "F", "I", "N", "UP", "B", "SIM", "RUF", "BLE"]
|
||||
ignore = [
|
||||
"E501", # 长行交给 fmt
|
||||
# 本仓注释/文档字符串以中文书写, 全角标点(,。:()×)是正常书写而非笔误。
|
||||
# 不忽略会让「ruff error 清零」永远不可达: 实测 backend/app 共 1420 条告警,
|
||||
# 其中 RUF001/2/3 占 815 条(57.4%) ⇒ 忽略后降到 605 条, 门禁才谈得上可执行。
|
||||
"RUF001", # String contains ambiguous unicode character
|
||||
"RUF002", # Docstring contains ambiguous unicode character
|
||||
"RUF003", # Comment contains ambiguous unicode character
|
||||
]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
asyncio_mode = "auto"
|
||||
|
||||
Reference in New Issue
Block a user