跳转到主要内容

DeepDiff:任何Python对象/数据的深度差异和搜索。通过添加差异来重新创建对象。

项目描述

DeepDiff v 8.0.1

Downloads Python Versions License Build Status codecov

模块

  • DeepDiff: 字典、可迭代对象、字符串和任何其他对象的深度差异。
  • DeepSearch: 在其他对象中搜索对象。
  • DeepHash: 根据内容哈希任何对象。
  • Delta: 存储对象的差异并将它们应用到其他对象上。
  • Extract: 使用路径从嵌套Python对象中提取项目。
  • commandline: 从命令行使用DeepDiff。

在Python 3.8+和PyPy3上进行了测试。

有什么新功能?

请查看变更日志文件以获取详细信息。

DeepDiff 8-0-1

  • 错误修复。Numpy应该是可选的。

DeepDiff 8-0-0

随着threshold_to_diff_deeper的引入,返回的值与DeepDiff先前版本的值不同。您可以通过设置threshold_to_diff_deeper=0来获取旧值。然而,由于本次发布中更改了足够的内容,用户需要更新传递给DeepDiff的参数,我们将进行主要版本更新。

  • use_enum_value=True 使得在比较枚举时,我们使用枚举的值。这使得将枚举与字符串或其他任何值进行比较不会报告类型更改。
  • threshold_to_diff_deeper=float 是介于 0 和 1 之间的一个数字。当比较具有少量键交集的字典时,我们将报告该字典为 new_value 而不是报告单个键更改。如果您将其设置为 0,则与 DeepDiff 7.0.1 及更早版本的结果相同,这意味着此功能已禁用。新默认值为 0.33,这意味着如果字典之间的键交集不到三分之一,则报告为新的对象。
  • 已弃用 ordered-set 并切换到 orderly-set。由于 ordered-set 包不再维护,并且从 Python 3.6 开始,集合有更好的排序选项。我分叉了一个新的实现,对其进行修改,并将其发布为 orderly-set
  • 添加了 use_log_scale:boollog_scale_similarity_threshold:float。它们可以用来通过比较它们的对数空间中的差异来忽略数字中的小变化。这与根据有效数字忽略差异不同。
  • 反转列表的 json 序列化。
  • 修复了当使用 iterable_compare_func 时可迭代的移动项的修复。
  • 支持 Pandas 和 Polars。

DeepDiff 7-0-1

  • 修复了 Difflib opcodes 与 Delta flat rows 之间的转换。

DeepDiff 7-0-0

  • DeepDiff 7 带有改进的 delta 对象。Delta 到 flat dictionaries 已经历重大变化。我们还引入了 Delta serialize to flat rows
  • 在牺牲更多原始对象元数据的情况下,delta 对象的减法性能显著提高。
  • verbose=2 时,如果 t1 和 t2 之间报告中的“路径”发生变化,则将其包含为 new_path
  • path(use_t2=True) 返回在 tree view 中任何报告更改的正确路径。
  • 已停止支持 Python 3.7,并正式支持 Python 3.12。

DeepDiff 6-7-1

DeepDiff 6-7-0

  • 现在可以从不支持的对象中减去 delta。
  • 已弃用 verify_symmetry。请使用 bidirectional 代替。
  • 可以在 Delta 中启用 always_include_values 标志,以包括每个更改的 delta 中的值。
  • 修复了 Delta.add 在具有怪异字典键时中断的问题。
  • 您可以从平面字典列表中加载 delta。

DeepDiff 6-6-1

安装

从 PyPi 安装

pip install deepdiff

如果您想从命令行使用 DeepDiff

pip install "deepdiff[cli]"

如果您想通过改进 json 序列化等某些功能来提高 DeepDiff 的性能

pip install "deepdiff[optimize]"

安装可选包

文档

https://zepworks.com/deepdiff/current/

来自DeepDiff的创建者Sep的消息

👋 嗨,大家好!

感谢您使用DeepDiff!作为一名工程师,我理解在与管道中的混乱数据搏斗时的挫败感。这就是为什么我开发了一个新的工具——Qluster,让非工程师能够自主地控制并解决大规模的数据问题,不再打扰工程师!🛠️

如果您目前正在经历这种痛苦,我很乐意为您提供Qluster的早期访问权限,并获取您的反馈。

变更日志

请查看变更日志文件。

调查

:mega: 请填写我们的快速5题调查,以便我们了解您如何以及为什么使用DeepDiff,以及我们应该做出哪些改进。谢谢!:dancers

贡献

  1. 请将您的PR提交到dev分支
  2. 请确保您的PR有测试。由于DeepDiff被用于许多敏感数据驱动的项目,我们力求在代码上保持约100%的测试覆盖率。

请运行pytest --cov=deepdiff --runslow以查看覆盖率报告。注意,--runslow标志也会运行一些慢速测试。在大多数情况下,您只想运行快速测试,因此您不需要添加--runslow标志。

或者,为了查看更用户友好的版本,请运行:pytest --cov=deepdiff --cov-report term-missing --runslow

谢谢!

作者

请查看作者文件。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

deepdiff-8.0.1.tar.gz (427.7 kB 查看哈希)

上传于 源代码

构建分布

deepdiff-8.0.1-py3-none-any.whl (82.7 kB 查看哈希值)

上传于 Python 3

支持者