File size: 942 Bytes
01d5a5d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# lpm_kernel/file_data/processors/markdown/processor.py
from pathlib import Path

from lpm_kernel.file_data.processors.processor import BaseFileProcessor
from ...core.file_type import FileType
from ...core.decorators import processor_register
from ...core.exceptions import FileProcessingError
from ...document import Document, ProcessStatus


@processor_register
class MarkdownProcessor(BaseFileProcessor):
    SUPPORTED_TYPES = {FileType.MARKDOWN}

    @classmethod
    def _process_file(cls, file_path: Path, doc: Document) -> Document:
        try:
            with open(file_path, "r", encoding="utf-8") as file:
                text = file.read()

                doc.raw_content = text
                doc.extract_status = ProcessStatus.SUCCESS

        except Exception as e:
            doc.extract_status = ProcessStatus.FAILED
            raise FileProcessingError(f"Failed to process markdown file: {str(e)}")

        return doc