Repository navigation
Conversation
FanWu-ai
marked this pull request as ready for review
October 21, 2026 22:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PDF.pagesassigns its cache before page iteration/construction finishes. If loading a later page raises, the next access returns the incomplete cached list without reporting the error. This can silently turn a failed document load into an empty or truncated document.Build the page list locally and publish the cache only after loading succeeds. Successful loading, page selection and cache reuse are unchanged.
Ten regressions fail against the original source and pass with the fix:
MalformedPDFException, not return an empty list after the first failure.This does not attempt to repair malformed PDFs; it prevents failed loads from being cached as successful results. Changelog and contributor credit are included as requested by CONTRIBUTING.md.
Validation on Linux, Python 3.12.14:
make tests: 173 passed, including Ghostscript repair tests and HTML coverage generation.make tests: 183 passed, no skips, including coverage HTML generation.make lint: Flake8, strict mypy, Black and isort passed.The test command retains the project's
-n autowithPYTEST_XDIST_AUTO_NUM_WORKERS=2to bound concurrency; no tests are excluded. Other Python/platform combinations and hosted checks are not claimed as tested locally.Prepared and tested with OpenAI AI assistance.