From 5219fc65754e28d2f9860eaaa8459395a6fb8d61 Mon Sep 17 00:00:00 2001 From: Alfonso Lozana <57018030+AlfonsoLozana@users.noreply.github.com> Date: Wed, 29 Jul 2026 15:07:34 +0200 Subject: [PATCH] feat: add reader overrides (#2317) * feat: add reader overrides * fix: fix disable readers * fix: change override to register * fix: control UnidentifiedImageError * Revert "fix: control UnidentifiedImageError" This reverts commit df2cc8cceec81eeb61afba9aad4679eb5ebdd968. * fix: fallback resolved reader * chore: remove not necessary var --- private_gpt/components/ingest/parse_component.py | 2 ++ private_gpt/components/readers/registry.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/private_gpt/components/ingest/parse_component.py b/private_gpt/components/ingest/parse_component.py index 89579705..791e5783 100644 --- a/private_gpt/components/ingest/parse_component.py +++ b/private_gpt/components/ingest/parse_component.py @@ -134,8 +134,10 @@ class ParseComponent: raise InvalidFileError(errors=[IngestionParseErrors.PARSING_FAILURE]) from e except Exception as e: logger.error("Error loading file: %s", e, exc_info=True) + converted_fallback = convert_unsupported_file_as_fallback(file_info) if converted_fallback: + resolved_reader = self._resolve_reader(converted_fallback.extension) if notification: notification( percentage=0, diff --git a/private_gpt/components/readers/registry.py b/private_gpt/components/readers/registry.py index 89a180b4..efa51ec2 100644 --- a/private_gpt/components/readers/registry.py +++ b/private_gpt/components/readers/registry.py @@ -25,6 +25,12 @@ _DEFAULT_EXTENSION_READERS: dict[str, list[str]] = { } +def register_extension_readers(extension: str, reader_names: list[str]) -> None: + normalized_extension = _normalize_extension(extension) + normalized_reader_names = [_normalize_reader_name(n) for n in reader_names] + _DEFAULT_EXTENSION_READERS[normalized_extension] = normalized_reader_names + + def _normalize_reader_name(name: str) -> str: normalized = name.strip().lower() if not normalized: