@@ -0,0 +1,44 @@
|
||||
"""Route file extensions to parsers."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from rag_cut.parsers.base import BaseParser
|
||||
from rag_cut.parsers.word_parser import WordParser
|
||||
from rag_cut.parsers.image_parser import ImageParser
|
||||
from rag_cut.parsers.pdf_parser import PdfParser
|
||||
from rag_cut.parsers.ppt_parser import PptParser
|
||||
from rag_cut.parsers.text_parser import TextParser
|
||||
from rag_cut.parsers.xlsx_parser import SpreadsheetParser
|
||||
|
||||
PARSERS: dict[str, BaseParser] = {
|
||||
".docx": WordParser(),
|
||||
".doc": WordParser(),
|
||||
".pdf": PdfParser(),
|
||||
".ppt": PptParser(),
|
||||
".pptx": PptParser(),
|
||||
".ppsx": PptParser(),
|
||||
".xlsx": SpreadsheetParser(),
|
||||
".xls": SpreadsheetParser(),
|
||||
".csv": SpreadsheetParser(),
|
||||
".md": TextParser(),
|
||||
".txt": TextParser(),
|
||||
".html": TextParser(),
|
||||
".htm": TextParser(),
|
||||
".json": TextParser(),
|
||||
".xml": TextParser(),
|
||||
".log": TextParser(),
|
||||
".jpg": ImageParser(),
|
||||
".jpeg": ImageParser(),
|
||||
".png": ImageParser(),
|
||||
".bmp": ImageParser(),
|
||||
".gif": ImageParser(),
|
||||
}
|
||||
|
||||
|
||||
def get_parser(path: Path) -> BaseParser:
|
||||
ext = path.suffix.lower()
|
||||
if ext not in PARSERS:
|
||||
raise ValueError(f"Unsupported file type: {ext}")
|
||||
return PARSERS[ext]
|
||||
Reference in New Issue
Block a user