Skip to content

Commit 569543c

Browse files
committed
feat: add excel parser test
1 parent 49f540b commit 569543c

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

parsers/document_parser_factory.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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)

0 commit comments

Comments
 (0)