File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ import logging
2+
3+ from parsers .document_parser import DocumentParser , ParseResult
4+ from parsers .excel_parser import ExcelParser
5+
6+ logger = logging .getLogger (__name__ )
7+
8+ class DocumentParserFactory :
9+ """文档解析器工厂"""
10+
11+ def __init__ (self ) -> None :
12+ self .parsers : list [DocumentParser ] = [
13+ ExcelParser ()
14+ ]
15+
16+ def get_parser (self , file_path : str ) -> DocumentParser | None :
17+ """根据文件路径获取合适的解析器"""
18+ for parser in self .parsers :
19+ if parser .can_parse (file_path ):
20+ return parser
21+ return None
22+
23+ async def parse_document (self , file_path : str ) -> ParseResult :
24+ """解析文档"""
25+ parser = self .get_parser (file_path )
26+ if not parser :
27+ raise ValueError (f"不支持的文件格式: { file_path } " )
28+
29+ return await parser .parse (file_path )
You can’t perform that action at this time.
0 commit comments