fix: don't abort rST render when :scale: image can't be sized#359
Open
miketheman wants to merge 1 commit into
Open
fix: don't abort rST render when :scale: image can't be sized#359miketheman wants to merge 1 commit into
miketheman wants to merge 1 commit into
Conversation
When a reST image directive uses :scale: without both explicit :width: and :height:, docutils' image_size() calls read_size_with_PIL() to fill in the missing dimensions. With file_insertion_enabled=False (set for security to block .. include::-style file reads) and PIL unavailable for arbitrary URLs, that probe fails and emits a WARNING/2. Combined with halt_level=2, the warning is upgraded to a SystemMessage and render() returns None, breaking `twine check --strict` for any README with a scaled badge. Override read_size_with_PIL on ReadMeHTMLTranslator to short-circuit to None silently. The image then renders at its natural size (or with whatever dimension the user did provide) instead of aborting the entire render. No security regression: we still don't read external files; we just decline to warn about not reading them. Closes pypa#304 Signed-off-by: Mike Fiedler <miketheman@gmail.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.
When a reST image directive uses :scale: without both explicit :width: and :height:, docutils' image_size() calls read_size_with_PIL() to fill in the missing dimensions.
With file_insertion_enabled=False (set for security to block .. include::-style file reads) and PIL unavailable for arbitrary URLs, that probe fails and emits a WARNING/2.
Combined with halt_level=2, the warning is upgraded to a SystemMessage and render() returns None, breaking
twine check --strictfor any README with a scaled badge.Override read_size_with_PIL on ReadMeHTMLTranslator to short-circuit to None silently. The image then renders at its natural size (or with whatever dimension the user did provide) instead of aborting the entire render. No security regression: we still don't read external files; we just decline to warn about not reading them.
Closes #304