ReMe/reme2/component/file_parser/base_file_parser.py
jinli.yl 3fc3fd65e8
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
feat(parser): add base file parser and concrete implementations
- Introduce BaseFileParser abstract class with component registration
- Add MdFileParser implementation for markdown files with YAML frontmatter
- Create TextFileParser implementation with built-in chunking support
- Implement file suffix enumeration for parser type safety
- Add chunking logic with configurable token size and overlap
- Support text file parsing with error handling for encoding issues
- Include line number tracking and content hashing for file chunks
2026-04-24 21:00:31 +08:00

18 lines
575 B
Python

"""Abstract base class for file parsers."""
from abc import abstractmethod
from ..base_component import BaseComponent
from ...enumeration import ComponentEnum, FileSuffixEnum
from ...schema import FileChunk, FileMetadata
class BaseFileParser(BaseComponent):
"""Parser that declares handled suffixes and produces FileChunks."""
component_type = ComponentEnum.FILE_PARSER
suffixes: list[FileSuffixEnum] = []
@abstractmethod
async def parse(self, path: str) -> tuple[FileMetadata, list[FileChunk]]:
"""Parse a file into metadata and chunks."""