From 54d5269145a4cc64556c6cde06e249730ac568a5 Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon, 13 Apr 2026 12:32:22 -0700 Subject: [PATCH] Fix: Use an iterator in the sanity checking (#12563) --- src/documents/sanity_checker.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/documents/sanity_checker.py b/src/documents/sanity_checker.py index 0b3dea368..a6d00cd3a 100644 --- a/src/documents/sanity_checker.py +++ b/src/documents/sanity_checker.py @@ -182,8 +182,9 @@ def _check_thumbnail( present_files: set[Path], ) -> None: """Verify the thumbnail exists and is readable.""" - thumbnail_path: Final[Path] = Path(doc.thumbnail_path).resolve() - if not thumbnail_path.exists() or not thumbnail_path.is_file(): + # doc.thumbnail_path already returns a resolved Path; no need to re-resolve. + thumbnail_path: Final[Path] = doc.thumbnail_path + if not thumbnail_path.is_file(): messages.error(doc.pk, "Thumbnail of document does not exist.") return @@ -200,8 +201,9 @@ def _check_original( present_files: set[Path], ) -> None: """Verify the original file exists, is readable, and has matching checksum.""" - source_path: Final[Path] = Path(doc.source_path).resolve() - if not source_path.exists() or not source_path.is_file(): + # doc.source_path already returns a resolved Path; no need to re-resolve. + source_path: Final[Path] = doc.source_path + if not source_path.is_file(): messages.error(doc.pk, "Original of document does not exist.") return @@ -237,8 +239,9 @@ def _check_archive( elif doc.has_archive_version: if TYPE_CHECKING: assert isinstance(doc.archive_path, Path) - archive_path: Final[Path] = Path(doc.archive_path).resolve() - if not archive_path.exists() or not archive_path.is_file(): + # doc.archive_path already returns a resolved Path; no need to re-resolve. + archive_path: Final[Path] = doc.archive_path # type: ignore[assignment] + if not archive_path.is_file(): messages.error(doc.pk, "Archived version of document does not exist.") return @@ -314,7 +317,15 @@ def check_sanity( messages = SanityCheckMessages() present_files = _build_present_files() - documents = Document.global_objects.all() + documents = Document.global_objects.only( + "pk", + "filename", + "mime_type", + "checksum", + "archive_checksum", + "archive_filename", + "content", + ).iterator(chunk_size=500) for doc in iter_wrapper(documents): _check_document(doc, messages, present_files)