Fix image extraction failing when --image-dir contains spaces - #2
Merged
Conversation
pymupdf4llm's utils.md_path() replaces spaces with underscores in the file save path, but creates the directory with the original name. This causes pix.save() to fail with ENOENT because the sanitized path doesn't exist. Work around this by writing images to a temp directory when the image path contains spaces, then relocating them to the user's requested directory and rewriting markdown references. Fixes #1 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Always use absolute paths for markdown image reference rewriting (pymupdf4llm emits absolute paths, not relative). Also ensure temp directory is cleaned up if _relocate_images raises an exception. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
pymupdf4llm'sutils.md_path()replaces spaces with underscores in the image save path, but creates the directory with the original name — sopix.save()fails with ENOENT on the sanitized pathimage_pathcontains spaces, write images to a temp directory, then relocate them to the user's requested path and rewrite markdown referenceswith_imagetest fixture (PDF with embedded image)Fixes #1
Test plan
pytest -v— all 91 tests pass (3 new regression tests for this fix)ruff check .andruff format --check .clean--image-dirpath containing spaces🤖 Generated with Claude Code