feat: 为所有 117 个函数添加类型注解#30
Conversation
33b8f2e to
36f8d59
Compare
Review — PR #30: 为所有 117 个函数添加类型注解🔴 Critical — 错误的类型注解1.
# PR 标注:
def _set_gc_auto(repo: Path, value: str = "0") -> tuple[bool, str]:
# 实际返回 (3 个值):
return original, set_result.returncode == 0, err_msg
# 即 (str, bool, str)函数返回 修复: 2.
# PR 标注:
def confirm_plan(...) -> Optional[dict[str, Any]]:
# 实际返回值(docstring 已说明):
# return plan, reference_doc_paths → (dict, list)
# return None, reference_doc_paths → (None, list)
# return ("__FALLBACK__", None) → (str, None)函数返回的是 tuple,不是单个 dict。标注 修复: 🟡 Major3. 本 PR 改了 14 个模块文件,会与几乎所有其他 open PR 产生合并冲突
建议: 等其他 PR 合并后再 rebase 合并本 PR,避免反复冲突。 4.
5.
🟢 Minor6. 部分注解精度可提升
7. 测试修复很有价值 修复了 总结: 需修复 Critical #1-2(错误的返回值类型注解)后,等 #21/#27/#20 合并完成再 rebase 合并。测试修复部分建议可提前独立提交。 |
✅ 类型注解已修复
测试结果:165 passed |
- 100% coverage: all function parameters and return values annotated - Add to all modules that need it - Python 3.9+ compatible: use Optional[X] not X | None, list[str] not List[str] - Include nested functions (_run_one, parse_and_log, _on_interrupt, etc.) - 163 tests pass with no regressions Closes #7
CI 环境无 ~/.agent_go/skills/ 导致 3 个测试失败: - test_skills.py: test_load_skills_multi, test_list_skills - test_integration.py: test_skill_injected_into_task_md 修复:使用 tmp_path + patch(AGENT_GO_SKILLS_DIR) 创建临时 skill 文件, 不再依赖全局安装的 skill。新增 2 个边界测试。
1. _set_gc_auto: tuple[bool, str] → tuple[str, bool, str](返回3个值) 2. confirm_plan: Optional[dict] → tuple[Optional[dict], Optional[list]](返回tuple) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3f84290 to
9369b04
Compare
Summary
Fixes #7
为 14 个模块的所有 117 个函数添加完整的参数和返回值类型注解,覆盖率从 11% 提升到 100%。
变更内容
from typing import Any, Optional(按需)_run_one,parse_and_log,_on_interrupt等)Optional[X]而非X | None,list[str]而非List[str]Before / After
Test
🤖 Generated with Claude Code