Source code for fastrag.ingestion.steps.parsing.router

"""``ParserRouter``: dispatch each source to the parser registered for it."""

from __future__ import annotations

from fastrag.ingestion.steps.base import RoutedStep
from fastrag.ingestion.steps.parsing.base import Parser
from fastrag.models import Document


[docs] class ParserRouter(RoutedStep[Document], Parser): """Route each source to the first matching ``.route`` parser, or ``.default``. Holds no parsing logic of its own: a source matching no route with no default registered is skipped with an ``ItemFailed``. .. code-block:: python from fastrag.ingestion.steps.parsing import ( DefaultParser, HtmlParser, ParserRouter, html_filter, ) parser = ( ParserRouter(cache=cache) .route(html_filter, HtmlParser()) .default(DefaultParser()) ) """ routing_requires_content = False