Repository navigation
Reject pet images with malformed EXIF during preparation - #122
Merged
yyong119 merged 1 commit intoOct 8, 2026
Merged
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.
Learners preparing their own pet images through
COURSE_PET_IMAGEScan have a PNG with valid pixels but malformed EXIF accepted into the split, then see decoding fail inpet_dataset.prepare_petschecked image structure and decoded RGB pixels without applying the loader's EXIF orientation transform, so malformed metadata escaped validation. Preparation now appliesImageOps.exif_transposebefore RGB conversion and records malformed EXIF through the existing rejection path. The regression uses a synthetic PNG with valid pixels and malformed EXIF, checks rejection, and decodes all three splits. The Microsoft dataset was not inspected for malformed EXIF.On Linux/Python 3.12.3,
.venv/bin/python -m unittest discover -s tests -qpassed 18 tests. Basic and deep checks passed 15 and 4 scripts respectively, with matching notebook counts. Sync and docs checks passed. Python 3.11.15 also passed the basic checks, with 9 optional deep tests skipped. The regression fails ond430ac5, passes with the fix, and fails again when only the source change is reverted.