NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #402 most downloaded on PyPI
Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other.
Last release 4 months ago
15 May 2026
Release timing varies
gaps range from 1 weeks to 6 months
Most releases are documented
notes for 37 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
91 releases · first in 2014
Nothing published for this version
to_dict() and to_json() now accept a verbose_level parameter and always return a usable text-view dict. When the original view is 'tree' , they defaul
to_dict() and to_json() now accept a verbose_level parameter and always return a usable text-view dict. When the original view is 'tree', they default to verbose_level=2 for full detail. The old view_override parameter is removed. To get the previous results, you will need to pass the explicit verbose_level to to_json and to_dict if you are using the tree view.group_by thanks to echan5FlatDeltaDict TypedDict for to_flat_dicts return typehasattr() swallowing AttributeError in __slots__ handling for objects with __getattr__ thanks to tpvasconcelosignore_order=True missing int-vs-float type changes_convert_oversized_ints failing on NamedTuplesTypeError for integers exceeding 64-bit rangeto_flat_dicts where include_action_in_path and report_type_changes were not being passed throughignore_keys issue in detailed__dict__ thanks to vitalis89One column per quarter.
8.6.2 - Fix ( CVE-2025-58367 )
8.6.2 - Fix (CVE-2025-58367)
Patched security vulnerability in the Delta class which was vulnerable to class pollution via its constructor, and when combined with a gadget availab…
DeepDiff 8-6-1
Bump version: 8.5.0 → 8.6.0
Bump version: 8.5.0 → 8.6.0
Updating deprecated pydantic calls
Nothing published for this version
pytz is not required.
Adding BaseOperatorPlus base class for custom operators
Bump version: 8.2.0 → 8.3.0
Bump version: 8.2.0 → 8.3.0
Bump version: 8.1.1 → 8.2.0
Bump version: 8.1.1 → 8.2.0
Adding Python 3.13 to setup.py
Adding Python 3.13 to setup.py
Removing deprecated lines from setup.py
prefix option to pretty()8.0.1 - extra import of numpy is removed
8.0.1 - extra import of numpy is removed
[x] Deprecated ordered-set and switched to orderly-set. The ordered-set package was not being maintained anymore and starting Python 3.6, there were b…
With the introduction of threshold_to_diff_deeper, the values returned are different than in previous versions of DeepDiff. You can still get the older values by setting threshold_to_diff_deeper=0. However to signify that enough has changed in this release that the users need to update the parameters passed to DeepDiff, we will be doing a major version update.
use_enum_value=True makes it so when diffing enum, we use the enum's value. It makes it so comparing an enum to a string or any other value is not reported as a type change.threshold_to_diff_deeper=float is a number between 0 and 1. When comparing dictionaries that have a small intersection of keys, we will report the dictionary as a new_value instead of reporting individual keys changed. If you set it to zero, you get the same results as DeepDiff 7.0.1 and earlier, which means this feature is disabled. The new default is 0.33 which means if less that one third of keys between dictionaries intersect, report it as a new object.ordered-set and switched to orderly-set. The ordered-set package was not being maintained anymore and starting Python 3.6, there were better options for sets that ordered. I forked one of the new implementations, modified it, and published it as orderly-set.use_log_scale:bool and log_scale_similarity_threshold:float. They can be used to ignore small changes in numbers by comparing their differences in logarithmic space. This is different than ignoring the difference based on significant digits.iterable_compare_func is used.[x] When verbose=2, return new_path when the path and new_path are different (for example when ignore_order=True and the index of items have changed).
new_path when the path and new_path are different (for example when ignore_order=True and the index of items have changed).datetime.date objects where it treated them as numbers instead of dates (fixes #445).Nothing published for this version
verify_symmetry is deprecated. Use bidirectional instead.
Can't compare dicts with both single and double quotes in keysNothing published for this version
Nothing published for this version
- [x] Numpy 2.0 support - [x] Adding Delta.to_flat_dicts
Nothing published for this version
Bugfix: Numpy should be optional
Bugfix: Numpy should be optional
Add Ignore List Order Option to DeepHash by Bobby Morck
zip_ordered_iterables for forcing iterable items to be compared one by one.Bugfix deephash for paths by maggelus
include_paths for nested dictionaries by kor4ikdatetime.date by Alex Sauer-Budge`PrefixOrSuffixOperator`: This operator will skip strings that are suffix or prefix of each other.
PrefixOrSuffixOperator: This operator will skip strings that are suffix or prefix of each other.include_obj_callback and include_obj_callback_strict are added by Håvard Thom.np.float32 nans are not ignored when using ignore_nan_equality by Noam Gottlieborjson becomes optional again.ignore_type_in_groups with numeric values so it does not report number changes when the number types are different.Nothing published for this version
Nothing published for this version
Major improvement in the diff report for lists when items are all hashable and the order of items is important.
Major improvement in the diff report for lists when items are all hashable and the order of items is important.
DeepDiff 5-8-1 includes bug fixes: - Fixed test suite for 32bit systems (https://github.com/seperman/deepdiff/issues/302) by Louis-Philippe Véronneau_
DeepDiff 5-8-1 includes bug fixes: - Fixed test suite for 32bit systems
(https://github.com/seperman/deepdiff/issues/302) by Louis-Philippe Véronneau_ - Fixed the issue when using ignore_order=True and
group_by simultaneously - Added the support for diffing object
properties (@property)
(https://github.com/seperman/deepdiff/issues/312) - Better support of
diffing private variables
.. _Louis-Philippe Véronneau: https://github.com/baldurmen
DeepDiff 5-8-0 includes bug fixes and improvements:
ignore_order=TrueNothing published for this version
Nothing published for this version
v5-6-0: Adding custom operators, and ignore_order_func. Bugfix: verbose_level==0 should disable values_changes. Bugfix: unprocessed key error.
v5-5-0: adding iterable_compare_func for DeepDiff, adding output_format of list for path() in tree view.
v5-3-0: add support for regular expressions in DeepSearch
v5-2-3: Retaining the order of multiple dictionary items added via Delta. Fixed the typo with yml files in deep cli. Fixing Grep RecursionError where
Fixed Delta serialization when None type is present.
Fixed Delta serialization when None type is present.
v5-2-0: Removed Murmur3 as the preferred hashing method. Using SHA256 by default now. Added commandline for deepdiff. Added group_by. Added math_epsil
Nothing published for this version
v5-0-2: Bug Fix NoneType in ignore type groups https://github.com/seperman/deepdiff/issues/207
Nothing published for this version
v5-0-0: Introducing the Delta object, Improving Numpy support, Fixing tuples comparison when ignore_order=True, Dramatically improving the results whe
v4-3-2: Deprecation Warning Enhancement
v4-3-2: Deprecation Warning Enhancement
v4-3-1: Fixing the issue with exclude_path and hash calculations when dictionaries were inside iterables. https://github.com/seperman/deepdiff/issues/
Nothing published for this version
.json property is finally removed.
4.2.0 Release
.json property is finally removed.
Fix for Py3.10.
Dropping support for EOL Python 3.4.
Ignoring private keys when calculating hashes. For example __init__ is not a part of hash calculation anymore.
Fix for #166 Problem with comparing lists, with boolean as element.
v4-0-9: Fixing the bug for hashing custom unhashable objects
v4-0-8: Adding ignore_nan_inequality for float('nan')
Nothing published for this version
Nothing published for this version
v4-0-7: Hashing of the number 1 vs. True
v4-0-7: Hashing of the number 1 vs. True
Found a tiny bug in Python formatting of numbers in scientific notation. Added a workaround.
Found a tiny bug in Python formatting of numbers in scientific notation. Added a workaround.
v4-0-5: Fixing number diffing. Adding number_format_notation and number_to_string_func.
v4-0-4: Adding ignore_string_case and ignore_type_subclasses
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →