pypi / deepdiff
deepdiff
What changed in deepdiff 8 to 9, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.
4 breaking2 security3 new APIs and options1 behavior and defaults9 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initdeepdiff 917 changes
Breaking changes 4
ignore_order=True now reports int-versus-float type changes.
Support for Python 3.9 is dropped.
The view_override parameter is removed; pass an explicit verbose_level to get previous tree-view results.
The view_override parameter is removed; pass an explicit verbose_level to get previous tree-view results.
New APIs and options 3
A TypedDict is added for the return type of to_flat_dicts.
to_dict() accepts verbose_level and returns a usable text-view dict; tree view defaults to verbose_level=2 for full detail.
to_json() accepts verbose_level and returns a usable text-view dict; tree view defaults to verbose_level=2 for full detail.
Behavior and default changes 1
group_by now supports callable values.
Fixes and other changes 9
Colored view display is fixed when all list items are removed.
An issue with ignore_keys in detailed__dict__ is fixed.
The type hint for logarithmic similarity is fixed.
Fixes an orjson TypeError for integers exceeding the 64-bit range.
Path reporting always uses the t1 path.
Python 3.14 is supported.
AttributeError is no longer swallowed by hasattr() for objects with __getattr__ during __slots__ handling.
include_action_in_path is now passed through by to_flat_dicts.
report_type_changes is now passed through by to_flat_dicts.
deepdiff 82 changes
Security 2
Fixes CVE-2025-58367; the notes provide no further details about the vulnerability or fix.
DeepDiff has Memory Exhaustion DoS through SAFE_TO_IMPORT