| single |
# DeepDiff v 9.0.0
![Downloads]
![Python Versions]
![License]
[Build Status]
[codecov]
**DeepDiff 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.*
## Modules
- [DeepDiff]: Deep Difference of dictionaries, iterables, strings, and ANY
other object.
- [DeepSearch]: Search for objects within other objects.
- [DeepHash]: Hash any object based on their content.
- [Delta]: Store the difference of objects and apply them to other objects.
- [Extract]: Extract an item from a nested Python object using its path.
- [commandline]: Use DeepDiff from commandline.
Tested on Python 3.10+ and PyPy3.
- **[Documentation]**
## What is new?
Please check the [ChangeLog] file for the detailed information.
DeepDiff 9-0-0
- migration note:
- `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.
- Dropping support for Python 3.9
- Support for python 3.14
- Added support for callable `group_by` thanks to @echan5
- Added `FlatDeltaDict` TypedDict for `to_flat_dicts` return type
- Fixed colored view display when all list items are removed thanks to
@yannrouillard
- Fixed `hasattr()` swallowing `AttributeError` in `__slots__` handling for
objects with `__getattr__` thanks to @tpvasconcelos
- Fixed `ignore_order=True` missing int-vs-float type changes
- Always use t1 path for reporting thanks to @devin13cox
- Fixed `_convert_oversized_ints` failing on NamedTuples
- Fixed orjson `TypeError` for integers exceeding 64-bit range
- Fixed parameter bug in `to_flat_dicts` where `include_action_in_path` and
`report_type_changes` were not being passed through
- Fixed `ignore_keys` issue in `detailed__dict__` thanks to @vitalis89
- Fixed logarithmic similarity type hint thanks to @ljames8
- Added `Fraction` numeric support thanks to @akshat62
## 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
functionalities such as improved json serialization:
`pip install "deepdiff[optimize]"`
Install optional packages:
- [yaml]
- [tomli] (python 3.10 and older) and [tomli-w] for writing
- [clevercsv] for more robust CSV parsing
- [orjson] for speed and memory optimized parsing
- [pydantic]
# Documentation
# ChangeLog
Please take a look at the [CHANGELOG] file.
# Survey
:mega: **Please fill out our [fast 5-question survey]** so that we can
learn how & why you use DeepDiff, and what improvements we should make.
Thank you! :dancers:
# Local dev
1. Clone the repo
2. Switch to the dev branch
3. Create your own branch
|