Deepdiff
DeepDiff: Deep Difference and search of any Python object/data. DeepHash: Hash of any object based on its contents. Delta: Use deltas to reconstruct objects by adding deltas together.
Install / Use
/learn @qlustered/DeepdiffREADME
DeepDiff v 8.6.2
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.9+ and PyPy3.
What is new?
Please check the ChangeLog file for the detailed information.
DeepDiff 8-6-2
- Security (CVE-2026-33155): Fixed a memory exhaustion DoS vulnerability in
_RestrictedUnpicklerby limiting the maximum allocation size forbytesandbytearrayduring deserialization.
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_typesflag 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 withoutexplicit 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
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 rubust CSV parsing
- orjson for speed and memory optimized parsing
- pydantic
Documentation
https://zepworks.com/deepdiff/current/
A message from Sep, the creator of DeepDiff
👋 Hi there,
Thank you for using DeepDiff! As an engineer, I understand the frustration of wrestling with unruly data in pipelines. That's why I developed a new tool - Qluster to empower non-engineers to control and resolve data issues at scale autonomously and stop bugging the engineers! 🛠️
If you are going through this pain now, I would love to give you early access to Qluster and get your feedback.
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
-
Clone the repo
-
Switch to the dev branch
-
Create your own branch
-
Install dependencies
- Method 1: Use
uvto install the dependencies:uv sync --all-extras. - Method 2: Use pip:
pip install -e ".[cli,coverage,dev,docs,static,test]"
- Method 1: Use
-
Build
flit build
Contribute
- Please make your PR against the dev branch
- Please make sure that your PR has tests. Since DeepDiff is used in many sensitive data driven projects, we strive to maintain around 100% test coverage on the code.
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 wont add the --runslow flag.
Or to see a more user friendly version, please run: pytest --cov=deepdiff --cov-report term-missing --runslow.
Thank you!
Authors
Please take a look at the AUTHORS file.
Related Skills
claude-opus-4-5-migration
82.9kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
docs-writer
99.1k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
336.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
TrendRadar
49.8k⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。
