Skip to content

Latest commit

 

History

History
32 lines (19 loc) · 2.72 KB

File metadata and controls

32 lines (19 loc) · 2.72 KB

Python项目原生lint目标观察

日期:2026-10-05。对应OpenSpec 14.11,父任务保持未完成。

行为与证据边界

Ruff0.16.8 check --show-settings 对未明确目标的项目输出 linter.unresolved_target_version = none,同时formatter/analyze可显示3.10。该值不能借用为已核对的lint目标。新增 RuffSettingsObservation::explicit_python_target() 从固定原生格式取得明确目标,并要求逐文件目标为空;none、缺字段、重复、未知版本、未解析逐文件目标分别保留具体原因。其内部字段不序列化;旧公开设置仍为四字段,不改变历史报告。

该方法用于宿主关闭前置,需从同轮完整原生结果取得。现有RuffProbe已在设置和执行前后核对工具/配置、源码身份及正常/ignore-noqa一致性,局部lint仍可保留。部分设置片段仍可作为普通规则观察读取,但缺目标不能成为关闭输入。此处不实现签名批准或自动关闭。

测试

新方法的契约测试先因缺少方法失败。实现后原有4项加新增2项契约全部通过:明确3.9/3.10/3.15归一化、设置四字段不变;缺失、none、未知版本、目标/逐文件字段重复、未解析逐文件目标以及仅有formatter/analyze目标均无法提供关闭目标。

实际 /opt/anaconda3/bin/ruff 0.16.8 逐文件项目探针1项通过,16.27秒,内部执行四配置:

配置 内部目标观察 match源码原生语法诊断
明确py39 py39 有
明确py310 py310 无
未明确目标 ruff_target_not_explicit 无;不推断项目目标
py310加app.py逐文件py39 ruff_per_file_target_unresolved 有;不把全局py310当该文件目标

四次探针均完成局部原生证据链,正常/抑制对照一致,工具/源码/配置绑定;源码及配置字节保持不变。未知目标不抹去原生结果,也不授予关闭能力。

回归与静态检查

Ruff原生设置契约6项通过;工具探针、本地工具发现与工作台同步三组38通过、9忽略。新增真实四配置探针另行显式执行通过,不把忽略项计作通过。Adapters与CLI全部targets默认/WASM特性严格Clippy均通过;首次检查发现Result方法上冗余must_use属性,移除后两组重跑通过。OpenSpec严格校验与diff检查通过,公开设置形状仍保持四字段。

未完成

尚需签名策略核对明确项目目标与配置摘要、两类首次证据双输入原生确认、解决/复发事件与实际受保护宿主接线。隐式目标推导和逐文件目标精确选择仍缺。本轮不改变grammar资格、公开npm制品、插件默认锁或项目门禁,不以测试忽略项或旧提交CI认证当前代码。