Python 重构分析(基于 pyscn)
用途
该技能用于在 Python 代码中定位具体的重构目标,主要围绕三类问题:重复代码(代码克隆)、过于复杂的函数,以及无效代码(死代码)。适合在用户提出“查找复杂函数”“查找重复代码”“查找死代码”或“应该先重构什么”等请求时使用。
主要能力与命令
运行 pyscn CLI 即可定位重构目标,无需安装,使用 uvx pyscn@latest <command> 形式调用。常用命令对应关系如下:
- 查找复杂函数:uvx pyscn@latest analyze --select complexity <path>
- 查找重复代码:uvx pyscn@latest analyze --select clones <path>
- 查找死代码:uvx pyscn@latest analyze --select deadcode <path>
- 确定优先重构对象:uvx pyscn@latest analyze --select complexity,deadcode,clones <path>
关键参数
- --min-complexity <n>:报告的最低复杂度,默认值为 5。风险等级划分为:低(小于 10)、中(10 到 20)、高(大于 20)。
- --clone-threshold <0.0-1.0>:克隆检测的最低相似度,默认值为 0.65。
- --min-severity <critical|warning|info>:死代码严重级别下限,默认值为 warning。其中 critical 指位于 return、break、continue、raise 之后、永远无法执行的代码。
- --json:生成包含行级发现的详细报告。报告文件不会写入标准输出,而是保存到 .pyscn/reports/ 目录,完成后会打印该路径。
结果优先级建议
- Critical 死代码:可安全删除,应优先处理。
- 高复杂度函数(大于 20):可提取函数、展平条件分支。
- 跨多个文件的克隆组:可提取共享辅助函数;同一文件内的克隆通常更易快速处理。
在建议重构时,应引用结果中的具体函数名、文件和行范围,并在之后重新运行同一命令以确认改进效果。
MCP 替代方式
如果已连接 pyscn-mcp MCP 服务器,可以使用其工具替代 CLI:check_complexity(min_complexity)、detect_clones(similarity_threshold、min_lines)、find_dead_code,或使用 analyze_code 并传入 analyses: ["complexity", "clone", "dead_code"] 一次运行多项分析。结果会以内联方式返回,不生成报告文件。
适用场景与限制
该技能适用于 Python 代码库的重构分析与优先级排序。资料未提供其支持的 Python 版本范围、对非 Python 语言的支持情况、收费或价格信息、性能上限以及更多平台细节,这些内容暂未提供。