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: