From 4f603817b242195d06049ebe7cbaa1a61d9b22da Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Tue, 27 Oct 2026 16:52:32 +0000 Subject: [PATCH] Ignore unrelated files during model version discovery --- .../large_file/large_file/large_file_base.py | 16 +++++----------- tests/large_file/test_storage_safety.py | 7 +++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/great_ai/large_file/large_file/large_file_base.py b/great_ai/large_file/large_file/large_file_base.py index 696b8a3..fb4d688 100644 --- a/great_ai/large_file/large_file/large_file_base.py +++ b/great_ai/large_file/large_file/large_file_base.py @@ -273,21 +273,15 @@ class LargeFileBase(ABC): def _find_instances_from_cache(self) -> List[DataInstance]: logger.info(f"Fetching cached versions of {self._name}") - candidates = [ + prefix = f"{self._name}{CACHE_NAME_VERSION_SEPARATOR}" + return [ DataInstance( - name=CACHE_NAME_VERSION_SEPARATOR.join( - f.name.split(CACHE_NAME_VERSION_SEPARATOR)[:-1] - ), - version=int(f.name.split(CACHE_NAME_VERSION_SEPARATOR)[-1]), - remote_path=f, - ) - for f in self.cache_path.glob( - f"{self._name}{CACHE_NAME_VERSION_SEPARATOR}*" + name=self._name, version=int(f.name[len(prefix) :]), remote_path=f ) + for f in self.cache_path.glob(f"{prefix}*") + if f.name[len(prefix) :].isdigit() ] - return [c for c in candidates if c.name == self._name] - def _check_mode_and_set_version(self) -> None: if "+" in self._mode: raise ValueError( diff --git a/tests/large_file/test_storage_safety.py b/tests/large_file/test_storage_safety.py index 89f9750..9ace902 100644 --- a/tests/large_file/test_storage_safety.py +++ b/tests/large_file/test_storage_safety.py @@ -20,3 +20,10 @@ def test_configured_cache_directory_is_created( with LargeFileLocal("model", "w") as file: file.write("weights") assert LargeFileLocal("model").get().read_text() == "weights" + + +def test_unrelated_cache_entries_are_ignored() -> None: + LargeFileLocal.cache_path.mkdir(parents=True) + (LargeFileLocal.cache_path / "model-unrelated").write_text("unrelated") + (LargeFileLocal.cache_path / "model-0").write_text("weights") + assert LargeFileLocal("model").get().read_text() == "weights"