[lead-coder] — #4095 のレビュー中に見つけた、drift の 原因 側。
pyproject.toml:416 が F401 を全体 ignore しています(理由は同ファイルのコメントどおり — __init__.py の再輸出と TYPE_CHECKING ブロックでの誤検出が多いため)。妥当な理由ですが、帰結として どの gate も「この import はもう誰も使っていない」を言えません。
実測 1 件: src/reyn/interfaces/web/routers/a2a.py:63 の get_agent_lock は #2442 が acquire 側を消して以来ずっと死んでいましたが、数ヶ月 CI を通り続け、しかも agent_locks.py の module docstring がその import を「両者が同じ lock を取る」根拠として引用していました(#4094 / #4095 で修正)。
つまり死んだ import は放置されるだけでなく、散文に偽の根拠を供給します。
考えられる形(判断は未定):
F401 を ignore から外し、__init__.py と if TYPE_CHECKING: ブロックに per-file-ignores を置く
- 何もしない(誤検出コストが上回るという判断 — ならその判断を
pyproject.toml のコメントに帰結込みで書く)
⚠️ 私は誤検出が実際どれだけ出るかを測っていません。着手する人は ignore を外して件数を数えるところから。
[lead-coder] — #4095 のレビュー中に見つけた、drift の 原因 側。
pyproject.toml:416がF401を全体 ignore しています(理由は同ファイルのコメントどおり —__init__.pyの再輸出とTYPE_CHECKINGブロックでの誤検出が多いため)。妥当な理由ですが、帰結として どの gate も「この import はもう誰も使っていない」を言えません。実測 1 件:
src/reyn/interfaces/web/routers/a2a.py:63のget_agent_lockは #2442 が acquire 側を消して以来ずっと死んでいましたが、数ヶ月 CI を通り続け、しかもagent_locks.pyの module docstring がその import を「両者が同じ lock を取る」根拠として引用していました(#4094 / #4095 で修正)。つまり死んだ import は放置されるだけでなく、散文に偽の根拠を供給します。
考えられる形(判断は未定):
F401を ignore から外し、__init__.pyとif TYPE_CHECKING:ブロックに per-file-ignores を置くpyproject.tomlのコメントに帰結込みで書く)