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.
DeepDiff({b"foo": 1}, {b"foo": 2})raisesTypeErrorwhile building the path for the changed value. The original example in #472 can appear to work now because the default dictionary threshold reports the whole dictionary as changed; comparing values under the same bytes key still reaches the broken path handling.This reports the change at
root[b'foo']and keeps the resulting paths usable byparse_path,extract, andDelta. Bytes keys are written as Python bytes literals, and the parser handles their escaped quotes and backslashes. The regression cases cover nested additions, removals, and value changes with empty keys, both quote types, trailing backslashes, and non-ASCII bytes, including forward and reverse Delta application.This builds on the bytes-literal approach proposed by Mukller in #614, with the parsing changes needed to make escaped keys round-trip. Memoryview behavior is unchanged.
Validation on Windows with Python 3.12.14:
dev.test_delta_dump_and_read3. The same Windows text-mode pickle failure reproduces on unchangeddev.Fixes #472.