8.8 KiB
8.8 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
| phase | plan | type | wave | depends_on | files_modified | autonomous | requirements | must_haves | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 06-code-consolidation | 01 | execute | 1 |
|
true |
|
|
Purpose: 统一代码结构,消除 sys.path 动态操作,使用标准包导入。 Output: kb-workflow/metadata/ 目录包含所有元数据提取模块,platform adapters 使用标准导入。
<execution_context> @/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md @/home/starmen1265/.claude/get-shit-done/templates/summary.md </execution_context>
@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/06-code-consolidation/06-CONTEXT.md @.planning/phases/06-code-consolidation/06-RESEARCH.mdFrom kb_pipeline/platforms/bilibili.py (需要修改的动态导入):
# 旧代码 - 需要删除
_BILIBILI_METADATA_PATH = Path(__file__).parent.parent.parent / "kb-bilibili-metadata"
if _BILIBILI_METADATA_PATH.exists():
sys.path.insert(0, str(_BILIBILI_METADATA_PATH))
from bilibili_extractor import BilibiliExtractor
# 新代码 - 标准导入
from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor
From kb_pipeline/platforms/zhihu.py (需要修改的动态导入):
# 旧代码 - 需要删除
_kb_zhihu_path = Path(__file__).parent.parent.parent / "kb-zhihu-metadata"
if str(_kb_zhihu_path) not in sys.path:
sys.path.insert(0, str(_kb_zhihu_path))
from zhihu_extractor import ZhihuPlaywrightExtractor
# 新代码 - 标准导入
from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor
提供 B站和知乎的元数据提取功能 """
from .bilibili_extractor import BilibiliExtractor
all = [ "BilibiliExtractor", ]
4. 移动后不要修改 bilibili_extractor.py 内部代码(保持原样)
</action>
<verify>
<automated>python -c "from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor; print('bilibili OK')"</automated>
</verify>
<done>kb-workflow/metadata/ 目录存在,bilibili_extractor.py 可从新路径导入</done>
</task>
<task type="auto">
<name>Task 2: 移动 zhihu 模块到 metadata 目录</name>
<files>
kb-workflow/metadata/zhihu_extractor.py,
kb-workflow/metadata/zhihu_metadata.py,
kb-workflow/metadata/zhihu_article_crawler.py,
kb-workflow/metadata/markdown_converter.py,
kb-workflow/metadata/__init__.py
</files>
<action>
1. 使用 git mv 移动文件:
- kb-zhihu-metadata/zhihu_extractor.py → kb-workflow/metadata/zhihu_extractor.py
- kb-zhihu-metadata/zhihu_metadata.py → kb-workflow/metadata/zhihu_metadata.py
- kb-zhihu-metadata/zhihu_article_crawler.py → kb-workflow/metadata/zhihu_article_crawler.py
- kb-zhihu-metadata/markdown_converter.py → kb-workflow/metadata/markdown_converter.py
2. 更新 kb-workflow/metadata/__init__.py:
```python
"""KB Workflow Metadata Module
提供 B站和知乎的元数据提取功能
"""
from .bilibili_extractor import BilibiliExtractor
from .zhihu_extractor import ZhihuPlaywrightExtractor
__all__ = [
"BilibiliExtractor",
"ZhihuPlaywrightExtractor",
]
- 移动后不要修改内部代码(保持原样) python -c "from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor; print('zhihu OK')" zhihu 模块文件已移动到 kb-workflow/metadata/,可从新路径导入
更新 kb_pipeline/platforms/zhihu.py:
- 删除 sys.path 动态操作代码(第 18-20 行):
# 删除以下代码 _kb_zhihu_path = Path(__file__).parent.parent.parent / "kb-zhihu-metadata" if str(_kb_zhihu_path) not in sys.path: sys.path.insert(0, str(_kb_zhihu_path)) - 将
from zhihu_extractor import ZhihuPlaywrightExtractor改为from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor - 删除 try/except 包装中的 ImportError 处理逻辑,直接导入 python -c "from kb_pipeline.platforms.bilibili import BilibiliAdapter; from kb_pipeline.platforms.zhihu import ZhihuAdapter; print('adapters OK')" platform adapters 使用标准包导入,无 sys.path 操作
<success_criteria>
- kb-workflow/metadata/ 目录包含 bilibili 和 zhihu 所有模块
- kb_pipeline/platforms/ 使用标准导入,无 sys.path 操作
- 所有测试通过 (pytest tests/ -v)
- 原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除 </success_criteria>