Fix inline image reuse after merging image-bearing subdoc - #666
Open
ahmetmusab42-stack wants to merge 1 commit into
Open
Fix inline image reuse after merging image-bearing subdoc#666ahmetmusab42-stack wants to merge 1 commit into
ahmetmusab42-stack wants to merge 1 commit into
Conversation
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
InlineImagereuses an image already introduced bydocxcompose;BytesIOdescriptors, repeated rendering, image deduplication, and an unsupported-image subdocument.Root cause
When a subdocument contributes an image,
docxcomposecan cache that image part with its lightweightImageWrapper. If a laterInlineImagehas the same bytes, python-docx reuses the part and expects the returned image object to implementscaled_dimensions(). The wrapper does not, so rendering raisesAttributeError.The fix replaces only the checksum-matching wrapper with a native python-docx
Imagebefore the normalnew_pic_inline()path runs. It does not monkey-patch third-party classes or catch broad exceptions.Verification
masterwith the reporter'stemplate1.docx,template2.docx, andindex.jpeg;git diff --check, sdist, and wheel builds passed.Fixes #474.
OpenAI Codex assisted with reproduction, implementation, and test execution. I reviewed the diff and verification results and remain responsible for this contribution.