dictdiffer
dictdiffer copied to clipboard
Pretty printer
Is your feature request related to a problem? Please describe.
I use dictdiffer in tests to show differences for assertion errors. Having a method that would pretty print a differences would make use of the library even better for me.
Describe the solution you'd like
Either
>>> dictdiffer.pretty_diff({}, {"foo": "bar"}))
add: 'foo': 'bar'
>>> dictdiffer.pretty_diff({"foo": "jar"}, {"foo": "bar"}))
change foo: 'jar' -> 'bar'
>>> dictdiffer.pretty_diff({"outer": {"foo": "jar"}}, {"outer": {"foo": "bar"}}))
change outer.foo: 'jar' -> 'bar'
or more like comparison view
>>> dictdiffer.pretty_diff({}, {"foo": "bar"}))
+ 'foo': 'bar'
>>> dictdiffer.pretty_diff({"foo": "jar"}, {"foo": "bar"}))
- 'foo': 'jar' + 'foo': 'bar'
>>> dictdiffer.pretty_diff({"outer": {"foo": "jar"}}, {"outer": {"foo": "bar"}}))
'outer': { 'outer': {
- 'foo': 'jar' + 'foo': 'bar'
Additional context
https://github.com/lukaszb/pytest-dictsdiff and https://github.com/hjwp/pytest-icdiff does something similar (at least one have dictdiffer as dependency), but doesn't work for my cases.