Files
test_item_gen/modules/json_parser.py
2026-02-04 14:38:52 +08:00

77 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# @line_count 100
"""JSON解析模块提取功能点和章节信息"""
import json
from pathlib import Path
from typing import List, Dict, Any, Optional
from .parser_adapters.parser_factory import ParserFactory
class JSONParser:
"""JSON文档解析器门面模式"""
def __init__(self, json_path: str):
"""
初始化JSON解析器
Args:
json_path: JSON文件路径
"""
self.json_path = Path(json_path)
self.data: Dict[str, Any] = {}
self.adapter = None
self.load_json()
def load_json(self):
"""加载JSON文件并创建适配器"""
if not self.json_path.exists():
raise FileNotFoundError(f"JSON文件不存在: {self.json_path}")
with open(self.json_path, 'r', encoding='utf-8') as f:
self.data = json.load(f)
# 自动检测格式并创建适配器
self.adapter = ParserFactory.create_adapter(self.data)
def extract_function_points(self) -> List[Dict[str, Any]]:
"""
提取功能点列表
Returns:
功能点列表,每个功能点包含:
- module_name: 所属模块
- function_name: 功能名称
- description: 功能描述
- operation_steps: 操作步骤(可选)
- requirement_id: 需求编号(可选)
- requirement_type: 需求类型(可选)
"""
return self.adapter.extract_function_points()
def get_document_info(self) -> Dict[str, Any]:
"""
获取文档基本信息
Returns:
文档信息字典
"""
return self.adapter.get_document_info()
def get_sections(self) -> List[Dict[str, Any]]:
"""
获取所有章节信息
Returns:
章节列表
"""
return self.adapter.get_sections()
def get_module_summary(self) -> List[Dict[str, Any]]:
"""
获取模块摘要
Returns:
模块摘要列表
"""
return self.adapter.get_module_summary()