DeepDiff 8.6.1 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-6-1

  • Patched security vulnerability in the Delta class which was vulnerable to class pollution via its constructor, and when combined with a gadget available in DeltaDiff itself, it could lead to Denial of Service and Remote Code Execution (via insecure Pickle deserialization).

DeepDiff 8-6-0

  • Added Colored View thanks to @mauvilsa

  • Added support for applying deltas to NamedTuple thanks to @paulsc

  • Fixed test_delta.py with Python 3.14 thanks to @Romain-Geissler-1A

  • Added python property serialization to json

  • Added ip address serialization

  • Switched to UV from pip

  • Added Claude.md

  • Added uuid hashing thanks to @akshat62

  • Added ignore_uuid_types flag to DeepDiff to avoid type reports when comparing UUID and string.

  • Added comprehensive type hints across the codebase (multiple commits for better type safety)

  • Added support for memoryview serialization

  • Added support for bytes serialization (non-UTF8 compatible)

  • Fixed bug where group_by with numbers would leak type info into group path reports

  • Fixed bug in _get_clean_to_keys_mapping without explicit significant digits

  • Added support for python dict key serialization

  • Enhanced support for IP address serialization with safe module imports

  • Added development tooling improvements (pyright config, .envrc example)

  • Updated documentation and development instructions

DeepDiff 8-5-0

  • Updating deprecated pydantic calls

  • Switching to pyproject.toml

  • Fix for moving nested tables when using iterable_compare_func. by

  • Fix recursion depth limit when hashing numpy.datetime64

  • Moving from legacy setuptools use to pyproject.toml

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

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