Skip to content

refactor(tool): eliminate code duplication & standardize exception handling (#54, #58) 重构工具类:消除代码重复并统一异常处理 (#54, #58)#76

Merged
SunYanbox merged 2 commits into
developfrom
54-bug-high-code-duplication-significant-code-duplication---dry-violation
May 1, 2026
Merged

refactor(tool): eliminate code duplication & standardize exception handling (#54, #58) 重构工具类:消除代码重复并统一异常处理 (#54, #58)#76
SunYanbox merged 2 commits into
developfrom
54-bug-high-code-duplication-significant-code-duplication---dry-violation

Conversation

@SunYanbox
Copy link
Copy Markdown
Owner

fix #54
fix #58

SunYanbox added 2 commits May 1, 2026 14:30
- 将 _validate_mtime 和 _generate_diff 方法从 EditTool 和 WriteTool 移至基类 BaseTool,消除重复代码
- 在 BaseTool 中添加 handle_tool_exceptions 装饰器,统一处理工具方法的异常
- 使用装饰器替换所有工具类中的四段式异常处理代码:
  - edit_tool.py, write_tool.py, read_tool.py, read_lines_tool.py
  - ls_tool.py, glob_tool.py, stat_tool.py, regex_search_tool.py
  - exact_search_tool.py, symbol_ref_tool.py
- 移除工具类中无用的导入和重复代码
- 重构优化: 清理冗余导入,将路径校验逻辑移至基类或调用方
  * `symbol_ref_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `ls_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `read_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `stat_tool.py` 移除 `ToolErrorResponse`, `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `glob_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `read_lines_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `regex_search_tool.py` 移除 `PathNotFoundError`, `WorkspaceBoundaryError` 导入
  * `exact_search_tool.py` 移除 `ToolErrorResponse`, `PathNotFoundError`, `WorkspaceBoundaryError` 导入
- 文档更新: 修正 docstring 标点符号规范
  * `_validate_mtime` 方法注释由中文句号改为英文句点
  * `handle_tool_exceptions` 装饰器注释由中文句号改为英文句点
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

1 participant