跳转到主要内容

MIT

项目描述

PyPI version CI status

Patchdiff 🔍

基于rfc6902,此库提供了一个简单的API来生成由列表、集合、元组和字典组成的复合Python数据结构之间的双向差异。这些差异符合jsonpatch规范,并可选择序列化为JSON格式。Patchdiff还可以用于将补丁列表应用到对象上,可以是原地或输入的深拷贝。

安装

pip install patchdiff

快速入门

from patchdiff import apply, diff, iapply, to_json

input = {"a": [5, 7, 9, {"a", "b", "c"}], "b": 6}
output = {"a": [5, 2, 9, {"b", "c"}], "b": 6, "c": 7}

ops, reverse_ops = diff(input, output)

assert apply(input, ops) == output
assert apply(output, reverse_ops) == input

iapply(input, ops)  # apply in-place
assert input == output

print(to_json(ops, indent=4))
# [
#     {
#         "op": "add",
#         "path": "/c",
#         "value": 7
#     },
#     {
#         "op": "replace",
#         "path": "/a/1",
#         "value": 2
#     },
#     {
#         "op": "remove",
#         "path": "/a/3/a"
#     }
# ]

项目详情


下载文件

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

源代码分布

patchdiff-0.3.4.tar.gz (4.1 kB 查看哈希值)

上传于 源代码

构建分发

patchdiff-0.3.4-py3-none-any.whl (5.0 kB 查看哈希值)

上传于 Python 3

支持