"""Reader 基类,定义所有文档阅读器的公共接口。""" from abc import ABC, abstractmethod from pathlib import Path from typing import List, Optional, Tuple class BaseReader(ABC): """文档阅读器基类。""" @property @abstractmethod def supported_extensions(self) -> List[str]: """返回支持的文件扩展名列表(如 ['.docx', '.doc'])。""" pass @abstractmethod def supports(self, file_path: str) -> bool: """判断是否支持给定的文件。""" pass @abstractmethod def parse(self, file_path: str) -> Tuple[Optional[str], List[str]]: """ 解析文件并返回 Markdown 内容。 返回: (content, failures) - content: 成功时返回 Markdown 内容,失败时返回 None - failures: 各解析器的失败原因列表 """ pass