| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 9.1.0 | 0 | 0 | 0 | 0 | 0 |
| 9.0.0 | 0 | 0 | 0 | 0 | 0 |
| 8.6.2 | 0 | 0 | 0 | 0 | 0 |
| 8.6.1 | 0 | 0 | 0 | 1 | 0 |
| 8.6.0 | 0 | 0 | 0 | 1 | 1 |
| 8.5.0 | 0 | 0 | 0 | 1 | 1 |
| 8.4.2 | 0 | 0 | 0 | 1 | 1 |
| 8.4.1 | 0 | 0 | 0 | 1 | 1 |
| 8.4.0 | 0 | 0 | 0 | 1 | 1 |
| 8.3.0 | 0 | 0 | 0 | 1 | 1 |
| 8.2.0 | 0 | 0 | 0 | 1 | 1 |
| 8.1.1 | 0 | 0 | 0 | 1 | 1 |
| 8.1.0 | 0 | 0 | 0 | 1 | 1 |
| 8.0.1 | 0 | 0 | 0 | 1 | 1 |
| 8.0.0 | 0 | 0 | 0 | 1 | 1 |
| 7.0.1 | 0 | 0 | 0 | 1 | 1 |
| 7.0.0 | 0 | 0 | 0 | 1 | 1 |
| 6.7.1 | 0 | 0 | 0 | 1 | 1 |
| 6.7.0 | 0 | 0 | 0 | 1 | 1 |
| 6.6.1 | 0 | 0 | 0 | 1 | 1 |
| 6.6.0 | 0 | 0 | 0 | 1 | 1 |
| 6.5.0 | 0 | 0 | 0 | 1 | 1 |
| 6.4.1 | 0 | 0 | 0 | 1 | 1 |
| 6.4.0 | 0 | 0 | 0 | 1 | 1 |
| 6.3.1 | 0 | 0 | 0 | 1 | 1 |
| 6.3.0 | 0 | 0 | 0 | 1 | 1 |
| 6.2.3 | 0 | 0 | 0 | 1 | 1 |
| 6.2.2 | 0 | 0 | 0 | 1 | 1 |
| 6.2.1 | 0 | 0 | 0 | 1 | 1 |
| 5.8.1 | 0 | 0 | 0 | 1 | 1 |
| 5.8.0 | 0 | 0 | 0 | 1 | 1 |
| 5.7.0 | 0 | 0 | 0 | 1 | 1 |
| 5.6.0 | 0 | 0 | 0 | 1 | 1 |
| 5.5.0 | 0 | 0 | 0 | 1 | 1 |
| 5.3.0 | 0 | 0 | 0 | 1 | 1 |
| 5.2.3 | 0 | 0 | 0 | 1 | 1 |
| 5.2.2 | 0 | 0 | 0 | 1 | 1 |
| 5.2.1 | 0 | 0 | 0 | 1 | 1 |
| 5.2.0 | 0 | 0 | 0 | 1 | 1 |
| 5.0.2 | 0 | 0 | 0 | 1 | 1 |
| 5.0.1 | 0 | 0 | 0 | 1 | 1 |
| 5.0.0 | 0 | 0 | 0 | 1 | 1 |
| 4.3.2 | 0 | 0 | 0 | 0 | 0 |
| 4.3.1 | 0 | 0 | 0 | 0 | 0 |
| 4.3.0 | 0 | 0 | 0 | 0 | 0 |
| 4.2.0 | 0 | 0 | 0 | 0 | 0 |
| 4.0.9 | 0 | 0 | 0 | 0 | 0 |
| 4.0.8 | 0 | 0 | 0 | 0 | 0 |
| 4.0.7 | 0 | 0 | 0 | 0 | 0 |
| 4.0.6 | 0 | 0 | 0 | 0 | 0 |
| 4.0.5 | 0 | 0 | 0 | 0 | 0 |
| 4.0.4 | 0 | 0 | 0 | 0 | 0 |
| 4.0.2 | 0 | 0 | 0 | 0 | 0 |
| 3.3.0 | 0 | 0 | 0 | 0 | 0 |
| 3.2.1 | 0 | 0 | 0 | 0 | 0 |
| 3.2.0 | 0 | 0 | 0 | 0 | 0 |
| 3.1.2 | 0 | 0 | 0 | 0 | 0 |
| 3.1.1 | 0 | 0 | 0 | 0 | 0 |
| 3.1.0 | 0 | 0 | 0 | 0 | 0 |
| 3.0.0 | 0 | 0 | 0 | 0 | 0 |
| 2.5.3 | 0 | 0 | 0 | 0 | 0 |
| 2.5.2 | 0 | 0 | 0 | 0 | 0 |
| 2.5.1 | 0 | 0 | 0 | 0 | 0 |
| 2.5.0 | 0 | 0 | 0 | 0 | 0 |
| 2.1.2 | 0 | 0 | 0 | 0 | 0 |
| 2.1.1 | 0 | 0 | 0 | 0 | 0 |
| 2.1.0 | 0 | 0 | 0 | 0 | 0 |
| 2.0.0 | 0 | 0 | 0 | 0 | 0 |
| 1.8.0 | 0 | 0 | 0 | 0 | 0 |
| 1.7.0 | 0 | 0 | 0 | 0 | 0 |
| 1.6.0 | 0 | 0 | 0 | 0 | 0 |
| 1.5.0 | 0 | 0 | 0 | 0 | 0 |
| 1.2.0 | 0 | 0 | 0 | 0 | 0 |
| 1.1.0 | 0 | 0 | 0 | 0 | 0 |
| 1.0.2 | 0 | 0 | 0 | 0 | 0 |
| 1.0.1 | 0 | 0 | 0 | 0 | 0 |
| 1.0.0 | 0 | 0 | 0 | 0 | 0 |
| 0.6.1 | 0 | 0 | 0 | 0 | 0 |
| 0.6.0 | 0 | 0 | 0 | 0 | 0 |
| 0.5.9 | 0 | 0 | 0 | 0 | 0 |
| 0.5.8 | 0 | 0 | 0 | 0 | 0 |
| 0.5.7 | 0 | 0 | 0 | 0 | 0 |
| 0.5.5 | 0 | 0 | 0 | 0 | 0 |
| 0.5.4 | 0 | 0 | 0 | 0 | 0 |
| 0.5.3 | 0 | 0 | 0 | 0 | 0 |
| 0.5.2 | 0 | 0 | 0 | 0 | 0 |
| 0.5.1 | 0 | 0 | 0 | 0 | 0 |
| 0.5.0 | 0 | 0 | 0 | 0 | 0 |
| 0.2.0 | 0 | 0 | 0 | 0 | 0 |
| 0.1.1 | 0 | 0 | 0 | 0 | 0 |
| 0.1 | 0 | 0 | 0 | 0 | 0 |
9.1.0 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseDeepDiff is now part of Qluster.
If you're building workflows around data validation and correction, Qluster gives your team a structured way to manage rules, review failures, approve fixes, and reuse decisions—without building the entire system from scratch.
Tested on Python 3.10+ and PyPy3.
Please check the ChangeLog file for the detailed information.
DeepDiff 9-1-0
custom_operators, *_obj_callback, ignore_order_func)exclude_paths and include_paths thanks to @akshat62GlobPathMatcher to remove exponential-time matching cliffdeephash.py, helper.py, delta.py, diff.py, distance.py, path.py, and serialization.py (also fixed real bugs: misplaced paren in path._guess_type call, and len(other.indexes > 1) → len(other.indexes) > 1 in diff._compare_in_order)check_elem() now raises immediately instead of going through _raise_or_log(), with full-path preflight validation in _get_elements_and_details() so the set_item_added path cannot silently skip malicious dunder pathsMANIFEST.in thanks to @mgornypip 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 functionalities such as improved json serialization:
pip install "deepdiff[optimize]"
Install optional packages:
https://zepworks.com/deepdiff/current/
Please take a look at the CHANGELOG file.
📣 Please fill out our fast 10-question survey so that we can learn how & why you use DeepDiff, and what improvements we should make. Thank you! 👯
Clone the repo
Switch to the dev branch
Create your own branch
Install dependencies
uv to install the dependencies: uv sync --all-extras.pip install -e ".[cli,coverage,dev,docs,static,test]"
Build uv build
Please run pytest --cov=deepdiff --runslow to see the coverage report. Note that the --runslow flag will run some slow tests too. In most cases you only want to run the fast tests which so you won't add the --runslow flag.
Or to see a more user friendly version, please run: pytest --cov=deepdiff --cov-report term-missing --runslow.
Thank you!
Please take a look at the AUTHORS file.