From 1213a3a4cb529a7f394baa9f8ef83e9e2bd2d67f Mon Sep 17 00:00:00 2001 From: Daulet Amirkhanov Date: Mon, 20 Oct 2025 22:00:13 +0100 Subject: [PATCH] revert changes to `LoaderEngine` and `LoaderInterface` --- cognee/infrastructure/loaders/LoaderEngine.py | 23 ++++--------------- .../infrastructure/loaders/LoaderInterface.py | 4 +--- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/cognee/infrastructure/loaders/LoaderEngine.py b/cognee/infrastructure/loaders/LoaderEngine.py index d6c4d4d8c..6b62f7641 100644 --- a/cognee/infrastructure/loaders/LoaderEngine.py +++ b/cognee/infrastructure/loaders/LoaderEngine.py @@ -64,7 +64,7 @@ class LoaderEngine: return True def get_loader( - self, data_item_path: str, preferred_loaders: List[str] = None + self, file_path: str, preferred_loaders: List[str] = None ) -> Optional[LoaderInterface]: """ Get appropriate loader for a file. @@ -76,37 +76,24 @@ class LoaderEngine: Returns: LoaderInterface that can handle the file, or None if not found """ - is_url = data_item_path.startswith(("http://", "https://")) - if is_url: - extension = None - mime_type = None - else: - file_info = filetype.guess(data_item_path) - extension = file_info.extension if file_info else None - mime_type = file_info.mime if file_info else None + file_info = filetype.guess(file_path) # Try preferred loaders first if preferred_loaders: for loader_name in preferred_loaders: if loader_name in self._loaders: loader = self._loaders[loader_name] - if loader.can_handle( - extension=extension, - mime_type=mime_type, - data_item_path=data_item_path, - ): # TODO: I'd like to refactor this to be just one argument and let loaders get file_info inside, but I'll keep that until review time + if loader.can_handle(extension=file_info.extension, mime_type=file_info.mime): return loader else: logger.info(f"Skipping {loader_name}: Preferred Loader not registered") # Try default priority order - for loader_name in ( - self.default_loader_priority - ): # TODO: I'm in favor of adding WebUrlLoader to defaults, but keeping it for review + for loader_name in self.default_loader_priority: if loader_name in self._loaders: loader = self._loaders[loader_name] - if loader.can_handle(extension=extension, mime_type=mime_type): + if loader.can_handle(extension=file_info.extension, mime_type=file_info.mime): return loader else: logger.info( diff --git a/cognee/infrastructure/loaders/LoaderInterface.py b/cognee/infrastructure/loaders/LoaderInterface.py index fb309304b..3a1c9bf3e 100644 --- a/cognee/infrastructure/loaders/LoaderInterface.py +++ b/cognee/infrastructure/loaders/LoaderInterface.py @@ -44,9 +44,7 @@ class LoaderInterface(ABC): pass @abstractmethod - def can_handle( - self, extension: str, mime_type: str, data_item_path: str = None - ) -> bool: # TODO: Temporarily set this to default to None so that I don't update other loaders unnecessarily yet, see TODO in LoaderEngine.py + def can_handle(self, extension: str, mime_type: str) -> bool: """ Check if this loader can handle the given file.