跳转到主要内容

重新打包Google的Diff Match和Patch库。提供强大的算法,用于执行同步纯文本所需的操作。

项目描述

dmp

Google的Diff Match and Patch库,为现代Python打包。

build status version license

安装

dmp支持Python 2.7或Python 3.4或更高版本。您可以从PyPI安装它

python -m pip install dmp

用法

为了与上游diff-match-patch共存(并减少样板代码),它使正常的API可用,导入为dmp而不是diff_match_patch。其余的API保持不变,尽管未来更新可能添加辅助函数。

生成两个文本之间的补丁集(类似于统一差异)

from dmp import diff_match_patch

dmp = diff_match_patch()
patches = dmp.patch_make(text1, text2)
diff = dmp.patch_toText(patches)

然后可以使用以下方式将补丁集应用到文本上

from dmp import diff_match_patch

dmp = diff_match_patch()
patches = dmp.patch_fromText(diff)
new_text, _ = dmp.patch_apply(patches, text)

原始README

Diff Match and Patch库提供强大的算法,用于执行同步纯文本所需的操作。

  1. 差异
    • 比较两个纯文本块,并高效地返回一个差异列表。
    • 差异演示
  2. 匹配
    • 给定一个搜索字符串,在纯文本块中找到其最佳模糊匹配。既考虑准确性也考虑位置。
    • 匹配演示
  3. 补丁
    • 将一系列补丁应用到纯文本上。即使底层文本不匹配,也尽力应用补丁。
    • 补丁演示

该库最初于2006年构建,用于支持Google Docs,现在它可用在C++、C#、Dart、Java、JavaScript、Lua、Objective C和Python中。

参考

语言

尽管Diff Match Patch的每种语言端口都使用相同的API,但也有一些特定于语言的内容。

一个标准化的速度测试追踪了每种语言中差异的相对性能。

算法

该库实现了被认为是最优秀的通用差异算法Myer的差异算法。差异算法周围有一层预差异加速和后差异清理,提高了性能和输出质量。

该库还实现了一个位于灵活匹配和补丁策略核心的Bitap匹配算法

项目详情


下载文件

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

源分布

dmp-2018.11.6.1.tar.gz (58.8 kB 查看哈希值)

上传时间 源代码

支持者