问题
仓库里同时存在两套同名包,且实现并不相同:
顶层
子包 (在 agentManager/ 下)
defect_repair/__init__.py
agentManager/defect_repair/__init__.py
defect_repair/classifier.py (10.9K)
agentManager/defect_repair/defect_classifier.py (3.9K)
defect_repair/repair_engine.py (8.5K)
(不存在)
defect_repair/repair_strategies.py (18.1K)
agentManager/defect_repair/repair_strategies.py (8.6K)
defect_repair/repair_pipeline.py (11.5K)
agentManager/defect_repair/repair_pipeline.py (5.9K)
scheduler/resource_manager.py (8.2K)
(无 agentManager/scheduler/ 子包)
文件大小相差悬殊,明显是两套不同的实现。
pyproject.toml 的 packages.find 把它们都注册了:
include = [" agentManager*" , " defect_repair*" , " scheduler*" ]
引发的问题:
不清楚哪一套是 source of truth
测试一会 from defect_repair.classifier import ...,一会 from agentManager.defect_repair.defect_classifier import ...,e2e 还引用了根本不存在的 from agentManager.scheduler.* import ...(见 tests/e2e 完全无法收集:导入了一批不存在的模块和类 #4 )
tests/unit/defect_repair/__init__.py 与顶层 defect_repair 包名冲突(见 tests/unit/defect_repair/__init__.py 引起 pytest 包名冲突 #3 )
任何 pip install -e . 的用户都会同时拿到两份包,import 顺序不确定
解决方案
统一到一种结构。建议:
方案 A(推荐) :把所有源码迁到 agentManager/ 命名空间下
把 defect_repair/ 迁移合并到 agentManager/defect_repair/,保留更完整的那一份
把 scheduler/ 迁移到 agentManager/scheduler/
修改所有测试的 import 为 from agentManager.defect_repair.* import ...
修改 pyproject.toml 只保留 include = ["agentManager*"]
方案 B :保留顶层结构,删除 agentManager/defect_repair/ 子包
修改所有 from agentManager.defect_repair.* 为 from defect_repair.*
影响
严重程度:高(影响项目可维护性、可发布性、测试稳定性)
范围:整个 defect_repair 和 scheduler 子系统
问题
仓库里同时存在两套同名包,且实现并不相同:
defect_repair/__init__.pyagentManager/defect_repair/__init__.pydefect_repair/classifier.py(10.9K)agentManager/defect_repair/defect_classifier.py(3.9K)defect_repair/repair_engine.py(8.5K)defect_repair/repair_strategies.py(18.1K)agentManager/defect_repair/repair_strategies.py(8.6K)defect_repair/repair_pipeline.py(11.5K)agentManager/defect_repair/repair_pipeline.py(5.9K)scheduler/resource_manager.py(8.2K)agentManager/scheduler/子包)文件大小相差悬殊,明显是两套不同的实现。
pyproject.toml的packages.find把它们都注册了:引发的问题:
from defect_repair.classifier import ...,一会from agentManager.defect_repair.defect_classifier import ...,e2e 还引用了根本不存在的from agentManager.scheduler.* import ...(见 tests/e2e 完全无法收集:导入了一批不存在的模块和类 #4)tests/unit/defect_repair/__init__.py与顶层defect_repair包名冲突(见 tests/unit/defect_repair/__init__.py 引起 pytest 包名冲突 #3)pip install -e .的用户都会同时拿到两份包,import 顺序不确定解决方案
统一到一种结构。建议:
方案 A(推荐):把所有源码迁到
agentManager/命名空间下defect_repair/迁移合并到agentManager/defect_repair/,保留更完整的那一份scheduler/迁移到agentManager/scheduler/from agentManager.defect_repair.* import ...pyproject.toml只保留include = ["agentManager*"]方案 B:保留顶层结构,删除
agentManager/defect_repair/子包from agentManager.defect_repair.*为from defect_repair.*影响
defect_repair和scheduler子系统