GraphResearcher / app /ingestion /parser_registry.py
yugbirla's picture
Sync GraphRAG fusion quality cleanup and evaluation files
b7d0804
Raw
History Blame Contribute Delete
1.28 kB
from typing import Optional
from app.ingestion.base_parser import BaseParser
from app.ingestion.txt_parser import TxtParser
from app.ingestion.markdown_parser import MarkdownParser
from app.ingestion.pdf_parser import PdfParser
from app.ingestion.docx_parser import DocxParser
from app.ingestion.csv_excel_parser import CsvExcelParser
from app.ingestion.html_parser import HtmlParser
from app.ingestion.latex_parser import LatexParser
from app.ingestion.image_parser import ImageParser
class ParserRegistry:
def __init__(self):
self.parsers = {}
def register(self, file_type: str, parser: BaseParser):
self.parsers[file_type] = parser
def get_parser(self, file_type: str) -> Optional[BaseParser]:
return self.parsers.get(file_type)
parser_registry = ParserRegistry()
parser_registry.register("txt", TxtParser())
parser_registry.register("markdown", MarkdownParser())
parser_registry.register("pdf", PdfParser())
parser_registry.register("docx", DocxParser())
table_parser = CsvExcelParser()
parser_registry.register("csv", table_parser)
parser_registry.register("excel", table_parser)
parser_registry.register("html", HtmlParser())
parser_registry.register("latex", LatexParser())
parser_registry.register("image", ImageParser())