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.
The recent release of python-benedict==0.24.1 started ignoring empty dictionaries
during the merge. The way we expected to work was questionable and also how
benedict itself tries to handle the references to an empty dictionary is
also questionable.
I consider this to be a proper way to handle this even if this gets fixed
on the benedict side.
To demonstrate the problem with referencing an empty dictionary:
Benedict tries to handle in-place updates, so it's tricky for it to handle this case of empty dictionaries as the references are not preserved. And, since
modify_data
requires updating things in-place, we require references to be preserved. So, it seems it's our duty to try to preserve references than it being left to benedict alone.Fixes #6374.
❗ I have followed the Contributing to DVC checklist.
📖 If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏