DeepDiff 8.4.2 documentation!

Modules

The DeepDiff library includes the following modules:

  • DeepDiff For Deep Difference of 2 objects. DeepDiff

    It return the deep Difference of python objects. It can also be used to take the distance between objects. Deep Distance

  • DeepSearch Search for objects within other objects. DeepSearch

  • DeepHash Hash any object based on their content even if they are not “hashable” in Python’s eyes. DeepHash

  • Delta Delta of objects that can be applied to other objects. Imagine git commits but for structured data. Delta

  • Extract For extracting a path from an object Extract

  • Commandline Most of the above functionality is also available via the commandline module Command Line

What Is New

DeepDiff 8-4-2

  • fixes the type hints for the base

  • fixes summarize so if json dumps fails, we can still get a repr of the results

  • adds ipaddress support

DeepDiff 8-4-1

  • Adding BaseOperatorPlus base class for custom operators

  • default_timezone can be passed now to set your default timezone to something other than UTC.

  • New summarization algorithm that produces valid json

  • Better type hint support

  • Breaking change in DeepHash where we raise Exception instead of logging if we can’t hash a value.

  • Added the log_stacktrace parameter to DeepDiff. When True, it will log the stacktrace along with the error.

DeepDiff 8-3-0

  • Fixed some static typing issues

  • Added the summarize module for better repr of nested values

DeepDiff 8-2-0

  • Small optimizations so we don’t load functions that are not needed

  • Updated the minimum version of Orderly-set

  • Normalize all datetimes into UTC. Assume timezone naive datetimes are UTC.

DeepDiff 8-1-0

  • Removing deprecated lines from setup.py

  • Added prefix option to pretty()

  • Fixes hashing of numpy boolean values.

  • Fixes slots comparison when the attribute doesn’t exist.

  • Relaxing orderly-set reqs

  • Added Python 3.13 support

  • Only lower if clean_key is instance of str

  • Fixes issue where the key deep_distance is not returned when both compared items are equal

  • Fixes exclude_paths fails to work in certain cases

  • exclude_paths fails to work

  • Fixes to_json() method chokes on standard json.dumps() kwargs such as sort_keys

  • to_dict() method chokes on standard json.dumps() kwargs

  • Fixes accessing the affected_root_keys property on the diff object returned by DeepDiff fails when one of the dicts is empty

  • Fixes accessing the affected_root_keys property on the diff object returned by DeepDiff fails when one of the dicts is empty

Tutorials

Tutorials can be found on Zepworks blog

Installation

Install from PyPi:

pip install deepdiff

If you want to use DeepDiff from commandline:

pip install "deepdiff[cli]"

If you want to improve the performance of DeepDiff with certain processes such as json serialization:

pip install "deepdiff[optimize]"

Read about DeepDiff optimizations at Optimizations

>>> from deepdiff import DeepDiff  # For Deep Difference of 2 objects
>>> from deepdiff import grep, DeepSearch  # For finding if item exists in an object
>>> from deepdiff import DeepHash  # For hashing objects based on their contents
>>> from deepdiff import Delta  # For creating delta of objects that can be applied later to other objects.
>>> from deepdiff import extract  # For extracting a path from an object

Note

if you want to use DeepDiff via commandline, make sure to run:: pip install “deepdiff[cli]”

Then you can access the commands via:

  • DeepDiff

$ deep diff --help
  • Delta

$ deep patch --help
  • grep

$ deep grep --help
  • extract

$ deep extract --help

int, string, unicode, dictionary, list, tuple, set, frozenset, OrderedDict, NamedTuple, Numpy, custom objects and more!

References

Indices and tables